李春玲
摘 要:本文介紹了采用MySQL數(shù)據(jù)庫自帶的Replication功能完成雙機熱備份的方案,測試結(jié)果顯示該方案數(shù)據(jù)同步效率較高,可以為系統(tǒng)運行提供較高的一致性和可靠性。
關(guān)鍵詞:MySQL;Replication;雙機熱備份
1 前言
MySQL數(shù)據(jù)庫以其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,通常被中小型企業(yè)所青睞。但隨著市場競爭的日趨激烈,各大公司推行成本戰(zhàn)略,對一些業(yè)務(wù)數(shù)據(jù)量較小的項目也開始使用MySQL數(shù)據(jù)庫,從提高系統(tǒng)運行可靠性的角度考慮,部署MySQL數(shù)據(jù)庫雙機是必要的。
2 Replication功能介紹
Replication是一個異步的復(fù)制,從一個MySQL Instance(稱之為Master)復(fù)制到另一個MySQL Instance(稱之Slave)?;谠摴δ?,可以實現(xiàn)MySQL數(shù)據(jù)庫的雙機熱備份。
Replication實現(xiàn)整個復(fù)制過程實際上就是Slave從Master端獲取該日志,然后再在自己身上完全順序的執(zhí)行日志中所記錄的各種操作。要實施復(fù)制,首先必須打開Master端的binary log(bin-log)功能。
3 雙機熱備實施
本文的安裝及測試過程使用Microsoft Virtual PC創(chuàng)建了兩臺虛擬機,分別安裝及配置軟件環(huán)境如表1:
MySQL雙機熱備安裝配置步驟如下:
1、在主、備機上安裝操作系統(tǒng)Windows Server 2003 Enterprise Edition(SP2),然后安裝MySQL 5.1,并創(chuàng)建測試數(shù)據(jù)庫testdb,確保數(shù)據(jù)庫能夠正常訪問。
2、停止主、備機的MySQL數(shù)據(jù)庫,把主機的data目錄拷貝到備機data目錄覆蓋,實現(xiàn)第一次冷備。
(1)打開主機MySQL配置文件my.ini,在[mysqld]配置項中加入下面配置:
server-id=1
log-bin=“C:\MySQL\log\MySQL”
binlog-do-db=testdb
(2)啟動數(shù)據(jù)庫,通過show master status檢查主機狀態(tài)。
(3)再打開主機MySQL配置文件my.ini,在[mysqld]配置項中加入下面配置:
server-id=2
master-host=192.168.1.100
master-user=root
master-password=password
master-port=3306
master-connect-retry=60
replicate-do-db=testdb
(4)啟動數(shù)據(jù)庫,通過show slave status檢查備機狀態(tài)。
3、拷貝備機的my.ini至主機,并修改名稱為my.ini.slave;拷貝主機的my.ini至備機,并修改名稱為my.ini.master。
4、編寫以下內(nèi)容并保存為Switch to Master.bat和Switch to Slave.bat。
Switch to Master.bat:
net stop MySQL
rename C:\MySQL\MySQL Server 5.1\my.ini my.ini.slave
rename C:\MySQL\MySQL Server 5.1\my.ini.master my.ini
del C:\MySQL\MySQL Server 5.1\master.info
netsh interface ip set address name="本地連接" source=static addr=192.168.1.101 mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1
net start MySQL
Switch to Slave.bat:
net stop MySQL
rename C:\MySQL\MySQL Server 5.1\my.ini my.ini.master
rename C:\MySQL\MySQL Server 5.1\my.ini.slave my.ini
del C:\MySQL\MySQL Server 5.1\master.info
netsh interface ip set address name="本地連接" source=static addr=192.168.1.100 mask=255.255.255.0 gateway=192.168.1.1 gwmetric=1
net start MySQL
然后拷貝Switch to Master.bat和Switch to Slave.bat兩個文件至備、主機,并創(chuàng)建快捷方式至桌面,方便發(fā)生意外時快速切換主備機。
至此,完成雙機系統(tǒng)安裝配置。
4 雙機熱備測試
1、數(shù)據(jù)同步測試
(1) 在Master的testdb中創(chuàng)建表testtable,然后在Slave上查詢數(shù)據(jù)庫,表已同步創(chuàng)建;
(2) 在Master的testtable插入數(shù)據(jù),然后在Slave上查詢表testtable,數(shù)據(jù)已同步插入;
(3) 刪除Master的testtable數(shù)據(jù),然后在Slave上查詢表testtable,數(shù)據(jù)已同步刪除;
(4) 刪除Master的表testtable,然后在Slave上查詢數(shù)據(jù)庫,表已同步刪除。
2.主備切換測試
(1)分別在備、主機上執(zhí)行Switch to Master.bat和Switch to Slave.bat,然后用show master status和show slave status查看狀態(tài);
(2)重復(fù)步驟1中的數(shù)據(jù)同步測試;
在測試中發(fā)現(xiàn)該方案數(shù)據(jù)同步效率是比較高的,基本上異步同步時延保持在秒級,還是可以提供較高的一致性和可靠性。
5 總結(jié)
通過MySQL自帶的Replication功能實施MySQL數(shù)據(jù)庫的雙機熱備方案簡單、可行,而且數(shù)據(jù)同步效率較高,可以為系統(tǒng)運行提供較高的一致性和可靠性。