我正在测试我们的一个测试系统的弹性。我们在故障转移群集中安排了 2 个数据库(Server 2008 R2 上的 SQL 2008 R2,在 ESXi VM 中运行)。
关闭活动 SQL Server 服务并没有多大作用 - 服务不会重新启动,也不会发生故障转移;我明白这是设计使然 - 系统假定管理员有充分的理由关闭该服务,因此会静静地等待。
但是,我们可以通过多种方式模拟故障 - 我发现最简单的方法是在任务管理器中终止 SQL 服务。我们的集群设置为允许 6 小时内发生一次故障,因此在第一次故障后,它会尝试重新启动服务 - 成功了。第二次终止服务(6 小时内),集群管理器将决定将数据库故障转移到被动服务器。到目前为止一切顺利...
如果我们在第二台服务器上终止该服务,它会再次重新启动。但是当我们第二次终止该服务时,它没有故障恢复至第一台服务器。
我假设这也是设计使然;这很有道理,因为为什么要故障恢复到几分钟前本身还不够稳定的服务器呢?这听起来很合逻辑,但这是真的吗?如果是这样,是否要遵守相同的超时期限(即 6 小时),并且可以重置吗?
基本上,在我告诉同事故障转移功能正在运行之前,我只是想确认/澄清我的理解和假设。
答案1
您还可以测试其他一些事项:
尝试关闭这些设备(甚至关闭电源以获得更好的模拟效果)。同时拔掉网线并禁用服务器之间的连接。
(尽管不可否认,通常是软件导致了故障转移)
设置重启策略:
打开集群管理器。
在控制台树中,单击“资源”文件夹。
在详细信息窗格中,单击所需的资源。
在文件菜单上,单击属性。
在“高级”选项卡上,进行所需的更改。
似乎您想查看以下设置:资源的超时、故障转移阈值和故障转移周期。超时控制群集服务等待资源关闭的时间。故障转移阈值和周期控制群集服务在特定时间段内尝试故障转移资源的次数。