1. 程式人生 > 實用技巧 >drb+heartbeat完成mysql實時備份

drb+heartbeat完成mysql實時備份

近期公司要上線一個mysql的專案,我們使用drbd+heartbeat進行熱備,以保證db的高可用性,這裡記錄下安裝過程。關於drbd的擴容,縮小空間以及meta資料表的備份等詳細操作這裡就不給出了,感興趣的同學可以參考drbd官網:www.drbd.org,也可以和我交流,mail to:[email protected] 一.下載及安裝 1.yum安裝 yum -y install drbd kmod-drbd yum -y install heartbeat modprobe drbd lsmod |grep drbd 預設安裝的是drbd8.0.x版本的,有網友反映該版本有同步效能有問題,您也可以通過yum安裝最新版,目前最新版本是drbd8.3.x,使用yum -y install drbd83 kmod-drbd83
yum -y install heartbeat.即可 2.原始碼安裝 二.配置drbd 配置檔案位於/etc/drbd.conf,主備份機器都要設定 更改內容如下: drbd的配置檔案有很多功能,例如:預設啟動是否為primary等,我們這裡只給出最簡單的配置參考: 定義一個名稱為data 的resouce,使用協議C(備機確認機制),限速10M,定義兩個節點(節點名稱等於uname -n),塊裝置名稱為/dev/drbd0對應於分割槽/dev/sda1,meta資料位於分割槽,可以更改其他位置,此處有些許玄機,感興趣的同學請google之。。 準備啟動drbd之前,需要分別在2個主機上的 /dev/sda1 分割槽上建立相應的元資料儲存的資料塊:
drbdadm create-md data## data對應resouce的名稱
service drbd start 預設的情況下,兩臺機器都處於備機狀態,可以通過 /proc/drbd狀態檢視 在需要設定成主機的上面首次同步需要執行: drbdsetup /dev/drbd0 primary -o #設定為主 mkfs.ext3 /dev/drbd0 #格式化 mkdir /mnt/data mount /dev/drbd0 /mnt/data #掛載準備使用 touch /mnt/test/{1..100} #寫入測試資料 三.測試切換 設定主機狀態為備份: umount /mnt/data drbdadm secondary data
設定備機為主: drbdadm primary data mount /dev/drbd 0 /mnt/data ls /mnt/data #檢視資料是否已經同步過來 四.heartbeat安裝 先了解一下heartbeat的工作原理及配置引數選項內容的含義,可以參考:http://book.51cto.com/art/200912/168031.htm 這裡給出我們的配置引數: 幾點說明: 1.ha.cf檔案用於定義節點名稱,切換超時時間,監視的網絡卡名稱以及是否啟用crm。 2.authkeys定義主備機之間的認證方式,目前有三種,請記得,如果定義了 auth 1則次行一定也是以1開始定義,其他兩種方式也一樣的。 3.haresources檔案則定義需要監視的資源及服務。第一個域是主機的uname -n的名稱,第二個域是告訴heartbeat這是一個drbd塊裝置,第三個域告知drbd的掛載資訊,第四個域說明監視的服務,可以是apache,mysql等,第五個域用於定義vip,會跟從主機的ip漂浮 更改配置檔案後,就可以啟動heartbeat了: service heartbeat start 五.mysql安裝 mysql的安裝就不說了,注意如果是原始碼安裝,請指定安裝目錄為/mnt/data 六.整體測試(引用):
1) 手工呼叫heartbeat的節點切換指令碼:
執行/usr/lib/heartbeat/hb_standby 指令碼(注意你的),讓heartbeat通知對方節點自己請求變成standby節點,請求對方成為primary節點,切換工作在10s左右即完成.
2) 拔掉網線,測試在primary節點的網路斷開後的切換情況
通過測試,在拔掉網線後,當主節點發現無法和standby節點無法通訊後,會在log中記錄warn資訊,如果延續時間達到在ha.cf中設定的時長後,會開始釋放資 源,standby節點發現無法和主節點通訊一段時間(ha.cf設定)後,開始嘗試啟動資源並將自己active成primary節點。切換過程除開ha.cf中設定的時長之外 的時間段同樣非常短。
3) shutdown primary主機,測試是否能夠正常切換,基本上和上面測試2差不多。
4) primary node 掉電測試,這裡還沒有到機房實際操作過,後面會繼續測試這個操作。
測試結果:
1,正常切換,資料完整。
2,正常切換,但是主從資料相差一條。
3,正常切換,資料完整。
4,正常切換,資料完整。