Table of Contents |
---|
Info |
---|
This guide is based on CentOS 6 |
Install MariaDB on replica server
Install in the replica server the same MariaDB server package that Abiquo API server is using . This can be achieve by installing the corresponding on the replica server.
On the replica server, Install your
abiquo-release package
...
Install MariaDB with this command
Code Block yum -y install MariaDB-server MariaDB-client
Warning |
---|
Current reporting design has a problem with concurrent generation of the same report for the same enterprise, please visit Jasper concurrency for a workaround to this issue. |
...
Configure DB replication on
...
the main DB server
...
On the main DB server, create the replication configuration file
...
Code Block cat <<EOF >/etc/my.cnf.d/replication.cnf [server] log-basename=master log-bin binlog-format=row server_id=1 EOF
Restart the mysql service
...
Code Block service mysql restart
Create a replicator user and grant it replication permissions by executing the query below on DB prompt. Replace
...
REPLICA_USER
,REPLICA_PASS,
andREPLICA_SERVER
with values for your environment.Code Block
...
grant
...
replication
...
slave
...
on *.*
...
to '
...
REPLICA_USER'@'SLAVE_
...
SERVER'
...
identified
...
by '
...
REPLICA_PASS'; flush privileges;
...
Configure DB replication on
...
replica DB server
Create the replication configuration file in Maria DB
...
replica server
...
.
Code Block cat <<EOF >/etc/my.cnf.d/replication.cnf [server] server_id=2 EOF
Restart the
mysql
service
...
.
Code Block
...
service mysql restart
Initial replication
Open a new session on Maria DB master server and execute the command below in MySQL prompt. Keep this session open until replication has been completed.
Code Block |
---|
FLUSH TABLES WITH READ LOCK; |
Get current binlog position by executing the command below on Maria DB prompt:
Code Block |
---|
SHOW MASTER STATUS; |
This will show current position on master binfile. We will need this value later when replicating the DB in the Maria DB slave server:
Code Block |
---|
Warning |
To use multiple replica servers, in |
...
Perform initial replication
To perform the initial replication, get the current status of the main DB, including the file and the current position in the log, and then perform a dump of the database with the following steps
Open a new session on the main DB server at the
mysql
promptRun the following commands to get the file and current position
Code Block flush tables with read lock; show master status; +----------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +----------------------+----------+--------------+------------------+ |
...
master-bin.
...
000001 | 3712878 | | | +----------------------+----------+--------------+------------------+ 1 row in set (0.00 sec)
...
Leave this session open and don’t make any changes until replication is completed.
On the MariaDB main server, open another session and dump the
kinton
andkinton_accounting
databases
...
using
--single-transaction
optionCode Block mysqldump --databases kinton kinton_accounting --routines --single-transaction > dump.sql
...
Configure slave replication point
Copy
dump.sql
from the previous step from
...
the main DB
...
server to
...
the replica DB
...
server.
...
When the copy finishes, import it into
...
replica DB
...
server. If this is a new installation you may need to create the
kinton
...
databases.
Code Block mysql < dump.sql
...
When the import finishes, configure replica DB server replication. On the replica DB server, go to the
mysql
prompt and run the change master command belowReplace
MAIN_SERVER
,REPLICA_USER
andREPLICA_PASS
.Replace
MASTER_LOG_FILE
andMASTER_LOG_POS
...
from the show master status above
Code Block change master to MASTER_HOST='MAIN_SERVER', MASTER_USER='REPLICA_USER', MASTER_PASSWORD='REPLICA_PASS', MASTER_PORT=3306, MASTER_LOG_
...
FILE='MASTER_LOG_FILE', MASTER_LOG_POS=MASTER_LOG_POS, MASTER_CONNECT_RETRY=10;
For example, using the values from above of
master-bin.000001
and3712878
Code Block change master to MASTER_HOST='services.lab.example.com', MASTER_USER='
...
abiquodb', MASTER_PASSWORD='
...
abiquodbpassword', MASTER_PORT=3306, MASTER_LOG_FILE='
...
master-bin.
...
000001', MASTER_LOG_POS=3712878, MASTER_CONNECT_RETRY=10;
...
On the replica server, at the
mysql
prompt, start replica DB replicationCode Block
...
start
...
slave;
...
To check replication status
...
, run the following command on the
...
replica DB
Code Block
...
show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event
...
...
.
...
.
...
.
...
...
1 row in set (0.00 sec)
When
...
Slave_IO_State is
Waiting for master to send event
...
, replication is finished
Release locks by closing the first session on master DB server where locks were set and the master status was requested, and you are done!
References
https://mariadb.com/kb/en/setting-up-replication/