天天看點

mysql雙機熱備 不忽略異常_mysql 資料庫的同步問題(雙機熱備)

mysql

資料庫的同步問題

(

雙機熱備

)

網上有不少關于

mysql

資料庫伺服器的資料同步文章,其實隻有二位朋友發表的文章,其他都是轉抄。

而這些文章中,僅對資料同步過程的操作作了一個記錄,而沒有把操作方法,原理與一些過程中出現的問題說明清楚。

因為工作需要,

我公司需要對美國伺服器上的

mysql

資料庫同步到香港伺服器上,僅對部分業務相關表進行同步,而同時又需要把香港伺服器上的産品資料同

步到美國伺服器上,這是同一個資料庫,不同表

table

的雙向同步,我在設定過程中,參考了網上的中文文章與

msql.com

網站上的線上文檔,多次成敗,

也算是把

mysql

的這樣同步搞個明白。

下面就是一些記錄文章,希望可以說明一些内在原理,一些出錯現象與處理方法。

mysql

的資料同步,在

mysql

官方網站文檔上,叫

replication

字面是重作的意思,意譯就是同步了。

其實,

mysql

的同步,并不是使用同步

sync

這個單詞而是用重作

replication ,

很準确表明了

mysql

資料庫操作的實質,是作同樣的操作,或叫重作同樣

的操作,以保持主資料庫伺服器

master

從屬伺服器

slave

之樣的資料保持一緻。

replication

就是有重複,重作的意思。

mysql

為了實作

replication

必須打開

bin-log

項,也是打開二進制的

mysql

日志記錄選項。

mysql

bin log

二進制日志,可以記錄所有影響到資料庫表中存儲記錄内容的

sql

操作,如

insert / update / delete

操作,而不記錄

select

這樣的操

作。是以,我們可以通過二進制日志把某一時間段内丢失的資料可以恢複到資料庫中,

(

如果二進制日志中記錄的日志項,包涵資料庫表中所有資料,那麼,就

可以恢複本地資料庫的全部資料了

)

而這個二進制日志,如果用作遠端資料庫恢複,那就是

replication

了。

這就是使用

replication

而不用

sync

的原因。

這也是為什麼要設定

bin-log =

這個選項的原因。

在同步過程中,最重要的同步參照物,就是同步使用那一個二進制日志檔案,從那一條記錄開始同步。

下面,我們來講解最核心的過程

上面同步的單詞是

synchronization

,呵呵簡寫

sync

,也是

linux

下一個重要操作

下面的官方文檔,說明如何安裝與設定

mysql

同步操作,當然,英文版

http://dev.mysql.com/doc/mysql/en/Replication_HOWTO.html

現在,我們用中文複述一下過程

1.

首先,你應該有兩個或兩個以上的

mysql

資料庫伺服器,版本最好是在

3.3

以上

(

當然啦,兩個伺服器不一定是兩台機器,一台機器上安裝兩個

mysql

服務是可以的,同時,如果你對

mysql replication

原理十分精通的話,你甚至可以在一個

mysql

服務的兩個不同資料庫

database

之間作同步,看有沒有

需要了

)

說明:

這兩個伺服器一般設定一個為

主伺服器,或叫源伺服器,

master mysql server,

另一台或其他多台就是

replication slave

同步從伺服器了。一

slave

與多台

slave

設定方法是一樣的,這樣你就可以作類似資料庫叢集了

2.

設定可通路

mysql

帳号,操作以英文為準

說明:

2.1 mysql

帳号一般設定為限定

ip

通路,以保障安全性