測(cè)試環(huán)境:
RedHat ES 4 update 3
MYSQL 5.0.15
MYSQL數(shù)據(jù)同步備份
A服務(wù)器: 150.236.66.160 主服務(wù)器master
B服務(wù)器: 150.236.66.172 副服務(wù)器slave
1:A服務(wù)器設(shè)置上修改/etc/my.cnf
在[mysqld]區(qū)段內(nèi)加入?yún)?shù)
#(要同步的數(shù)據(jù)庫)
binlog_do_db = gdcu
2:設(shè)置能夠訪問A服務(wù)器用戶,該用戶能夠做同步操作
#mysql –u root –p
mysql>GRANT FILE ON *.* TO backup@150.236.66.172 IDENTIFIED BY 'orient5757';
grant replication slave,reload,super on *.* to backup@150.236.66.172 identified by 'orient5757'
mysql>FLUSH PRIVILEGES;
3:B服務(wù)器設(shè)置
設(shè)定/etc/my.cnf
在[mysqld]區(qū)段加入
#(如果還有slave用戶,他們的ID也隨之增加,如server-id=3)
server-id = 2
master-host = 150.236.66.160
master-user = backup
master-password = orient5757
replicate-do-db = gdcu
master-port=3306
master-connect-retry = 60
log-bin=mysql-bin
4:在 master 上執(zhí)行命令顯示 master 狀態(tài):
mysql> SHOW MASTER STATUS;
看到信息類似如下:
+—————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————+———-+————–+——————+
| mysql-bin.003 | 73 | gdcu | manual,mysql |
+—————+———-+————–+——————+
記下 LOG FILE 和 Position。
5、把 master 數(shù)據(jù)庫拷貝到 slave,在slave上執(zhí)行如下語句,把各個(gè)選項(xiàng)的值替換成真實(shí)值:實(shí)質(zhì)是設(shè)置slave數(shù)據(jù)從master數(shù)據(jù)庫讀取數(shù)據(jù)庫操作的事務(wù)。
mysql> STOP SLAVE;
mysql> CHANGE MASTER TO MASTER_HOST=’ 150.236.66.160′,MASTER_USER=’bakcup,MASTER_PASSWORD=’orient5757,MASTER_LOG_FILE=’mysql-bin.000003′,MASTER_LOG_POS=73;
6、啟動(dòng) slave 線程,并查看 slave 狀態(tài):
mysql> START SLAVE;
mysql> SHOW SLAVE STATUS;
測(cè)試結(jié)果:
在master數(shù)據(jù)庫操作,基本上數(shù)據(jù)是瞬間同步到slave上。
如果slave數(shù)據(jù)庫未運(yùn)行,master 數(shù)據(jù)庫發(fā)生變化,在slave開始運(yùn)行的時(shí)候,會(huì)把發(fā)生變化的數(shù)據(jù)同步過來。
雙向備份:
主機(jī)
#add for master backup
#log-bin=mysql-bin
server-id=1
binlog_do_db = gdcu
#binlog_ignore_db = mysql,information_schema
#server-id = 2
#攏簍脠鹿沒slave脫祿摟攏盧脣脙碌脛D也脣之脭錄櫻盧脠server-id=3攏漏
master-host = 192.168.1.6
master-user = root
master-password = orient5757
replicate-do-db = gdcu
#replicate-do-db = database2
#log-warnings
master-port=3306
master-connect-retry = 60
#bin-log =
log-bin=mysql-bin
備份機(jī):
server-id = 2
#(如果還有slave用戶,他們的ID也隨之增加,如server-id=3)
master-host = 192.168.1.5
master-user = root
master-password = orient5757
replicate-do-db = gdcu
#replicate-do-db = database2
#log-warnings
master-port=3306
master-connect-retry = 60
#bin-log =
log-bin=mysql-bin
#server-id=1
binlog_do_db = gdcu
在 '192.168.1.6'上操作
stop slave;
CHANGE MASTER TO MASTER_HOST='192.168.1.5',MASTER_USER='root',MASTER_PASSWORD='orient5757',MASTER_LOG_FILE='mysql-bin.000023',MASTER_LOG_POS=98;
在 '192.168.1.5上操作
stop slave;
CHANGE MASTER TO MASTER_HOST='192.168.1.6',MASTER_USER='root',MASTER_PASSWORD='orient5757',MASTER_LOG_FILE='mysql-bin.000054',MASTER_LOG_POS=98;