mysql双主复制模式_mysql复制模式第二部分-----双主模式
雙主配置
我在配置主從服務器時,使用了兩臺服務器:10.19.34.126和10.19.34.91。
1、首先需要在這兩臺上搭建單獨的mysql服務masterA和masterB。
2、配置數據庫masterA,要對每一個數據庫服務配置唯一標示,參數名為server-id,也可以通過ip來指定。修改my.conf文件參數:
log-bin= mysql-bin #所有的數據操作寫入二進制日志,便于將sql語句同步到中繼日志
auto-increment-offset=1 #自增長字段從那個數開始,他的取值范圍是1?..?65535
auto-increment-increment=2 #自增長字段每次遞增的量,其默認值是1,取值范圍是1?..?65535
log_slave_updates=1 #該參數用來設置將中繼日志中的操作傳入二進制日志,以便于該從數據庫作為其他實例的主庫。
replay_log=mysql-replay-bin #用來存儲中繼日志
server-id=1
在主主同步配置時,需要將兩臺服務器的auto_increment_increment增長量都配置為2,而要把auto_increment_offset分別配置為1和2。這樣才可以避免兩臺服務器同時做更新時自增長字段的值之間發生沖突。
3、配置數據庫masterA,要對每一個數據庫服務配置唯一標示,參數名為server-id,也可以通過ip來指定。修改my.conf文件參數:
log-bin= mysql-bin #所有的數據操作寫入二進制日志,便于將sql語句同步到中繼日志
auto-increment-offset=2 #自增長字段從那個數開始,他的取值范圍是1 .. 65535
auto-increment-increment=2 #自增長字段每次遞增的量,其默認值是1,取值范圍是1 .. 65535
log_slave_updates=1 #該參數用來設置將中繼日志中的操作傳入二進制日志,以便于該從數據庫作為其他實例的主庫。
replay_log=mysql-replay-bin #用來存儲中繼日志
server-id=2
4、在masterA數據庫上創建賬號,通過這個賬號進行同步主庫的二進制日志到備庫的中繼日志。
MySQL>grant all on *.* to 'root'@'%' identified by '123456'
5、在masterB數據庫上創建賬號,通過這個賬號進行同步主庫的二進制日志到備庫的中繼日志。
MySQL>grant all on *.* to 'root'@'%' identified by '123456'
6、在masterA服務器上查看當前二進制日志名和偏移量值:
MySQL>?show?master?status;
7、在masterB服務器上首先停止復制服務,然后設置從服務器的同步點,最后開啟同步服務:
MySQL>?stop?slave;
MySQL>?CHANGE MASTER TO MASTER_HOST="10.19.34.126",MASTER_USER="root",MASTER_PASSWORD="123456",MASTER_PORT=3306,MASTER_LOG_FILE="mysql-bin.000003",MASTER_LOG_POS=393044781,MASTER_CONNECT_RETRY=10;
MySQL>?start?slave;
8、在masterB服務器上查看當前二進制日志名和偏移量值:
MySQL>?show?master?status;
9、在masterA服務器上首先停止復制服務,然后設置從服務器的同步點,最后開啟同步服務:
MySQL>?stop?slave;
MySQL>?CHANGE MASTER TO MASTER_HOST="10.19.34.91",MASTER_USER="root",MASTER_PASSWORD="123456",MASTER_PORT=3306,MASTER_LOG_FILE="?mysql-bin.000004",MASTER_LOG_POS=393044425?,MASTER_CONNECT_RETRY=10;
MySQL>?start?slave;
雙主的部分詳解
在配置雙主時,可能有人會想到在將主數據庫A的數據操作同步到主數據庫B的中繼器,由于開啟了log_slave_updates參數,主數據庫B從主數據庫A同步的語句從中繼日志轉儲到二進制日志中。由于是雙向復制是否會出現該語句又同步到了數據庫A中,答案是不可能的,因為在二進制日志中會標示該條語句是來自哪個數據庫實例,如果標示數據庫A,則不會循環同步到數據庫A。如果該數據庫的搭建模式只是雙主模式,沒有改屬豬模式的從數據庫,可以將log_slave_updates參數關閉,所有的同步復制不會轉儲到二進制日志,也避免了循環復制。
應有備庫的雙主模式
1、對雙主模式中的兩個數據庫配置文件中添加配置參數:log_slave_updates=1。
2、查看masterA和masterB的二進制日志的文件和同步點。
3、在masterA和masterB的兩個備庫上都要執行以下指令,實現數據同步:
MySQL>?stop?slave;
MySQL>?CHANGE MASTER TO MASTER_HOST="10.19.34.91",MASTER_USER="root",MASTER_PASSWORD="123456",MASTER_PORT=3306,MASTER_LOG_FILE="?mysql-bin.000004",MASTER_LOG_POS=393044425?,MASTER_CONNECT_RETRY=10;
MySQL>?start?slave;
雙主實現自動切換
總結
以上是生活随笔為你收集整理的mysql双主复制模式_mysql复制模式第二部分-----双主模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习之聚类算法:K均值聚类(一、算法
- 下一篇: 邮件合并的逆向应用,从多个Word文档中