實(shí)現(xiàn)MySQL雙向備份的詳細(xì)方法

下面這篇文章是關(guān)于實(shí)現(xiàn)MySQL雙向備份的詳細(xì)方法,文字的奧妙在于貼近主題相關(guān)。所以,閑話就不談了,我們直接看下文吧,相信看完實(shí)現(xiàn)MySQL雙向備份的詳細(xì)方法你一定會(huì)有所受益。

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站制作、做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)沙河口,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):13518219792

MySQL 雙向備份也被稱(chēng)為 主主備份 ,即兩個(gè) MySQL 服務(wù)都是 Master,其中任意一個(gè)服務(wù)又是另一個(gè)服務(wù)的 Slave。

準(zhǔn)備

服務(wù)器

MySQL服務(wù)器版本IP地址
masterA5.6.41192.168.1.201
masterB5.6.41192.168.1.202

注:

備份的 MySQL 服務(wù)器版本盡量保持一致,不同的版本可能二進(jìn)制日志格式不兼容。

具體操作

注意

操作過(guò)程中注意兩邊數(shù)據(jù)的一致!!!

實(shí)現(xiàn)MySQL雙向備份的詳細(xì)方法

masterA 配置

my.cnf

[mysqld]
# 服務(wù)器唯一標(biāo)識(shí)
server-id=1
# 二進(jìn)制日志文件名
log-bin=mysql-bin

# 需要備份的數(shù)據(jù)庫(kù),多個(gè)數(shù)據(jù)庫(kù)用 , 分隔
binlog-do-db=piumnl
# 需要復(fù)制的數(shù)據(jù)庫(kù),多個(gè)數(shù)據(jù)庫(kù)用 , 分隔
replicate-do-db=piumnl
# 中繼日志文件名
relay_log=mysqld-relay-bin
# 手動(dòng)啟動(dòng)同步服務(wù),避免突然宕機(jī)導(dǎo)致的數(shù)據(jù)日志不同步
skip-slave-start=ON
# 互為主從需要加入這一行
log-slave-updates=ON
# 禁用符號(hào)鏈接,防止安全風(fēng)險(xiǎn),可不加
symbolic-links=0

# 可不加
# resolve - [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0
master-info-repository=table
relay-log-info-repository=table
relay-log-recovery=1

# 可不加
# 禁用 DNS 解析,會(huì)使授權(quán)時(shí)使用的域名無(wú)效
skip-host-cache
skip-name-resolve

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

masterB 配置

my.cnf

# 不再解釋各個(gè)配置項(xiàng)
[mysqld]
server-id=2
log-bin=mysql-bin

binlog-do-db=piumnl
replicate-do-db=piumnl
relay_log=mysql-relay-bin
skip-slave-start=ON
log-slave-updates=ON
symbolic-links=0

# resolve - [Warning] Slave SQL: If a crash happens this configuration does not guarantee that the relay log info will be consistent, Error_code: 0
master-info-repository=table
relay-log-info-repository=table
relay-log-recovery=1

skip-host-cache
skip-name-resolve

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

創(chuàng)建備份用戶(hù)

masterA & masterB 都要?jiǎng)?chuàng)建備份用戶(hù):

create user 'rep'@'%' identified by 'rep';    # 創(chuàng)建一個(gè)賬戶(hù)
grant replication slave on *.* to 'rep'@'%';  # 授予該賬戶(hù)對(duì)任意數(shù)據(jù)庫(kù)任意表的主從備份權(quán)限

備注:

  1. Linux 下 MySQL 對(duì) root@% 用戶(hù)關(guān)閉了 grant_priv 權(quán)限,所以如果是遠(yuǎn)程登錄會(huì)出現(xiàn)授權(quán)失敗的情況
  2. 此處備份用戶(hù)帳號(hào)和密碼可不一致,此處為了簡(jiǎn)化操作使用一樣的帳號(hào)和密碼

重啟服務(wù)器

重啟服務(wù)器

開(kāi)啟備份

masterA

查看 masterB 狀態(tài)

show master status\G;
# 此處需要關(guān)注 File 和 Position 值

開(kāi)啟備份

stop slave;
# master_log_file 就是第一步操作的 File 值
# master_log_pos 就是第一步操作的 Position 值
change master to master_host=<master_hostname>, master_user=<rep_username>, master_port=<master_port>, master_password=<rep_password>, master_log_file='mysql-log.000003', master_log_pos=154;
start slave;

查看結(jié)果

show slave status\G;
# 查看最重要的兩項(xiàng),兩個(gè)都必須為 Yes ,有一個(gè)為 No 都要去查看錯(cuò)誤日志文件,看看什么地方存在問(wèn)題
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes

masterB

反向重復(fù) masterA 的操作

測(cè)試

分別在 masterA 和 masterB 中插入數(shù)據(jù),并查看另一臺(tái)服務(wù)器是否及時(shí)出現(xiàn)預(yù)期的數(shù)據(jù)

問(wèn)題

MySQL Slave Failed to Open the Relay Log

這應(yīng)該是中繼日志出現(xiàn)問(wèn)題,可嘗試如下操作

stop slave;
flush logs;
start slave;

Got fatal error 1236 from master when reading data from binary log

從主庫(kù)中拉取日志時(shí),發(fā)現(xiàn)主庫(kù)的 mysql_bin.index 文件中的第一個(gè)文件不存在。

# 進(jìn)行如下操作重置
# 如果二進(jìn)制日志或中繼日志有其他作用,請(qǐng)勿進(jìn)行如下操作
reset master;
reset slave;
flush logs;

對(duì)于以上實(shí)現(xiàn)MySQL雙向備份的詳細(xì)方法的內(nèi)容,大家還有什么不明白的地方嗎?或者想要了解更多相關(guān),可以繼續(xù)關(guān)注我們的行業(yè)資訊板塊。

本文名稱(chēng):實(shí)現(xiàn)MySQL雙向備份的詳細(xì)方法
URL網(wǎng)址:http://muchs.cn/article28/jehgjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開(kāi)發(fā)、自適應(yīng)網(wǎng)站、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)虛擬主機(jī)、網(wǎng)站導(dǎo)航、微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)