基於GTID的mysql主從簡單複製 一、簡單主從模式配置步驟1、配置主從節點的服務配置文件1.1、配置master節點:[mysqld]binlog-format=ROWlog-bin=master-binlog-slave-updates=truegtid-mode=on enforce-gti ...
基於GTID的mysql主從簡單複製
一、簡單主從模式配置步驟
1、配置主從節點的服務配置文件
1.1、配置master節點:
[mysqld]
binlog-format=ROW
log-bin=master-bin
log-slave-updates=true
gtid-mode=on
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=2 在MariaDB 中是slave-parallel-threads 多線程複製
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
server-id=1
report-port=3306
port=3306
datadir=/mydata/data
socket=/tmp/mysql.sock
report-host=master.magedu.com(註意這裡填的是本機的主機名)
1.2、配置slave節點:
[mysqld]
binlog-format=ROW
log-slave-updates=true
gtid-mode=on
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=2 在MariaDB 中是slave-parallel-threads
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
server-id=11
report-port=3306
port=3306
log-bin=mysql-bin.log
datadir=/mydata/data
socket=/tmp/mysql.sock
report-host=slave.magedu.com
2、創建複製用戶
mysql> GRANT REPLICATION SLAVE ON *.* TO [email protected] IDENTIFIED BY 'replpass';
說明:172.16.100.7是從節點伺服器;如果想一次性授權更多的節點,可以自行根據需要修改;
3、為備節點提供初始數據集
鎖定主表,備份主節點上的數據,將其還原至從節點;如果沒有啟用GTID,在備份時需要在master上使用show master status命令查看二進位日誌文件名稱及事件位置,以便後面啟動slave節點時使用。
4、啟動從節點的複製線程
如果啟用了GTID功能,則使用如下命令:
mysql> CHANGE MASTER TO MASTER_HOST='master.magedu.com', MASTER_USER='repluser', MASTER_PASSWORD='replpass', MASTER_AUTO_POSITION=1;
沒啟用GTID,需要使用如下命令:
slave> CHANGE MASTER TO MASTER_HOST='172.16.100.6',
-> MASTER_USER='repluser',
-> MASTER_PASSWORD='replpass',
-> MASTER_LOG_FILE='master-bin.000003',
-> MASTER_LOG_POS=1174;
二、半同步複製
1、分別在主從節點上安裝相關的插件
master> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
slave> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
2、啟用半同步複製
在master上的配置文件中,添加
rpl_semi_sync_master_enabled=ON
在至少一個slave節點的配置文件中添加
rpl_semi_sync_slave_enabled=ON
而後重新啟動mysql服務即可生效。
或者,也可以mysql服務上動態啟動其相關功能:
master> SET GLOBAL rpl_semi_sync_master_enabled = ON;
slave> SET GLOBAL rpl_semi_sync_slave_enabled = ON;
slave> STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;
3、確認半同步功能已經啟用
master> CREATE DATABASE magedudb;
master> SHOW STATUS LIKE 'Rpl_semi_sync_master_yes_tx';
slave> SHOW DATABASES;