時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
MySQL支持單向、異步復制,復制過程中一個服務(wù)器充當主服務(wù)器,而一個或多個其它服務(wù)器充當從服務(wù)器。主服務(wù)器將更新寫入二進制日志文件,并維護日志文件的一個索引以跟蹤日志循環(huán)。
當一個從服務(wù)器連接到主服務(wù)器時,它通知主服務(wù)器從服務(wù)器在日志中讀取的最后一次成功更新的位置。從服務(wù)器接收從那時起發(fā)生的任何更新,然后封鎖并等待主服務(wù)器通知下一次更新。
在實際項目中,兩臺分布于異地的主機上安裝有MySQL數(shù)據(jù)庫,兩臺服務(wù)器互為主備,客戶要求當其中一臺機器出現(xiàn)故障時,另外一臺能夠接管服務(wù)器上的應用,這就需要兩臺數(shù)據(jù)庫的數(shù)據(jù)要實時保持一致,在這里使用MySQL的同步功能實現(xiàn)雙機的同步復制。
以下是操作實例:
1、數(shù)據(jù)庫同步設(shè)置
主機操作系統(tǒng):RedHat Enterprise Linux 5
數(shù)據(jù)庫版本:MySQL Ver 14.12 Distrib 5.0.22
前提:MySQL數(shù)據(jù)庫正常啟動
假設(shè)兩臺主機地址分別為:
ServA:10.240.136.9
ServB:10.240.136.149
1.1 配置同步賬號
在ServA上增加一個ServB可以登錄的帳號:
MySQL>GRANT all privileges ON *.* TO tongbu@'10.240.136.149' IDENTIFIED BY '123456'; |
在ServB上增加一個ServA可以登錄的帳號:
MySQL>GRANT all privileges ON *.* TO tongbu@'10.240.136.9' IDENTIFIED BY '123456'; |
1.2 配置數(shù)據(jù)庫參數(shù)
1、以root用戶登錄ServA,修改ServA的my.cnf文件
vi /etc/my.cnf |
在[MySQLd]的配置項中增加如下配置:
?
?
1 default-character-set=utf8
2
3 log-bin=MySQL-bin
4
5 relay-log=relay-bin
6
7 relay-log-index=relay-bin-index
8
9 server-id=1
10
11 master-host=10.240.136.149
12
13 master-user=tongbu
14
15 master-password=123456
16
17 master-port=3306
18
19 master-connect-retry=30
20
21 binlog-do-db=umsdb
22
23 replicate-do-db=umsdb
24
25 replicate-ignore-table=umsdb.boco_tb_menu
26
27 replicate-ignore-table=umsdb.boco_tb_connect_log
28
29 replicate-ignore-table=umsdb.boco_tb_data_stat
30
31 replicate-ignore-table=umsdb.boco_tb_log_record
32
33 replicate-ignore-table=umsdb.boco_tb_workorder_record
?
?
2、以root用戶登錄ServB,修改ServB的my.cnf文件
vi /etc/my.cnf |
在[MySQLd]的配置項中增加如下配置:
?
?
1 default-character-set=utf8
2
3 log-bin=MySQL-bin
4
5 relay-log=relay-bin
6
7 relay-log-index=relay-bin-index
8
9 server-id=2
10
11 master-host=10.240.136.9
12
13 master-user=tongbu
14
15 master-password=123456
16
17 master-port=3306
18
19 master-connect-retry=30
20
21 binlog-do-db=umsdb
22
23 replicate-do-db=umsdb
24
25 replicate-ignore-table=umsdb.boco_tb_menu
26
27 replicate-ignore-table=umsdb.boco_tb_connect_log
28
29 replicate-ignore-table=umsdb.boco_tb_data_stat
30
31 replicate-ignore-table=umsdb.boco_tb_log_record
32
33 replicate-ignore-table=umsdb.boco_tb_workorder_record
?
1.3 手工執(zhí)行數(shù)據(jù)庫同步
?
假設(shè)以ServA為主服務(wù)器,在ServB上重啟MySQL:
service MySQLd restart |
在ServB上用root用戶登錄MySQL,執(zhí)行:
MySQL> stop slave; |
在ServA上重啟MySQL:
service MySQLd restart |
1.4 查看數(shù)據(jù)庫同步狀態(tài)
在MySQL命令提示符下執(zhí)行:
MySQL> show slave status\G |
將顯示同步進程的狀態(tài),如下所示,兩行藍色字體為slave進程狀態(tài),如果都為yes表示正常;紅色字體表示同步錯誤指示,如果有問題會有錯誤提示:
?
?
1 *************************** 1. row ***************************
2
3 Slave_IO_State: Waiting for master to send event
4
5 Master_Host: 10.21.2.90
6
7 Master_User: tongbu
8
9 Master_Port: 3306
10
11 Connect_Retry: 30
12
13 Master_Log_File: localhost-bin.000005
14
15 Read_Master_Log_Pos: 39753882
16
17 Relay_Log_File: localhost-relay-bin.000062
18
19 Relay_Log_Pos: 9826663
20
21 Relay_Master_Log_File: localhost-bin.000005
22
23 Slave_IO_Running: Yes
24
25 Slave_SQL_Running: Yes
26
27 Replicate_Do_D關(guān)鍵詞標簽:
相關(guān)閱讀
熱門文章 Xbox Game Pass 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL常用維護管理工具 MySQL數(shù)據(jù)庫啟動失敗1067進程意外終止的解決辦法總結(jié)
人氣排行 10款MySQL數(shù)據(jù)庫客戶端圖形界面管理工具推薦 MySQL數(shù)據(jù)庫啟動失敗1067進程意外終止的解決辦法總結(jié) Mysql 1045錯誤解決辦法 MySQL服務(wù)器進程CPU占用100%解決辦法 MySQL導出導入命令的用例 MySQL連接字符串的實際操作步驟匯總 MySQL無法啟動、無法停止各種解決方法總結(jié) 三種常用的MySQL建表語句