Mysql实时双备
設(shè)置方法:
步一設(shè)
A?服務(wù)服?(192.168.1.43)?上用戶為?backup, 123456 ,?同步的數(shù)據(jù)庫為test;
B?服務(wù)服?(192.168.1.23)?上用戶為?root, 123456,?同步的數(shù)據(jù)庫為test;
?
步二配置?mysql.ini:
A服務(wù)器
?
#Replication master
server-id = 10
log-bin="E:\MySQL\logs\mysql_binary_log"//必須先創(chuàng)建這個文件
binlog-do-db=test
?
# Replication slave
master-host="192.168.1.23"
master-user=root
master-password="123456"
master-port=3306
master-connect-retry=60
replicate-do-db=test
?
B服務(wù)器
?
#Replication master
server-id = 2
log-bin="c:\mysql5\logs\mysql_binary_log"
binlog-do-db=test
?
# Replication slave
master-host="192.168.1.43"
master-user=backup
master-password=123456
master-port=3306
master-connect-retry=60
replicate-do-db=test
?
=============================================================
解釋:
?
3)binlog-do-db=test?表示需要備份的數(shù)據(jù)庫是test這個數(shù)據(jù)庫,
如果需要備份多個數(shù)據(jù)庫,那么應(yīng)該寫多行,如下所示:
binlog-do-db=backup1?
binlog-do-db=backup2?
binlog-do-db=backup3
?
?
解釋:?
1) server-id=2表示本機(jī)器的序號, A,B的server-id?不能相同;?
2)log-bin表示打開binlog,打開該選項才可以通過I/O寫到Slave的relay-log,也是可以進(jìn)行replication的前提;
其中mysql_binary_log是日志文件的名稱,mysql將建立不同擴(kuò)展名,文件名為mysql_binary_log的幾個日志文件.
3) master-host="192.168.1.23"?表示A做slave時的master為192.168.1.23;
4) master-user=root?這里表示master上開放的一個有權(quán)限的用戶,使其可以從slave連接到master并進(jìn)行復(fù)制;
5) master-password=123456?表示授權(quán)用戶的密碼;?
6) master-port=3306 master上MySQL服務(wù)Listen3306端口;
7) master-connect-retry=60?同步間隔時間;?
8) replicate-do-db=test?表示同步backup數(shù)據(jù)庫;
?
?
最后重新啟動兩臺機(jī)器的mysql.
------------------------------------------------
查看狀態(tài)及調(diào)試
?
1,查看master的狀態(tài)
SHOW MASTER STATUS;
Position?不應(yīng)為0
2,查看slave的狀態(tài)
show slave status;
Slave_IO_Running | Slave_SQL_Running?這兩個字段應(yīng)為?YES|YES.
show processlist;
會有兩條記錄與同步有關(guān)?state為?Has read all relay log; waiting for the slave I/O thread to update it
和s Waiting for master to send event .
3,錯誤日志
MySQL安裝目錄\data\Hostname.err
?
4,CHANGE MASTER TO
如果A?的?Slave?未啟動?,Slave_IO_Running?為No.
可能會是B的master?的信息有變化,
查看B SHOW MASTER STATUS;
記錄下?File,Position?字段.?假設(shè)為'mysql_binary_log.000004',98 ;
在A?下執(zhí)行:
Stop Slave;
CHANGE MASTER TO
MASTER_LOG_FILE = 'mysql_binary_log.000004',
MASTER_LOG_POS = 98 ;
?
Start Slave;
?
5,SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;
如果A的Slave_SQL_Running?為No.
Err文件中記錄:
Slave: Error 'Duplicate entry '1' for key 1' on query....
可能是master?未向slave?同步成功,但slave中已經(jīng)有了記錄。造成的沖突.
可以在A上執(zhí)行
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = n;
跳過幾步。再
restart salve;
就可以了。
轉(zhuǎn)載于:https://www.cnblogs.com/feika/p/4228367.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
- 上一篇: codevs 1004 四子连棋 BFS
- 下一篇: linux学习笔记4:linux的任务调