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 |
|||||||||
Dump current database contents: mysqldump soffid -u soffid -p >soffid.data |
Load current database contents mysql -u soffid -p < soffid.data |
||||||||
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 status; 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, configure the Console to use the following jdbc URL:
jdbc:mariadb:sequential://mariadb-host-1,mariadb-host-2/soffid