使用drbd和心跳进行Mysql复制

我正在为现有的Ubuntu服务器设置设置备份服务器。

我正在运行DRBD(协议C)以及configuration的心跳线,以便在发生错误时启动备份服务器上的MySQL5服务器。

我想在复制后使用drbd和心跳来启动mysql服务器。

我更改了my.cnf文件中的datadir和apparmor.d / usr.bin.mysqld。

当drbd设备未安装时,Mysql启动。

我的日志显示如下:

 Oct 26 12:55:28 twyford-hambc2 mysqld[27627]: 101026 12:55:28 InnoDB: Operating system error number 13 in a file operation. Oct 26 12:55:28 twyford-hambc2 mysqld[27627]: InnoDB: The error means mysqld does not have the access rights to Oct 26 12:55:28 twyford-hambc2 mysqld[27627]: InnoDB: the directory. Oct 26 12:55:28 twyford-hambc2 mysqld[27627]: InnoDB: File name ./ibdata1 Oct 26 12:55:28 twyford-hambc2 mysqld[27627]: InnoDB: File operation call: 'open'. Oct 26 12:55:28 twyford-hambc2 mysqld[27627]: InnoDB: Cannot continue operation. Oct 26 12:55:28 twyford-hambc2 mysqld_safe[27634]: ended Oct 26 12:55:42 twyford-hambc2 kernel: [ 2876.791880] type=1503 audit(1288094142.991:53: operation="inode_permission" requested_mask="::r" denied_mask="::r" fsuid=0 $ Oct 26 12:55:42 twyford-hambc2 /etc/init.d/mysql[27799]: 0 processes alive and '/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in Oct 26 12:55:42 twyford-hambc2 /etc/init.d/mysql[27799]: ^G/usr/bin/mysqladmin: connect to server at 'localhost' failed Oct 26 12:55:42 twyford-hambc2 /etc/init.d/mysql[27799]: error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' Oct 26 12:55:42 twyford-hambc2 /etc/init.d/mysql[27799]: Check that mysqld is running and that the socket: '/var/run/mysqld/mysqld.sock' exists! Oct 26 12:55:42 twyford-hambc2 /etc/init.d/mysql[27799]: Oct 26 12:56:46 twyford-hambc2 lrmd: [17345]: WARN: mysql:start process (PID 2732 timed out (try 1). Killing with signal SIGTERM (15). Oct 26 12:56:46 twyford-hambc2 lrmd: [17345]: WARN: operation start[139] on ocf::mysql::mysql for client 17348, its parameters: socket=[/var/run/mysqld/mysqld.sock] bi$ 

任何帮助赞赏。

这个问题写得不好,弄不清楚实际症状是什么。

当使用心跳停止/启动进程时,重要的是也要通过并更改默认服务。 MySQL不应该在服务器启动时启动。 DRBD不应该启动。 这些操作应该由heartbeat控制,而不是正常的/etc/rc?.d init脚本。

要进一步排除故障,请在心跳线中添加一些上/下脚本,以logging在主状态和备份状态之间切换时系统正在执行的操作。

我会build议使用MySQL复制,而不是drbd。

有了这个设置,你有2免费的MySQL服务器和心跳只需要切换服务ips和可能的其他东西…

已知使用drbd作为数据库后端会产生损坏的数据库。

我想,你要做的第一件事就是禁用selinux。
禁用selinux,重新启动并再次检查日志。

稍后编辑:Mysql服务在mysql用户帐户下启动。 检查由mysql用户拥有的mysql文件的文件权限。