有一个客户用的双机热备环境,kkmail这个数据库文件夹放在存储里面,然后两台服务器都做软链接过去。

昨天帮客户升级,由于升级的时候会删除kkmail目录、备份还原数据库,造成软链接被删除了。发现后,就把软链接重新设置了下,以为这样升级就完全成功了。

但是在做双机热备切换测试,发现切换到备用服务器后,用不了。排查发现是有些表用了innodb引擎,单把数据库文件夹放到存储里面没用。
还要把ibdata1、ib_logfile0、ib_logfile1这几个文件也放进去。也就是说他们是一套的。




题外话1:开始犯了低级错误,我们把整个mysql所有数据库的目录都放在存储里面,造成数据库损坏启动不了,还好有备份。后来想了下,肯定不能放,因为里面有mysql等自带数据库。


题外话2:如果mysql总是启动不起来,总是提示var目录下lock文件存在(删除后也没用)、和生成不了pid和sock文件的时候。
(1)可以考虑到数据库损坏了,这时候一定要想到是不是数据库损坏了(我把kkmail数据库文件删除,然后删除ibdata1、ib_logfile0、ib_logfile1后,再重启mysql后好了)
(2)可以考虑权限问题,mysql对权限很敏感。