MySQL加DRBD只能算是实时备份


在MySQL中使用DRBD最多只能算是实时备份,如果primary发生了故障,虽然slave上有备份的数据,但slave是无法代替primary来提供服务的。原因有以下几点:

1、slave要升级为primary
2、slave升级为primary后需要被mount
3、slave和primary的IP地址不同
4、如何启动mysql,需要挂载drbd分区后才能启动mysql,顺序不能颠倒
5、尽可能缩短以上4个步骤的时间,保证应用的连续性

以上这些步骤减少不了,最多是用一些软件帮我们自动完成,如HeartBeat

将server1上的heartbeat服务停止,或者直接拔掉server1的网线后:
server1上的192.168.10.30的IP被释放,mysql服务会被停止,drbd分区会被unmount掉,并自动变为slave。
server2上的drbd分区会自动变为primary,并mount到指定目录,然后启动mysql服务,并将192.168.10.30的IP地址分配到本机的eth0:0上。
在Server1的heartbeat重新启动,或者接上网线后,Server1会成为Slave,Server2继续承担primary的角色。如果非要Server1成为primary可以在server1上用/usr/share/heartbeat/目录下的命令强制成为primary。


那为什么说DRBD中是个实时备份呢,大家知道MySQL启动要多长时间,最主要的它需要预热,如果还没预热,大量的请求就到来,那只只是杯具了。
 

你可能感兴趣的:(mysql,drbd)