CentOS5.5下Heartbeat + drbd + mysql配置问题,请高手帮忙解答

时间:2020-12-09 03:06:12
实现mysql数据库高可用集群,heartbeat2.1.3 + drbd8.1.13 + mysql5.0.28。

本次架构配置,均使用编译安装,各单元编译安装均已完成,当想使用heartbeat来代理mysql启动的时候出现问题。

问题描述,开启了heartbeat的debug功能,错误信息如下

ResourceManager[5346]:    2012/10/11_09:21:56 debug: /etc/ha.d/resource.d/Filesystem /dev/drbd0 /database ext3 start done. RC=0
ResourceManager[5346]:    2012/10/11_09:21:57 info: Running /etc/ha.d/resource.d/mysqld  start
ResourceManager[5346]:    2012/10/11_09:21:57 debug: Starting /etc/ha.d/resource.d/mysqld  start
Starting MySQL...........................heartbeat[5175]: 2012/10/11_09:22:30 info: Local Resource acquisition completed. (none)
heartbeat[5175]: 2012/10/11_09:22:30 info: local resource transition completed.
.The server quit without updating PID file (/database/mysql/Mysql-M-221.pid).[失败]

ResourceManager[5346]:    2012/10/11_09:22:33 debug: /etc/ha.d/resource.d/mysqld  start done. RC=1
ResourceManager[5346]:    2012/10/11_09:22:33 ERROR: Return code 1 from /etc/ha.d/resource.d/mysqld
ResourceManager[5346]:    2012/10/11_09:22:33 CRIT: Giving up resources due to failure of mysqld
ResourceManager[5346]:    2012/10/11_09:22:33 info: Releasing resource group: mysql-m-221 192.168.1.210 drbddisk::r0 Filesystem::/dev/drbd0::/database::ext3 mysqld
ResourceManager[5346]:    2012/10/11_09:22:33 info: Running /etc/ha.d/resource.d/mysqld  stop
ResourceManager[5346]:    2012/10/11_09:22:33 debug: Starting /etc/ha.d/resource.d/mysqld  stop
MySQL server PID file could not be found![失败]

ResourceManager[5346]:    2012/10/11_09:22:33 debug: /etc/ha.d/resource.d/mysqld  stop done. RC=0
ResourceManager[5346]:    2012/10/11_09:22:33 info: Running /etc/ha.d/resource.d/Filesystem /dev/drbd0 /database ext3 stop
ResourceManager[5346]:    2012/10/11_09:22:33 debug: Starting /etc/ha.d/resource.d/Filesystem /dev/drbd0 /database ext3 stop


heartbeat的配置文件如下:

文件:haresources
Mysql-M-221 192.168.1.210 drbddisk::r0 Filesystem::/dev/drbd0::/database::ext3 mysqld

文件:ha.cf
debugfile /var/log/ha-debug
logfacility local0
logfile /var/log/ha-log
keepalive 500ms
deadtime 10
warntime 5
initdead 30
ucast eth0 192.168.1.222
auto_failback off
node Mysql-M-221
node Mysql-M-222
ping 192.168.1.222
respawn hacluster /usr/lib/heartbeat/ipfail
apiauth ipfail gid=haclient uid=hacluster
deadping 5
#respawn hacluster /usr/lib/heartbeat/dopd
#apiauth dopd gid=haclient uid=hacluster

说明:mysql单独启动没有问题(使用命令service mysqld start),系统中也没有占用3306端口的进程。

希望遇到过此问题的朋友帮忙解惑,在此先行谢过! 

3 个解决方案

#1


原因: 在heartbeat代理的时候,由于先代理了drbd,drbd被mount了之后,/database目录下为空,之前创建的mysql数据库data文件不见了,这个是配置mysql时没有对drbd进行mount出现的问题。
解决方法: 首先检验是否为这个问题
# service drbd start
# drbdadm primary r0     #主节点
# mount /dev/drbd0 /database
这时观察一下/database下是否有mysql数据库文件,如果没有则创建,然后再启动heartbeat 就能解决问题

#2


引用 1 楼  的回复:
原因: 在heartbeat代理的时候,由于先代理了drbd,drbd被mount了之后,/database目录下为空,之前创建的mysql数据库data文件不见了,这个是配置mysql时没有对drbd进行mount出现的问题。
解决方法: 首先检验是否为这个问题
# service drbd start
# drbdadm primary r0 #主节点
# mount /dev/drb……

支持

#3


引用 1 楼 wiseboyloves 的回复:
原因: 在heartbeat代理的时候,由于先代理了drbd,drbd被mount了之后,/database目录下为空,之前创建的mysql数据库data文件不见了,这个是配置mysql时没有对drbd进行mount出现的问题。
解决方法: 首先检验是否为这个问题
# service drbd start
# drbdadm primary r0     #主节点
# mount /dev/drbd0 /database
这时观察一下/database下是否有mysql数据库文件,如果没有则创建,然后再启动heartbeat 就能解决问题

你是先执行# mount /dev/drbd0 /database,然后再创建数据库文件是吧??

#1


原因: 在heartbeat代理的时候,由于先代理了drbd,drbd被mount了之后,/database目录下为空,之前创建的mysql数据库data文件不见了,这个是配置mysql时没有对drbd进行mount出现的问题。
解决方法: 首先检验是否为这个问题
# service drbd start
# drbdadm primary r0     #主节点
# mount /dev/drbd0 /database
这时观察一下/database下是否有mysql数据库文件,如果没有则创建,然后再启动heartbeat 就能解决问题

#2


引用 1 楼  的回复:
原因: 在heartbeat代理的时候,由于先代理了drbd,drbd被mount了之后,/database目录下为空,之前创建的mysql数据库data文件不见了,这个是配置mysql时没有对drbd进行mount出现的问题。
解决方法: 首先检验是否为这个问题
# service drbd start
# drbdadm primary r0 #主节点
# mount /dev/drb……

支持

#3


引用 1 楼 wiseboyloves 的回复:
原因: 在heartbeat代理的时候,由于先代理了drbd,drbd被mount了之后,/database目录下为空,之前创建的mysql数据库data文件不见了,这个是配置mysql时没有对drbd进行mount出现的问题。
解决方法: 首先检验是否为这个问题
# service drbd start
# drbdadm primary r0     #主节点
# mount /dev/drbd0 /database
这时观察一下/database下是否有mysql数据库文件,如果没有则创建,然后再启动heartbeat 就能解决问题

你是先执行# mount /dev/drbd0 /database,然后再创建数据库文件是吧??