如何解決MySQL數(shù)據(jù)庫主從服務(wù)器之間數(shù)據(jù)有差距問題
作者:xyaxlz
本文我們主要介紹了MySQL數(shù)據(jù)庫主從服務(wù)器之間的數(shù)據(jù)同步的問題,并給出了手動(dòng)執(zhí)行主從服務(wù)器數(shù)據(jù)同步的代碼示例,希望能夠?qū)δ兴鶐椭?/div>
為什么MySQL數(shù)據(jù)庫的主從服務(wù)器之間的數(shù)據(jù)會(huì)有差距呢?原因是由于主服務(wù)器比較繁忙,主服務(wù)器與從服務(wù)器的硬件相差比較大等原因可能造成主服務(wù)器與從服務(wù)器數(shù)據(jù)差距比較大。為了不影響MySQL數(shù)據(jù)庫的應(yīng)用,我們常常手動(dòng)地定期進(jìn)行主從服務(wù)器的數(shù)據(jù)同步,下面是手動(dòng)進(jìn)行數(shù)據(jù)同步的步驟。該過程是在數(shù)據(jù)庫負(fù)載比較低時(shí)執(zhí)行的,此時(shí)主服務(wù)器不能更新。
1、對主服務(wù)器執(zhí)行:
- mysql> flush tables with read lock; 用讀鎖鎖住所有的表阻止對它的更新
- mysql> show master status\G
- *************************** 1. row ***************************
- File: binlog.000022
- Position: 592429
- Binlog_Do_DB:
- Binlog_Ignore_DB:
記錄下FILE后面的值及Postion后面的值也就是日志名字及其偏移量。
2、在從服務(wù)器上執(zhí)行下面的語句:
- mysql> select MASTER_POS_WAIT('binlog.000022','592429')\G
- *************************** 1. row ***************************
- MASTER_POS_WAIT('binlog.000022','592429'): 0
MASTER_POS_WAIT的第一個(gè)參數(shù)是上面master的File值,第二個(gè)參數(shù)是上面master 的Position值。
如果返回值是0代表同步是成功的,如果為-1代表是超時(shí)退出。
3、對主服務(wù)器的操作:
- mysql> unlock tables;
按照以上的步驟執(zhí)行完畢,就能夠解決MySQL數(shù)據(jù)庫主從服務(wù)器之間的差距問題了。
【編輯推薦】
責(zé)任編輯:趙鵬
來源:
ChinaUnix博客


相關(guān)推薦




