几周前,我设置了一个 2 节点 CRM 系统,其中一个管理资源是通过 DRBD 管理的 MySQL。今天出于维护原因,我重新启动了两个节点,但现在它们无法再相互连接。
DRBD 不同步了,我跟着本指南使其重新连接但它只能在一个节点上成功运行。
但是发生了一件奇怪的事情:如果我crm node standby
在两个节点上都尝试:
crm node online node0
之前crm node online node1
,所有 CRM 资源都成功启动,但 DRBD 分区仍然以 StandAlone 状态运行。crm node online node1
之前crm node online node0
,DRBD资源启动失败,从而导致mysql无法启动。- 如果我备用两个资源并调用它,
crm node online node0
那么它会超时并打印此错误:运行
crm node online node0
超时后产生此输出Error setting standby=off (section=nodes, set=<null>): Remote node did not respond Error performing operation: Remote node did not respond
我这里做错了什么吗?另一种方法是只进行 MySQL 复制,但我不确定在主数据库不可用时如何将从属数据库提升为主数据库。
答案1
这看起来很像一个网络错误,两个 drbd 节点无法相互连接,而且它们不知道谁是主节点,因此为了防止损坏,它们会退回到StandAlone
。
最重要的是首先解决这个网络问题,如果不能做到这一点,只需提升两个 drbd 系统中的一个ForcePrimary
并关闭辅助节点,直到网络问题得到解决。
如果您使用 drbd 只是为了复制 MySQL,那么使用 MySQL 复制引擎是没有问题的,这只是您拥有的数据库大小的问题,两种方法都有优点和缺点。