日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql复制模式第二部分-----双主模式

發(fā)布時(shí)間:2023/12/1 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql复制模式第二部分-----双主模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

雙主配置

  我在配置主從服務(wù)器時(shí),使用了兩臺(tái)服務(wù)器:10.19.34.126和10.19.34.91。

  1、首先需要在這兩臺(tái)上搭建單獨(dú)的mysql服務(wù)masterA和masterB。

  2、配置數(shù)據(jù)庫masterA,要對(duì)每一個(gè)數(shù)據(jù)庫服務(wù)配置唯一標(biāo)示,參數(shù)名為server-id,也可以通過ip來指定。修改my.conf文件參數(shù):

log-bin= mysql-bin #所有的數(shù)據(jù)操作寫入二進(jìn)制日志,便于將sql語句同步到中繼日志 auto-increment-offset=1 #自增長字段從那個(gè)數(shù)開始,他的取值范圍是1?..?65535 auto-increment-increment=2 #自增長字段每次遞增的量,其默認(rèn)值是1,取值范圍是1?..?65535 log_slave_updates=1 #該參數(shù)用來設(shè)置將中繼日志中的操作傳入二進(jìn)制日志,以便于該從數(shù)據(jù)庫作為其他實(shí)例的主庫。 replay_log=mysql-replay-bin #用來存儲(chǔ)中繼日志
server-id=1

  在主主同步配置時(shí),需要將兩臺(tái)服務(wù)器的auto_increment_increment增長量都配置為2,而要把a(bǔ)uto_increment_offset分別配置為1和2。這樣才可以避免兩臺(tái)服務(wù)器同時(shí)做更新時(shí)自增長字段的值之間發(fā)生沖突。

  3、配置數(shù)據(jù)庫masterA,要對(duì)每一個(gè)數(shù)據(jù)庫服務(wù)配置唯一標(biāo)示,參數(shù)名為server-id,也可以通過ip來指定。修改my.conf文件參數(shù):

log-bin= mysql-bin #所有的數(shù)據(jù)操作寫入二進(jìn)制日志,便于將sql語句同步到中繼日志 auto-increment-offset=2 #自增長字段從那個(gè)數(shù)開始,他的取值范圍是1 .. 65535 auto-increment-increment=2 #自增長字段每次遞增的量,其默認(rèn)值是1,取值范圍是1 .. 65535 log_slave_updates=1 #該參數(shù)用來設(shè)置將中繼日志中的操作傳入二進(jìn)制日志,以便于該從數(shù)據(jù)庫作為其他實(shí)例的主庫。 replay_log=mysql-replay-bin #用來存儲(chǔ)中繼日志 server-id=2

  4、在masterA數(shù)據(jù)庫上創(chuàng)建賬號(hào),通過這個(gè)賬號(hào)進(jìn)行同步主庫的二進(jìn)制日志到備庫的中繼日志。

    MySQL>grant all on *.* to 'root'@'%' identified by '123456'

  5、在masterB數(shù)據(jù)庫上創(chuàng)建賬號(hào),通過這個(gè)賬號(hào)進(jìn)行同步主庫的二進(jìn)制日志到備庫的中繼日志。

    MySQL>grant all on *.* to 'root'@'%' identified by '123456'

  6、在masterA服務(wù)器上查看當(dāng)前二進(jìn)制日志名和偏移量值:

    MySQL>?show?master?status;

      

  7、在masterB服務(wù)器上首先停止復(fù)制服務(wù),然后設(shè)置從服務(wù)器的同步點(diǎn),最后開啟同步服務(wù):

    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服務(wù)器上查看當(dāng)前二進(jìn)制日志名和偏移量值:

    MySQL>?show?master?status;

    

  9、在masterA服務(wù)器上首先停止復(fù)制服務(wù),然后設(shè)置從服務(wù)器的同步點(diǎn),最后開啟同步服務(wù):

    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;

雙主的部分詳解

  在配置雙主時(shí),可能有人會(huì)想到在將主數(shù)據(jù)庫A的數(shù)據(jù)操作同步到主數(shù)據(jù)庫B的中繼器,由于開啟了log_slave_updates參數(shù),主數(shù)據(jù)庫B從主數(shù)據(jù)庫A同步的語句從中繼日志轉(zhuǎn)儲(chǔ)到二進(jìn)制日志中。由于是雙向復(fù)制是否會(huì)出現(xiàn)該語句又同步到了數(shù)據(jù)庫A中,答案是不可能的,因?yàn)樵诙M(jìn)制日志中會(huì)標(biāo)示該條語句是來自哪個(gè)數(shù)據(jù)庫實(shí)例,如果標(biāo)示數(shù)據(jù)庫A,則不會(huì)循環(huán)同步到數(shù)據(jù)庫A。如果該數(shù)據(jù)庫的搭建模式只是雙主模式,沒有改屬豬模式的從數(shù)據(jù)庫,可以將log_slave_updates參數(shù)關(guān)閉,所有的同步復(fù)制不會(huì)轉(zhuǎn)儲(chǔ)到二進(jìn)制日志,也避免了循環(huán)復(fù)制。

應(yīng)有備庫的雙主模式

  1、對(duì)雙主模式中的兩個(gè)數(shù)據(jù)庫配置文件中添加配置參數(shù):log_slave_updates=1。

  2、查看masterA和masterB的二進(jìn)制日志的文件和同步點(diǎn)。

  3、在masterA和masterB的兩個(gè)備庫上都要執(zhí)行以下指令,實(shí)現(xiàn)數(shù)據(jù)同步:

  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;

雙主實(shí)現(xiàn)自動(dòng)切換

?

轉(zhuǎn)載于:https://www.cnblogs.com/youzhongmin/p/9569968.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的mysql复制模式第二部分-----双主模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。