天天看點

promise mysql 同步_Mysql 資料庫的同步(master slave) 詳解

####原理########

mysql 的資料同步,在 mysql 官方網站文檔上,叫 replication 字面是重作的意思,意譯就是同步了。

mysql 為了實作 replication 必須打開 bin-log 項,也是打開二進制的 mysql 日志記錄選項。

mysql 的 bin log 二進制日志,可以記錄所有影響到資料庫表中存儲記錄内容的 sql 操作,如 insert / update / delete 操作,而不記錄 select 這樣的操作。是以,我們可以通過二進制日志把某一時間段内丢失的資料可以恢複到資料庫中,( 如果二進制日志中記錄的日志項,包涵資料庫表中所有資料,那麼,就可以恢複本地資料庫的全部資料了 )

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

這就是使用 replication 而不用 sync 的原因。

這也是為什麼要設定 bin-log = 這個選項的原因。

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

下面的官方文檔,說明如何安裝與設定 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