您可以依照前面的步驟使用DRBD與Heartbeat來建立HA Slave機器, 本文就簡單對MySQL Master-Slave Replication設置做介紹。
本系列文章將分成四段, 避免過於冗長, 方便各位閱讀:
一、DRBD安裝與設定
二、MySQL資料庫安裝與設定
三、Heartbeat服務監測安裝與設定
四、MySQL資料庫伺服器Master-Slave Replication安裝與設定
同樣需要裝好資料庫軟體, 採用Percona Server 5.6, 在之前的作業系統安裝時, 給了Slave機器hostname叫做"rep", hostname您可以自己決定。

以apt-get install percona-server-server-5.6指令裝好資料庫。

移除套件原本的預設my.cnf設定檔, 建立新的my.cnf。

機器採用與Master伺服器同樣的規格, 所以設定值相同, 不過server-id必須變更, Master是server-id = 1, 所以Slave我們設定server-id = 2。
先回到db1, 也就是Master伺服器, 增加Replication需要的參數, 修改db1與db2的my.cnf。

db1加入sync_binlog=1設定值。
編輯my.cnf
nano /etc/mysql/my.cnf
後面補上
sync_binlog=1
並且存檔。

db2也要照做, db2是standby狀態, 所以存檔後並不需要啟動MySQL服務。
回到rep機器(Replication的Slave角色), 修改資料路徑。

我同樣把/var/lib/的子目錄mysql搬到/srv下, /srv在安裝作業系統中已經格式為XFS檔案系統。別忘了也建立/srv/tmp(my.cnf的tmpdir = /srv/tmp設定值)。
在此補上步驟, 讓各為免去翻前文的麻煩
cd /var/lib
mv mysql /srv/mysql
ln -s /srv/mysql /var/lib/mysql
chown -R mysql:mysql /srv/mysql
移除InnoDB初始資料
cd /srv/mysql
rm ibdata1
rm ib_logfile*
建立/srv/tmp目錄給MySQL伺服器用
cd /srv
mkdir tmp
chmod 777 tmp
接著就起動Slave伺服器吧
/etc/init.d/mysql start
又回到db1, 要來建立Replication用的MySQL系統帳號, 請大家要小心db1與rep之間別做錯了。

使用mysql指令: mysql -u root -p, 會詢問root的密碼, 輸入正確後就會進入MySQL自己的console。

建立Replication專用帳號, 在範例裡, 我取名為"repl", 密碼是"slavepass", 您可以自己決定帳號與密碼。
使用以下SQL建立repl帳號
CREATE USER 'repl'@'%' IDENTIFIED BY 'slavepass';

給予repl帳號Replication權限。
使用以下SQL設定權限
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';

接著我們需要取得Replication的位置資訊。
限制資料庫寫入
FLUSH TABLES WITH READ LOCK;
顯示binlog的檔名與位置
SHOW MASTER STATUS;
好! 您可以看到螢幕截圖裡的檔名"mysqld-bin.000005"與Position欄位的"411"數值, 把它記好。

解除資料庫唯讀
UNLOCK TABLES;
回到rep這台Slave機器, 同樣進入MySQL console。

確定是rep機器喔!

設定Master位置與其Repliaction資訊。
使用以下SQL設定Master主機位置
CHANGE MASTER TO MASTER_HOST='192.168.1.192', MASTER_USER='repl', MASTER_PASSWORD='slavepass', MASTER_LOG_FILE='mysqld-bin.000005', MASTER_LOG_POS=411;
起動Slave開始做Replication
START SLAVE;
利用SHOW SLAVE STATUS指令查看Replication的Slave狀態
SHOW SLAVE STATUS\G


以上是SHOW SLAVE STATUS的結果。
回到db1的MySQL console, 下達SHOW PROCESSLIST指令看看
SHOW PROCESSLIST\G

系統出現狀態為"Master has sent all binlog to slave..."的程序, 就是已經開始Master-Slave Replication了。
回到rep的MySQL console, 同樣下達SHOW PROCESSLIST指令看看
SHOW PROCESSLIST\G

出現兩個程序, 一個是"Waiting for master to send event"狀態, 一個是"Slave has read all relay log..."狀態。
再度回到db1(Master), 下達一個建立資料庫的指令
CREATE DATABASE test2;

用SHOW DATABASES指令看到"test2"資料庫已被建立。
回到rep(Slave), 看看"test2"資料庫是否存在
SHOW DATABASES;

Slave機器出現"test2"資料庫囉, 代表Master-Slave Replication運作正常!
MySQL Master-Slave Replication安裝與設定就完成囉! 各位可以利用DRBD與Heartbeat來建立更完整的MySQL Replication, 不過缺點就是standby機器是不能服務的, 在機器預算上得多花錢。
延伸閱讀:
1. 使用Percona Tool Kit修復MySQL Replication資料不同步
2. 使用Percona XtraBackup備份MySQL資料庫