使用DRBD+Heartbeat+Replication實現MYSQL高可用性

作者“隨記千秋”近日安裝DRBD+heartbeat+replication,怕以後忘記,記錄一下。
1,操作系統:centOs 5.6 64-bit ,mysql-5.5.11
2,機器4臺,2臺作為DRBD,2臺作為復制從服務器.
3,名稱:MYSQLM1 IP:172.17.94.209 名稱:MYSQLM2 IP:172.17.94.210
      上面2臺電腦分別掛在1個10G的硬盤,作為DRBD同步數據盤符。盤符名稱:
      /dev/sdb1,掛載目錄:/data,同步的磁盤名稱/dev/brbd0.
       名稱:MYSQLS1 IP:172.17.94.211  名稱:MYSQLS2   IP:172.17.94.212
       VIP:172.17.94.208
      
4,編輯主機名稱:
#vi /etc/hosts
添加下面2行;
172.17.94.209  MYSQLM1
172.17.94.210 MYSQLM2
這2臺電腦都需要添加。
5,安裝DRBD和Heartbeat
yum -y install  drbd83 kmod-drbd83
yum -y install heartbeat
yum -y install heartbeat heartbeat-ldirectord heart-pils heartbeat-stonith
6,配置DRBD
#
# please have a a look at the example configuration file in
# /usr/share/doc/drbd83/drbd.conf
#
global{usage-count yes;}
common{syncer{rate 100M;}}
resource r0{
protocol C;
startup{
}
disk{
on-io-error detach;
#size 1G;
}
net{
}
on MYSQLM1{
device /dev/drbd0;
disk /dev/sdb1;
address 172.17.94.209:7898;
meta-disk internal;
}
on MYSQLM2{
device /dev/drbd0;
disk   /dev/sdb1;
address 172.17.94.210:7898;
meta-disk internal;
}
}
從節點MYSQLM2的配置完全一樣。
6,在2臺電腦分別執行下面命令
#/etc/init.d/drbd start  #啟動drbd
#drbdadm create-md r0
#mkfs.ext3 /dev/brbd0
這樣,2臺電腦分別都創建好瞭/dev/drbd0
7,在作為主服務器的MYSQLM1上執行下面的命令
#drbdadm primary all  #讓MYSQLM1為primary
#mount /dev/drbd0 /data #掛載/dev/drbd0 到/data目錄
使用以下命令查看drbd的狀態
#service drbd status
#cat /proc/drbd
這樣drbd配置完成
然後再安裝mysql.其他的地方可以按照以往默認安裝,但是需要將數據庫安裝在/data目錄。2臺都是需要安裝在/data目錄
註意點一:將basedir和datadir寫入到my.cnf
註意點二:註意賦予/data和/dev/drbd0的權限為mysql:mysql用戶組。
8,配置heartbeat
8.1:配置/etc/ha.d/authkeys
vi /etc/ha.d/authkeys
auth 3
#1 crc
#2 sha1 HI!
3 md5 Hello!
保存退出。
#chmod 600 /etc/ha.d/authkeys
2臺電腦輸入操作一樣
8.2:配置/etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile      /var/log/ha-log
logfacility   /local0
keepalive 2
deadtime 30
warntime 10
udpport 694
bcast      eth0
ucast  eth0 172.17.94.210 #MYSQLM2此處為ucast eth0 172.17.94.209, 不同之處.
node  MYSQLM1
node  MYSQLM2
ping 172.17.64.1 #網關
ping group1 172.17.94.209 172.17.94.210
hopfudge 1 #活躍數,2臺配置一樣
 
保存退出。MYSQLM2的配置大致一樣,不一樣的地方:"#"紅色註釋處
 
8.3配置/etc/ha.d/haresources
vi  /etc/ha.d/haresources
MYSQLM1 IPaddr::172.17.94.208/24/eth0:0 drbddisk::r0 Filesystem::/dev/drbd0::/data::ext3 mysqld
保存退出,2臺電腦配置一樣.
8.4,啟動heartbeat
#service heartbeat start
#chkconfig –add heartbeat
#chkconfig heartbeat on
9,對於腦裂的處理
9.1:在從節點做如下操作:
#dbdadm secondary r0
#drbdadm — –discard-my-data connect r0
在主節點如下:
#drbdadm connect r0
或者采用9.2的方法
9.2在2端分別做如下操作:
#drbdadm — –discard-my-data connect all
#drbdadm connect all
整個架構簡圖如下:

 <img alt="鏋舵瀯綆

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。