MariaDB changing a standby to Master
1 min read

MariaDB changing a standby to Master

1) เครื่อง MASTER เก่า

ตั้งให้สามารถอ่านได้อย่างเดียวเผื่อไม่ให้มีการเปลี่ยนแปลงข้อมูล

FLUSH TABLES WITH READ LOCK;

เก็บข้อมูล MASTER เครื่องเก่า แล้วจดไว้

SHOW MASTER STATUS;

2) ทำการแต่งตั้งเครื่อง Slave เก่า ให้เป็น MASTER

เข้าเครื่อง SLAVE แล้วใช้คำสั่งต่อไปนี้

grant replication slave on *. * to user-new-replica@'%' identified by 'pass-new-master';
flush privileges;
STOP ALL SLAVES;
RESET SLAVE ALL;
SHOW MASTER STATUS;
SELECT @@global.gtid_binlog_pos;
SET @@global.read_only=0;

3) แต่งตั้งให้เครื่อง MASTER เก่า ไปเป็น SLAVE แทน

set @@global.read_only=1;
STOP ALL SLAVES;
RESET MASTER;
RESET SLAVE ALL;
CHANGE MASTER TO MASTER_HOST="172.30.31.106",
MASTER_PORT=3306, MASTER_USER='replica', master_password='123456', MASTER_USE_GTID=current_pos,
MASTER_LOG_FILE="mysql-bin.000001", MASTER_LOG_POS=776;
START SLAVE;
UNLOCK TABLES;

4) Show Stats Slave

show slave status \G