免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2145 | 回复: 1
打印 上一主题 下一主题

MySQL复制,Master双机热备实现方式:DRBD+HeartBeat [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-19 15:44 |只看该作者 |倒序浏览
本帖最后由 daleiwang 于 2012-06-19 15:45 编辑

1、环境:
CentOS 5.5
主机IP:192.168.123.222     master
备机IP: 192.168.123.2       slave
2、分别设置两台机器的主机名:
192.168.123.222:
shell>vi /etc/hosts
192.168.123.222  master
192.168.123.2:
shell>vi /etc/hosts
192.168.123.2   slave
重启升效
3、为两台设备划分一个同等大小的分区,然后格式化分区(先不要挂载分区,否则会有问题,之后会挂载到
/dev/drbd0下)
shell>fdisk /dev/hdb
shell>mkfs.ext3 /dev/hdb1
4、安装drbd
master>yum install -y drbd83 kmod-drbd83
slave>yum install -y drbd83 kmod-drbd83
5、编写配置文件(可自己编写)
master>vi /etc/drbd.conf
global {
}
common {
syncer { rate 10M; }
}
resource db {
protocol C;
startup { wfc-timeout 0; degr-wfc-timeout 120; }
disk { on-io-error detach; }
syncer { rate 10M; }
on master {
device /dev/drbd0;
disk /dev/hdb1;
address 192.168.123.222:7791;
meta-disk internal;
}
on slave {
device /dev/drbd0;
disk /dev/hdb1;
address 192.168.123.2:7791;
meta-disk internal;
}
}
两台机器配置文件要一样
6、在两台机器上分别创建drbd记录信息的数据块
shell>drbdadm create-md db   or
shell>drbdadm create-md all
如果出现错误可以先执行:
shell>dd if=/dev/zero of=/dev/hdb1 bs=1M count=1;sync
7、在两台设备上启动服务:
shell>/etc/init.d/drbd start
shell>service iptables stop(关闭防火墙)
shell>ps -aux|grep drbd
每个drbd设备会有三个进程:drbd0_worker是drbd0的主要进程,drbd0_asender是primary上drbd0的数据发送进程,drbd0_receiver是secondary上的drbd0的数据接收进程
8、查看两台设备的状态:
shell>cat /proc/drbd
version: 8.3.12 (api:88/proto:86-96)
GIT-hash: e2a8ef4656be026bbae540305fcb998a5991090f build by mockbuild@builder10.
centos.org, 2012-01-28 13:52:33
0: cs:Connected ro:Secondary/Secondary ds:UpToDate/UpToDate C r-----
    ns:112124 nr:41 dw:7909 dr:110785 al:15 bm:7 lo:0 pe:0 ua:0 ap:0 ep:1 wo:d o
os:0
这时两台设备都是Secondary,必须设置一台设备为主节点:
master>drbdsetup /dev/drbd0 primary -o
第一次执行完命令后,以后设置主节点可以使用:
master>drbdadm primary all
再次查看状态:
master>cat /proc/drbd
version: 8.3.12 (api:88/proto:86-96)
GIT-hash: e2a8ef4656be026bbae540305fcb998a5991090f build by mockbuild@builder10.
centos.org, 2012-01-28 13:52:33
0: cs:Connected rorimary/Secondary ds:UpToDate/UpToDate C r-----
    ns:112124 nr:41 dw:7909 dr:110785 al:15 bm:7 lo:0 pe:0 ua:0 ap:0 ep:1 wo:d o
os:0
slave>cat /proc/drbd
version: 8.3.12 (api:88/proto:86-96)
GIT-hash: e2a8ef4656be026bbae540305fcb998a5991090f build by mockbuild@builder10.
centos.org, 2012-01-28 13:52:33
0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
    ns:41 nr:45 dw:86 dr:272 al:2 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:d oos:0
9、对主设备的drbd的设备文件进行格式化:
master>mkfs.ext3 /dev/drbd0
然后把文件系统挂载到目录上
master>mount /dev/drbd0 /web
10、在主设备进行数据写入:
master>cd /web
master>touch a
11、主备角色互换
首先umount挂载点,再降级
master>umount /web
master>logout(如果umount /web出现:/web is busy提示,因为是在当前目录umount,切换到其它目录umount即可)
master>drbdadm secondary all
把primary降级前,一定要先umount设备才行
在备用节点上提升secondary
slave>drbdsetup /dev/drbd0 primary -o  这是第一次使用都必须设置这个,以后就可以使用:
slave>drbdadm primary all
slave>mount /dev/drbd0 /web
slave>cd /web
应该有了刚才创建的文件a
12、安装heartbeat
shell>yum install -y heartbeat heartbeat-ldirectord heartbeat-pils heartbeat-stonith
shell>cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d
shell>cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d
shell>cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d
shell>vi haresources(添加如下内容)
master drbddisk::db Filesystem::/dev/drbd0::/web mysqld IPaddr::192.168.123.123/24/eth0
master 设备的主机名
drbddisk 可以切换drbd主机为primary或secondary,此脚本在/etc/ha.d/resource.d下
db 为/etc/drbd.conf里面的资源名称
IPaddr 为双机热备的VIP
mysqld 为服务名称
shell>vi authkeys(配置认证方式)
auth 3
1 crc
#2 sha1 HI!
3 md5 Hello!
shell>vi ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility     local0
keepalive 1
deadtime 10
warntime 5
initdead 120
udpport 694
ucast eth0 192.168.123.2(对端IP)
auto_failback on
node master
node slave
#ping 192.168.123.251
respawn hacluster /usr/lib/heartbeat/ipfail
respawn hacluster /usr/lib/heartbeat/dopd
apiauth ipfail gid=haclient uid=hacluster
apiauth dopd gid=haclient uid=hacluster
把ha.cf authkeys haresources复制到另一台机器,注意修改ha.cf中的两个ucast后面的IP(对方IP)
shell>scp /etc/ha.d/ha.cf authkeys haresources root@192.168.123.2:/etc/ha.d
shell>/etc/init.d/heartbeat start
shell>chkconfig --level 3 heartbeat on
shell>ln -s /etc/init.d/mysqld /etc/ha.d/resource.d/mysqld


论坛徽章:
0
2 [报告]
发表于 2012-06-19 17:37 |只看该作者
正想找这个,呵呵,,支持一下!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP