我加入了一家电子商务公司,他们使用 SQL Server 2012 AlwaysOn for HADR,这是我第一次遇到支持这项技术的情况。
两个节点上的 Sql Server 日志每天都会收到垃圾邮件,错误消息如下所示。
这些错误是什么意思?他们是良性的吗?
我让基础设施人员查看系统和网络日志 - 他们在与记录以下消息的时间相关的时间看不到任何奇怪的东西。AlwaysOn 仪表板针对连接超时消息记录了错误 35206,并且 BOL 解释没有说明我是否应该解决这些超时问题。
消息
先前建立的到可用性副本“SQLWEB02”的连接超时,ID [A794F13A-6FDA-4E7C-B418-A70B320D1AB3]。存在网络或防火墙问题,或者可用性副本已转换为解决角色。消息
AlwaysOn Availability Groups 与主数据库的连接已终止,用于副本 ID 为 {a794f13a-6fda-4e7c-b418-a70b320d1ab3} 的可用性副本上的辅助数据库“DB1”。这只是一条信息性消息。无需用户操作。消息
BACKUP 未能完成命令 BACKUP LOG DB1。检查备份应用程序日志以获取详细消息。消息
A 连接从可用性副本“SQLWEB01”(ID [CC17411E-D3E1-4B32-95D8-8D69BB94E7E0])到“SQLWEB02”(ID [A794F13A-6FDA-4E7C-B418-A7B3)的连接已成功建立。这只是一条信息性消息。无需用户操作。消息
AlwaysOn Availability Groups 与主数据库的连接为具有副本 ID 的可用性副本上的辅助数据库“DB1”建立:{a794f13a-6fda-4e7c-b418-a70b320d1ab3}。这只是一条信息性消息。无需用户操作。消息
错误:35285,严重性:16,状态:1。消息
已为 ID 为 11 的数据库识别出恢复 LSN (187402:6392:1)。这只是一条信息性消息。无需用户操作。*
谢谢
假设两个 SQL Server 实例(S1 和 S2)处于同步镜像或同步可用性组中。现在发生以下情况:
现在 S2 更进一步了!它有一个 S1 没有的写操作。两个复制品已经分道扬镳。
在这种情况下会发生什么?当更多写入到达 S1 并将 S1 带入与 S2 不兼容的历史时会发生什么?写历史看起来像一个叉子。
我有一个处于FULL恢复模式的主数据库,它是Always On组的一部分。有没有办法在FULL恢复模式下最小化记录插入操作?
我有一个每天执行的进程,并在表中插入几百万条记录。随着操作的继续,事务日志文件的大小急剧增加(从 1 GB 到 40 GB)。
正如我所读到的,我可以使用一些未完INSERT全记录操作的变体,但我担心切换恢复模型的效果?
t-sql sql-server-2012 transaction-log availability-groups bulk-insert
我有一个 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) 我正在配置 Ola Hallengren 脚本以在 5 月可用性组集群中的所有服务器上进行索引维护,该集群具有多个 AG 和不在 AG 中的数据库。
如果我选择“ALL_DATABASES”选项,脚本是否足够智能以排除只读辅助副本?
我的 SQL Server 数据库托管在具有全闪存存储阵列、40G 网络等的高度规范的融合平台上。
但是,我们仍然无法获得超过 50MB/s 的重做速率 - 我需要它在 GB/秒范围内。
支持平台可以处理这个问题 - SQL Server 2012 中阻止它最大化潜在吞吐量的瓶颈是什么,我该如何克服它?即使使用单线程进程 50MB/s 也很差 - 考虑到我们处理的数据量,完全没用。
更新:当我在服务器上时,我可以在驱动器之间复制文件并获得 > 1000MB/s 的速度。重新启动后,我看到重做速率高达 300MB/s,所以我知道这在我的环境中是可能的,但是即使恢复队列位于 400G,它也会迅速降低到 50MB/s 的标准。这需要 8 小时才能耗尽 - 导致非常不满意的客户......
在BOL 上,我阅读了以下关于MultiSubnetFailover=True 的内容:
即使可用性组仅跨越单个子网,MultiSubnetFailover连接选项也应设置为True。这允许您预先配置新客户端以支持未来跨子网,而无需更改未来客户端连接字符串,并且还优化了单个子网故障转移的故障转移性能。
据我了解MultiSubnetFailover,使用此选项设置客户端驱动程序为与侦听器关联的每个 IP 地址设置一个套接字。它们都被并行检查以加快查找在线 IP 的过程,第一个响应将用于连接。在这里,我看到了性能提升。
但是单个子网的性能提升在哪里?只有与侦听器关联的 IP。
理想情况下,我正在寻找返回两列的 T-SQL:节点名称,以及该节点添加到可用性组的日期/时间,对于给定可用性组中的所有节点。
我目前遇到一些可用性组的问题,其中节点 1 和节点 2 彼此之间的连接松散“先前建立的与可用性副本的连接发生连接超时”。
故障转移群集管理器中的错误显示“文件共享见证资源‘文件共享见证’未能仲裁文件共享”文件共享所在的服务器尚未重新启动或出现任何问题,并且所有权限都在工作。
我唯一能看到的是文件共享服务器与集群中的其他 2 个 SQL Server 节点位于不同的子网上。
有人可以确认在 AlwaysOn 环境中将文件共享服务器放在不同的子网上是一个大问题吗?所有防火墙规则都已就绪,因为它可以与其他节点通信,但在几个小时之外(通常)它会失去连接。
另一个奇怪的事情是包括文件共享在内的仲裁中有 3 票,因此即使文件共享失去与故障转移集群的连接,节点 1 和节点 2 也不应该失去彼此之间的连接,因为有足够的投票支持仲裁 (2)
sql-server ×9
bulk-insert ×1
clustering ×1
connectivity ×1
deadlock ×1
index-tuning ×1
mirroring ×1
t-sql ×1