Creating a multimaster MariaDB replica
This topic will cover the process to create a two node Maria DB cluster. The cluster will be configured to allow Soffid console to use either database node, which in turn will replicate data changes to the other one.
Node 1 action
|
Node 2 action
|
||||||||
---|---|---|---|---|---|---|---|---|---|
Create and setup a Maria DB in node 1. | |||||||||
Configure Maria DB to generate binary log files. Add the following lines to /etc/mysql/my.cnf: server-id = 1 |
|||||||||
Restart MariaDB: service mysql restart |
|
||||||||
Create and setup a Maria DB in node 2. | |||||||||
Configure Maria DB to generate binary log files. Add the following lines to /etc/mysql/my.conf: server-id = 2 |
|||||||||
Restart MariaDB: service mysql restart |
|||||||||
Create a user for node 1 to fetch data from node 2. From mysql, execute: grant replication slave on *.* to replication_user@<NODE1-IP>
set password for replication_user@1<NODE1-IP> = password('<NODE1-PASS>') |
|||||||||
Create a user for node 2 to fetch data from node 1. From mysql, execute: grant replication slave on *.* to replication_user@<NODE2-IP>
set password for replication_user@1<NODE2-IP> = password('<NODE2-PASS>') |
|||||||||
Query current binary log position: MariaDB [(none)]> show master
The result should look like this:
The got values will be used on node 2 to start replica process. |
|||||||||
Start replication from node 1 to node 2. From mysql, execute the following sentence, replacing proper values: CHANGE MASTER TO |
|||||||||
Verify replica is working right, by executing SHOW SLAVE STATUS \G
Check following lines: Slave_IO_Running: Yes |
|||||||||
Query current binary log position: MariaDB [(none)]> show master status;
The result should look like this:
The got values will be used on node 1 to start replica process. |
|||||||||
Now, start replication from node 2 to node 1. From mysql, execute the following sentence, replacing proper values: CHANGE MASTER TO |
|||||||||
Verify replica is working right, by executing SHOW SLAVE STATUS \G
Check following lines: Slave_IO_Running: Yes |
|
||||||||
Now, create and start SC_SEQUENCE table in node 1. This sequence will generate values 1, 11, 21, 31, 41, and so on: CREATE TABLE `SC_SEQUENCE` ( );
INSERT INTO SC_SEQUENCE VALUES (1, 100, 10); |
|||||||||
Now, create and start SC_SEQUENCE table in node 2. This sequence will generate values 2, 12, 22, 32, 42, and so on:: CREATE TABLE `SC_SEQUENCE` ( );
INSERT INTO SC_SEQUENCE VALUES (2, 100, 10); |
|||||||||
Now, install heartbeat to create a floating IP address to connect Soffid console to database. Create /etc/ha.d/ha.cf file: autojoin none |
|||||||||
Create security token in node 1: ( echo -ne "auth 1\n1 sha1\n"; dd if=/dev/urandom bs=512 count=1 | openssl sha1 | cut --delimiter=' ' --fields=2 ) > /etc/ha.d/authkeys
chmod 600 /etc/ha.d/authkeys
|
|||||||||
Copy both files to node 2: /etc/ha.d/ha.cf and /etc/ha.d/authkeys | |||||||||
Restart heartbeat service Restart pacemater service |
|||||||||
Restart heartbeat service Restart pacemater service |
|||||||||
Check cluster status executing crm_mon -1
Last updated: Mon Dec 26 19:52:24 2016
|
|||||||||
Check cluster status executing crm_mon -1
It should look like:
Last updated: Mon Dec 26 19:52:24 2016
Online: [ <node 1 name> <node 2 name>] |
|||||||||
Disable stonith: crm configure property stonith-enabled=false
Add floating IP to the cluster: crm configure |
|||||||||
Check floating IP is up and bound to node 1 |