msql雙向同步


mysql數據雙向同步


2.環境說明

2.3    網絡環境

主機名          ha001
IP地址          192.168.0.188
子網掩碼        255.255.255.0
網關            192.168.0.1
DNS        192.168.0.1
公用虛擬IP        192.168.0.187
IP地址02        192.168.8.188
子網掩碼02        255.255.255.0

 

主機名        ha002
IP地址        192.168.0.189
子網掩碼        255.255.255.0
網關        192.168.0.1
DNS        192.168.0.1
公用虛擬IP        192.168.0.187
IP地址02        192.168.8.189
子網掩碼02        255.255.255.0

 

3  mysql數據同步實現原理:

即讀寫操作在兩臺服務器上進行,每臺服務器即主也是從。當其中的任何一臺服務器收到操作請求時,其進行相應的數據變化,並把變化的數據複製到另一臺服務器中。
4 數據同步實現
4.1    mysql數據雙向同步
4.1.1    配置服務器ha001

Ø    初始服務器

通過mysql工具連接服務器ha001後,新建兩個數據庫audit,idm。導入初始化數據庫文件,完成數據庫的初始化

Ø    給用戶授權

從開始菜單中打開mysql5的命令行,輸入正確的密碼,進入mysql控制檯命令行模式後,輸入如下命令:

#授權來自192.168.0.189的backup用戶擁有對所有庫的複製數據的權限,該用戶的密碼設爲123456

GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.189' IDENTIFIED BY '123456';

#刷新權限設置

FLUSH PRIVILEGES ;

Ø    修改配置文件

修改主目錄中的my.inf文件,在mysqld下面加入如下內容

server-id = 1

log-bin=mysql-bin

binlog-do-db = audit

binlog-do-db = idm

binlog-ignore-db = information_schema

binlog-ignore-db = mysql

binlog-ignore-db = test

 

master-host     = 192.168.0.189

master-user     = backup

master-password = 123456

master-port     = 3306

replicate-do-db = audit

replicate-do-db = idm

master-connect-retry = 60

 
4.1.2    配置服務器ha002

Ø    初始服務器

通過mysql工具連接服務器ha002後,新建兩個數據庫audit,idm。導入初始化數據庫文件,完成數據庫的初始化

Ø    給用戶授權

從開始菜單中打開mysql5的命令行,輸入正確的密碼,進入mysql控制檯命令行模式後,輸入如下命令:

#授權來自192.168.0.188的backup用戶擁有對所有庫的複製數據的權限,該用戶的密碼設爲123456

GRANT REPLICATION SLAVE ON *.* TO 'backup'@'192.168.0.188' IDENTIFIED BY '123456';

#刷新權限設置

FLUSH PRIVILEGES ;

 

Ø    修改配置文件

修改主目錄中的my.inf文件,在mysqld下面加入如下內容

server-id = 2

master-host     = 192.168.0.188

master-user     = backup

master-password = 123456

master-port     = 3306

replicate-do-db = audit

replicate-do-db = idm

master-connect-retry = 60

 

log-bin=mysql-bin

binlog-do-db = audit

binlog-do-db = idm

binlog-ignore-db = information_schema

binlog-ignore-db = mysql

binlog-ignore-db = test

 
4.1.3    啓動兩臺服務器上的mysql從服務

在兩臺服務器上,均完成如下操作:

從開始菜單中打開mysql5的命令行,輸入正確的密碼,進入mysql控制檯命令行模式後,輸入如下命令:

#開啓從服務器

slave start;

 
4.1.4    服務狀態檢查

在兩臺服務器上,均完成如下操作:

從開始菜單中打開mysql5的命令行,輸入正確的密碼,進入mysql控制檯命令行模式後,輸入如下命令:

#顯示主服務器狀態

Show master status;

#顯示從服務器狀態

Show slave status /G;

Ø    查看連接配置狀態:

Slave_IO_Running: Yes -----此項爲No代表與主庫連接有問題。

Slave_SQL_Running: Yes ----如果此項爲NO代表配置有問題。

Ø    查看對比pos點以及記錄文件是否一致:

如果不一致,在從MySQL運行

#改變從服務器的pos點爲98,記錄文件爲mysql-bin.000001

CHANGE MASTER TO Master_Log_File='mysql-bin.000001',Master_Log_Pos=98;

運行此命令前需要stop slave;之後再start slave;
4.1.5    雙向同步測試

Ø    檢查當在兩臺機器的任何一臺mysql中修改數據時,另外的那臺的數據是否也修改

Ø    關閉其中一臺mysql的服務後,更新另一臺mysql的數據,再啓動已停止的那臺mysql服務器,查看數據是否修改
4.1.6    特別注意事項

Ø    請在任何時候都不要非法關機,否則將會造成同步數據的錯亂。

Ø    當出現了非法關機時,爲不影響數據,請執行如下操作:

在該非法關機的機器啓動後,檢查該機器,查看數據是否與一直正常運行的機器一致了。確認其數據一致後。進入一直正常運行的機器,從開始菜單中打開mysql5的命令行,輸入正確的密碼,進入mysql控制檯命令行模式後,輸入如下命令:

#關閉slave服務

Slave stop;

#開啓slave服務

Slave start;

通過這步後,一切即恢復正常

Ø    如果數據已經完全錯亂,請先在兩臺機器上停止slave服務,然後將數據正常的服務器上的數據導入到不正常的服務器上,保證兩邊的服務器數據一致。然後到數據正常的服務器的mysql控制檯下輸入:

#顯示主服務器狀態

Show master status;

獲取其狀態後,根據這個狀態到數據不正常服務器上,通過命令:

#改變從服務器的pos點爲xx,記錄文件爲mysql-bin.0000xx

CHANGE MASTER TO Master_Log_File='mysql-bin.0000xx',Master_Log_Pos=xx;

修改其參數後,再通過

#開啓從服務器

Start slave;

#顯示從服務器狀態,檢查是否和主一致。

#檢查Slave_IO_Running,Slave_SQL_Running狀態是否正常

Show slave status /G;

確保一切正常後。再到數據不正常的服務器的mysql控制檯下輸入:

#顯示主服務器狀態

Show master status;

獲取其狀態後,根據這個狀態到數據正常的服務器上,通過命令:

#改變從服務器的pos點爲xx,記錄文件爲mysql-bin.0000xx

CHANGE MASTER TO Master_Log_File='mysql-bin.0000xx',Master_Log_Pos=xx;

修改其參數後,再通過

#開啓從服務器

Start slave;

#顯示從服務器狀態,檢查是否和主一致。

#檢查Slave_IO_Running,Slave_SQL_Running狀態是否正常

Show slave status /G;

確保也正常。最後在到兩臺服務器上修改數據,查看數據是否已經同步

Ø    同步一旦配置好後,請不要修改服務器機器名

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章