使用DNSPod宕机监控和Rsync增量备份实现网站容灾

上一篇文章《利用RSYNC进行VPS增量备份》介绍了VPS增量备份的方式,其实有的时候光备份是不行的,最好能够实现容灾处理,当主服务器宕机时,备份服务器能够立即对外提供服务,使用Dnspod的宕机监控配合Rsync就可以很好的实现网站容灾的处理。

其实本来这个容灾备份是一件非常简单的事情,但是由于MySQL的存在,使得简单利用Rsync备份并不够,还需要对MySQL数据库进行备份,经过仔细的学习,终于找到一个比较靠谱的办法,那就是把mysqldump出来后的sql文件进行Rsync备份,然后在备份服务器上用mysql把sql文件导入到数据库中。

首先需要对备份服务器进行基本的网站配置,并保持和主服务器一致,并根据上篇文章的Rsync在主服务器和备份服务器上都进行配置好,然后在备份服务器上新建一个任务,代码如下:

1
/wp-content/local/mysql/bin/mysql -uUSER -pPASS DBName > /home/rsync/db.sql

利用这个命令设置在Rsync同步之后几分钟进行,提供足够的时间让sql文件可以备份到备份服务器上。

接下来的事情就非常简单了,在DNSPod上配置宕机监控,当检测到主服务器不可用时,自动把DNS改成备份服务器的IP就可以了。

不过这个方案还是有一个非常大的缺点,那就是备份服务器上的数据是完全不会保留的,如果在主服务器宕机期间,备份服务器上的任何数据改动在主服务器恢复后都会被覆盖处理。