首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server总是在AG上--自动故障转移是否需要被动辅助?

问SQL Server总是在AG上--自动故障转移是否需要被动辅助?
EN

Database Administration用户
提问于 2021-03-29 16:56:11
回答 1查看 412关注 0票数 2

我的理解是,要在总是在AG环境中发生自动故障转移,只需将副本配置为“自动故障转移”、“同步提交”,并且环境必须具有适当的仲裁(即有表决权成员的奇数)。

然而,根据PeterA.Carter的教科书“SQLServer2019总是关于”,自动故障转移要起作用,辅助设备不能是主动的,必须是被动的。被动表示可读的辅助设置设置为“否”,因此无法直接连接或读取访问,显然也不能对它们进行备份。

以下是教科书中的确切陈述:

“虽然我们可以通过GUI更改可读的备用文件的值,同时也可以为自动故障转移配置副本,但这只是向导的一个怪癖。事实上,由于在配置为自动故障转移时不支持活动的备用程序,所以无法访问该副本。”

来源:Pro SQL Server 2019管理:现代DBA指南

这是“怪癖”的截图

注意:根据文本框,如果您希望自动故障转移工作,只读辅助应该设置为“否”。回想起来,我不记得在这个设置中发生过一次成功的自动故障转移,我相信当问题发生时,AG处于解决状态。注意,我们有第三台服务器以获得适当的仲裁。

我已经搜索了微软的文档,以确认作者的声明是否正确,但还没有找到任何明确说明辅助副本必须是被动的,才能自动故障转移才能工作的东西。这篇微软文章(故障转移和故障转移模式(总是在可用性组上))说明了自动故障转移所需的条件,但没有提到需要被动的辅助副本。

那么,作者是正确的,而Microsoft没有做广告吗?或者,当辅助副本处于活动状态/可读性时,作者是否不正确,自动故障转移是否有效?我的目标是拥有一个高度可用的具有自动故障转移的环境,但是为了实现这一点,我们是否需要牺牲卸载读操作呢?添加另一台服务器不是一个选项。

EN

回答 1

Database Administration用户

回答已采纳

发布于 2021-03-29 19:34:39

您可能会失败,转到可读的辅助设备。作者要么错了,要么只是使用了一些令人困惑的术语。读了你的原话,我倾向于前一种解释。但我不知道这句话的全部背景。

这里我有一个AG -所有副本都被配置为在处于次要角色时是可读的,并且NODE2被设置为自动故障转移:

下面是AG仪表板上的当前状态:

我将继续直接连接到NODE2 (同步辅助),并开始运行一些查询:

代码语言:javascript
复制
SELECT COUNT_BIG(*)
FROM dbo.A;

WAITFOR DELAY '00:00:01';

GO 100

然后做一些事情,使自动故障转移到NODE2。在本例中,我将在当前主服务器(NODE1)上终止Server服务。

现在,我将检查AG仪表板,可以看到NODE2自动成为新的主要功能。

注意,在故障转移期间,在NODE2上运行查询的SSMS窗口收到了以下消息:

Msg 596、级别21、状态1、行0 无法继续执行,因为会话位于state. Msg 0、级别20、状态0、0当前命令上发生严重错误。如果有任何结果,则应予以放弃。

这是正常的(客户端断开连接,而数据库作为主要功能的一部分进行恢复)。我重新尝试了查询,它继续运行。如果我是通过只读意图连接到听者,我就不用那么做了。

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/288905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档