drg_galera_async

asynchronus replication ini digunakan sebagai plan untuk DR (Disaster recovery) jika terjadi network fail pada DC (data center) primary.

untuk melakukan deploy ini langkah-langkahnya adalah sebagai berikut :

DC 1 :
terdapat 3 node mariadb-10 galera cluster

untuk tahapan deploy lakukan perubahan di file my.cnf di setiap node galera

gtid_domain_id=
server_id=
binlog_format=ROW
log_slave_updates=1
log_bin=binlog

DC 2 :
terdapat 3 node mariadb-10 galera cluster yang akan bertindak sebagai slave dari server galera di DC 1

berikut konfigurasi di my.cnf yang harus di edit

gtid_domain_id=
server_id=
binlog_format=ROW
log_slave_updates=1
log_bin=binlog
slave_net_timeout=60

jika sudah , buat user replicate agar dari DC 2 bisa mereplicate dari DC 1

MariaDB> GRANT REPLICATION SLAVE ON *.* TO slave@'10.0.0.128' IDENTIFIED BY 'slavepassword123';
MariaDB> FLUSH PRIVILEGES;

selanjutnya dump data atau bisa gunakan percona xtrabackup untuk membackup database di salah satu node di DC1, kemudian restore di DC 2.

di DC1 server node1 tampilkan status master saat ini

MariaDB> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000006 | 1138 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

kemudian tampilkan binlog_gtid_pos nya di server master

MariaDB> SELECT binlog_gtid_pos('binlog.000001',551);

+-------------------------------------------+
| binlog_gtid_pos('binlog.000001',550) |
+-------------------------------------------+
| 1-103-5564 |
+-------------------------------------------+

GTID sudah di dapatkan , maka lakukan perintah stop slave dan reset slave di DC2 node1

DC2 node1 :

set GTID slave position

MariaDB> stop slave;
MariaDB> set global gtid_slave_pos = '1-103-5564';
MariaDB> change master to master_host='10.0.0.128', master_user='slave', master_password='slavepassword123',master_port=3306,master_use_gtid=slave_pos;
MariaDB> start slave;

untuk memastikan jalankan command show slave status

MariaDB> show slave status \G:

harusnya akan muncul seperti dibawah ini

Seconds_Behind_Master: 384
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 101
Master_SSL_Crl:
Master_SSL_Crlpath:
Using_Gtid: Slave_Pos
Gtid_IO_Pos: 1-103-5564

Master Failover dan recovery

jika node2 yang di jadikan master untuk DC2 mengalami kerusakan atau fail, maka masternya harus di ubah ke node lain. cara merubahnya adalah sebagai berikut

DC1 node3 :
langkah-langkahnya sama dengan langkah saat membuat replikasi dengan GTID

—–
Jika DC 1 semua node DB server nya mati , maka langkah untuk penanganan nya adalah

stop slave dan reset slave di sisi server DC 2 di salah satu node servernya saja yang digunakan sebagai slave

pindahkan pointing IP db ke server di DC 2

—-
Failback strategy

setup 1 node di DC 1 jadikan sebagai slave untuk db di DC 2

jika sudah up dan data sudah sama, segera matikan replikasi antar DC

re-slave dari DC 1 ke DC 2

Advertisements