天天看點

mysql雙向備份

2.環境說明

2.1 硬體環境(兩台機器的硬體環境相同)

CPU

Inter(R) Pentium(R) Dual CPU E5200 @2.50GHz

記憶體大小

384MB

硬碟大小

8GB

其它說明

本機器為虛拟機,其有兩塊網卡,一對網卡直連,一對接入交換機

CPU

Inter(R) Pentium(R) Dual CPU E5200 @2.50GHz

記憶體大小

384MB

硬碟大小

8GB

其它說明

本機器為虛拟機,其有兩塊網卡,一對網卡直連,一對接入交換機

2.2 軟體環境(兩台機器的軟體環境相同)

系統

Server 2003 Enterprise Edition

Java環境

jdk1.6.0

web平台

apache-tomcat-5.0

資料庫

MySQL Server 5.0

ldap資料庫

Sun ONE Directory Server 5.2

ha軟體

藍科泰達科技Pluswell

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;

確定也正常。最後在到兩台伺服器上修改資料,檢視資料是否已經同步

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