Mysql 資料庫主庫,備庫實時同步配置

百聯達發表於2013-12-20
背景: mysql 主庫伺服器server1(192.168.71.37)    mysql 備庫伺服器server2(192.168.71.38)    主庫,備庫版本同為5.5.31.

第一步:建立複製賬號

主庫: GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.*  TO  username@'192.168.71.38' INDENTIFIED BY 'password';

在主庫和備庫都建立該賬號, 備庫只需要修改對應的主庫IP即可。


第二步:配置主庫和備庫

在主庫的my.cnf 增加或修改如下內容:
log_bin = mysql-bin
server_id = 7137 (必須明確地指定一個唯一的伺服器ID 此處去伺服器Ip的最後兩個段)

如果之前沒有在mysql 的配置檔案中指定log_bin 就需要重新啟動Mysql。 為了確認二進位制日誌檔案是否已經在主庫上建立,使用:SHOW MASTER STATUS進行檢視Mysql 資料庫主庫,備庫實時同步配置
備庫上也需要做同樣的配置,並重啟資料庫
log_bin =  mysql-bin
server_id = 7138
relay_log = /var/lib/mysql/mysql-relay-bin (指定中繼日誌的位置和命名)
log_slave_updates = 1 (允許備庫將其重放的事件也記錄到自身的二進位制日誌
read_only = 1

第三步:啟動複製

在備庫上執行以下命令

CHANGE MASTER TO MASTER_HOST='192.168.71.37',
MASTER_USER='username',
MASTER_PASSWORD='password',
MASTER_LOG_FILE = 'mysql-bin.000015',
MASTER_LOG_POS=0;
設定MASTER_LOG_POS=0是要從日誌的開頭讀取。

透過SHOW SLAVE STATUS;命令檢視配置資訊。

執行命令START SLAVE;開啟複製。

透過SHOW SLAVE STATUS;再次檢視

Mysql 資料庫主庫,備庫實時同步配置

透過SHOW PROCESSLIST;可以看到一個I/O執行緒,和一個SQL執行緒

Mysql 資料庫主庫,備庫實時同步配置

四:推薦的複製配置
在主庫上二進位制日誌最重要的選項是: sync_binlog =1
如果開啟該選項,mysql每次在提交事物請會將二進位制日誌同步到磁碟上,保證在伺服器崩潰的時候不會丟失事件。

如果使用InnoDB 強烈推薦設定如下選項:

innodb_flush_logs_at_trx_commit
innodb_support_xa=1
innodb_safe_binlog

如果正在使用mysql 5.5 ,最好設定以下選項:
sync_master_info = 1
sync_replay_log = 1
sync_relay_long_info =1

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-1063901/,如需轉載,請註明出處,否則將追究法律責任。

相關文章