所以我设置了我们的 SQL 服务器来通知我们严重程度为 17 或更高的警报(如各种 SQL Server 文章所建议的那样)。我对具有三个多子网节点的 SQL Server Always On Availability Cluster 的每个节点都执行了此操作。
上周末,我们从一个辅助节点收到了近一百条关于一条“仅供参考”消息的通知。其他节点没有这样做,警报似乎没有引起任何实际问题。警报是:
DESCRIPTION: Skipping the default startup of database '<database>' because the database belongs to an availability group (Group ID: <...>).
The database will be started by the availability group.
This is an informational message only. No user action is required.
Run Code Online (Sandbox Code Playgroud)
可能的罪魁祸首:我们的网络存在一些问题,节点可能正在断开连接并重新连接或超时。
我想我的问题是,是否应该采取任何措施来解决此警报?为什么它只影响我的一个节点?如果它确实是信息性的并且不需要采取任何措施,我可以配置我的警报以忽略这些警报吗?
根据评论,我查看了日志,似乎服务器一直在运行,但在那个时候它与始终在线的服务器断开了连接:
AlwaysOn Availability Groups: Local Windows Server Failover Cluster node is no longer online.
The Availability replica is going offline because …Run Code Online (Sandbox Code Playgroud) 我们有一个带有 2 个节点的 SQL 2012 AlwaysOn 可用性组。我们在 2 个副本之间进行同步提交。它们都设置为在充当辅助节点时接受只读连接,并在充当主节点时接受所有连接。
我们通过侦听器和 ApplicationIntent=ReadOnly 在连接字符串中为只读流量设置了 ReadOnly 路由。一切正常。
几天前,我们重新启动了可读辅助节点,在它关闭期间,只读流量无法连接到可读辅助节点(如预期),但并没有像我想象的那样重定向到主节点。而是收到以下错误
无法访问 SalesDb 数据库,因为没有启用只读访问的联机辅助副本。
我的问题是,如果由于某种原因没有可读的辅助副本可用,只读流量是否不会被侦听器路由到 Allow All Connections Primary 副本,而不是收到连接错误?
任何答案都感激地收到。
阿康利尔
有人可以指出我的 MS 文章或博客文章,其中详细解释了 AlwaysOn 可用性组辅助副本如何在辅助服务器长时间停机后赶上主要副本吗?
我使用 AAG 进行了以下测试(异步、手动故障转移、只读配置)。A)在连续插入主要实例期间杀死次要实例并在几分钟后启动次要实例。AAG 仪表板在二次重启后几乎立即变成绿色,并开始赶上主,直到两个实例的行数变得相同。没有完成事务日志备份。B) 与 A) 相同,但在测试期间从主服务器完成的事务日志很少。
问题是:
1)用于保存传输日志块(发送到辅助副本)的日志缓存/消息传递框架等的大小是多少
2) 是否可以配置/增加上述结构(日志缓存/发送队列等 - 无论用作 AAG 复制的传输)大小(类似于增加日志传输中的 tran 日志备份保留期,例如)?
3)当我在测试 B 中备份(截断)tran 日志时,次要副本自动与主要同步,用于查找主要和次要之间的行差异(显然不是 tran 日志,因为它被截断)然后同步?
4) 这个自动追赶过程是如何工作的,它的局限性是什么?
我一直在尝试找出相同的 CPU 限制数据库镜像是否适用于可用性组。我的猜测是存在相同的限制,因为可用性组是基于与镜像相同的技术构建的,因此以下内容仍然适用。
这样对吗?谢谢!
使用 AlwaysOn 可用性组时,每个 SQL 实例是否需要使用相同的服务凭据?
我们正在设置新的 SQL2014 部署,并将使用 AlwaysOn。如果我有 2 个 SQL 服务器(称为 ServerA 和 ServerB),那么我可以使用 2 个名为 Domain\ServerA_SQLServerService 和 Domain\ServerB_SQLServerService 的活动目录帐户(每个服务器上一个)吗?
或者他们是否需要使用相同的帐户,所以我应该创建 Domain\SQLServerService
这些帐户将在同一个域中,并且可以访问两台服务器。以前我们已经锁定了 SQL Server 服务帐户,这显然导致了问题。我想要做的是拥有 2 个帐户,以便减少两个帐户被锁定的可能性。
是否有要求和/或 Microsoft 的最佳实践是什么?
sql-server availability-groups sql-server-2014 service-accounts
我有一个使用 SQL 2014 和 Windows Server 2012 R2 的始终可用组设置。组中有 3 个节点。SQL 服务在每个节点上作为托管服务帐户运行(每个服务器 1 个 MSA)。
我正在尝试在每个节点上创建一个链接服务器以指向当前的活动节点。因此,假设这三个服务器称为 Server1、Server2 和 Server3,而 AlwaysOn 可用性组称为 SQLAAG_PROD。我想创建到 SQLAAG_PROD 的链接服务器。
我能够为每个单独的节点创建一个链接服务器(例如 Server1 与 server2 和 Server3 的链接),并且使用安全选项可以正常工作Be made using the login's current security context。
但是,当我尝试为组侦听器创建链接服务器时,我得到了 Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON
如果我将安全模式更改为对当前活动服务器使用 SA 密码,则一切正常,但出于明显的安全原因,这不是可接受的解决方案。
我已经阅读了很多关于需要设置 SPN 并允许帐户进行委派的内容。我Trust this computer for delegation to any service (Kerberos only)在 Active Directory 中打开了 SQLAAG_PROD 对象,但仍然有同样的问题。
有没有人以前见过这个,和/或是否有关于如何设置的指南?
===更新===
不确定它是否有帮助,但是当我跑步时
select auth_scheme from sys.dm_exec_connections where session_id=@@SPID
Run Code Online (Sandbox Code Playgroud)
当直接连接到节点时,我得到 …
authentication sql-server linked-server availability-groups sql-server-2014
我有一个 3 节点集群,由于死锁,2 个辅助节点最初进入 SUSPECT 模式。我试图恢复两者,但只有一个赶上了,而另一个则不断陷入僵局。我必须承认,解决死锁问题并不是我的主要强项,而且由于 xml 提供的信息很少,我无法弄清楚发生了什么。这个数据库有 4 个全文索引,死锁图中报告的 pageID 有 m_type 10 = IAM page ? 有什么办法可以恢复REDO,还是需要删除副本并重新设置?如果日志序列相同,我无法理解为什么另一个节点会赶上?
非常感谢
<deadlock>
<victim-list>
<victimProcess id="process23bb0c8" />
</victim-list>
<process-list>
<process id="process23bb0c8" taskpriority="-20" logused="0" waitresource="PAGE: 21:1:47934 "
XDES="0x407dc8ff0" lockMode="X" schedulerid="2" kpid="4604" status="background" spid="66" sbid="0" ecid="0" priority="0" trancount="0">
<executionStack />
<inputbuf />
</process>
</process-list>
<resource-list>
<pagelock fileid="1" pageid="47934" dbid="21" subresource="FULL"
objectname="DB.sys.fulltext_index_1_69575286" id="lock417f18100" mode="IX" associatedObjectId="72057594044219392">
<owner-list>
<owner id="process23bb0c8" mode="IX" />
<owner id="process23bb0c8" mode="IX" />
<owner id="process23bb0c8" mode="IX" />
<owner id="process23bb0c8" mode="IX" />
<owner id="process23bb0c8" mode="X" …Run Code Online (Sandbox Code Playgroud) 我们有一个两节点的 SQL Server 2016 AOAG、TestA、TestB 和侦听器 TestL。我们想开始在应用服务器/客户端和数据库服务器之间使用加密连接。
我在两个关于实现连接加密的 MS 文档中找到了下面的部分。只是想知道这是否适用于 AOAG?我怀疑确实如此,因为 AOAG 确实需要使用故障转移集群,但需要确认。
集群上的加密
如果要对故障转移群集使用加密,则必须在故障转移群集中的所有节点上安装具有故障转移群集实例的完全限定 DNS 名称的服务器证书。例如,如果您有一个双节点集群,节点名为 test1.your company.com 和 test2。您的 company.com 和名为 fcisql 的 SQL Server 故障转移群集实例,您必须为 fcisql.your company.com 获取证书并在两个节点上安装该证书。若要配置故障转移群集进行加密,您可以在 SQL Server 网络配置的属性框的协议中选中 ForceEncryption 复选框
sql-server encryption availability-groups connections sql-server-2016
我正在配置 Ola Hallengren 脚本以在 5 月可用性组集群中的所有服务器上进行索引维护,该集群具有多个 AG 和不在 AG 中的数据库。
如果我选择“ALL_DATABASES”选项,脚本是否足够智能以排除只读辅助副本?
DBA 角色落入了我的怀抱,现在我被要求调查 Always On Availability Groups。
那么,在可用性组环境中,是否所有服务器都需要具有相同的规格?假设我的服务器 A 有 20 个核心的企业环境,服务器 B 和 C 是否必须每个都有 20 个核心?
灾难恢复如何工作?目前我有一个到异地的镜像,连接正常,我是否必须增加连接带宽?DR 站点是可用性组的一部分吗?我的印象是(可能 100% 错误),如果数据库处于恢复模式,无法访问,则您不必为 SQL Server 许可证付费。现在使用 Always On 听起来好像即使您没有访问服务器也被迫获得许可证。
使用可用性组,我可以为一个组创建一个主服务器并为另一个 AG 设置不同的主服务器,这可能吗?
sql-server ×9
clustering ×1
connections ×1
deadlock ×1
encryption ×1
index-tuning ×1
mirroring ×1