问题标签 [availability-group]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
212 浏览

sql-server - 可用性组的 SOS_SCHEDULER_YIELD 峰值

我快要在这件事上失去理智了。

我们有一个 3 服务器可用性组,我们的应用程序从该组中读取所有 3 台服务器。99.9% 的时间运行良好。我们时不时地在 SOS_SCHEDULER_YIELD 中得到一个峰值。当这种情况发生时,我们的很多查询都会超时。通常不会持续超过一分钟。我们有一个任务每 2 分钟捕获一次等待统计信息(下图)。

8a 是可用性组中的主服务器。如您所见,SOS_SCHEDULER_YIELD 从 10:40 的 122,000 飙升至 10:42 的 4,000,000 并在 10:44 回升至 85,000。其他服务器飙升至 2,000,000 左右。

这些服务器都是虚拟的。8a 和 8c 位于同一主机上,而 8b 位于不同的本地数据中心。服务器在它们所在的数据中心使用 SAN,因此 8a 和 8c 使用相同的 SAN。

当时没有作业在运行。服务器管理员在服务器本身上没有发现任何问题。8b CPU 使用率的主机从 10:40 的 43% 飙升至 1045 的 70%,而其他 2 的主机同时从 42% 飙升至 62%。两者均在 10:50 时回落。

我需要有关可能导致此类行为的想法和/或有关如何进行故障排除的想法。 我了解 SOS_SCHEDULER_YIELD 可能是一个指标,而不是问题本身。我只知道,当我开始在这些服务器上超时时,SOS_SCHEDULER_YIELD 会不断飙升。提前感谢您的想法。

等待统计监视器

0 投票
1 回答
9156 浏览

c# - 如何正确设置连接字符串到旧版应用程序的可用性组

假设您有以下场景:

  • .net 框架 2.0 旧版客户端应用程序。
  • SQL Server 2016 Always On 可用性组。

连接字符串应该如何?

我可以考虑两种选择:

  • 将可用性组侦听器名称指定为Data Source.
  • 将主副本指定为Data Source辅助副本,将辅助副本指定为Failover Partner

我应该使用哪一个来获得高可用性和自动故障转移?其他选择?

0 投票
0 回答
71 浏览

sql-server - 将 sys.databases 视图限制为可连接的数据库

如何将结果限制在sys.databases可用数据库中?

我们正在更改为在 sql-server 2017 上运行的可用性组和副本服务器。

select name, state from sys.databases在此之前,我在主数据库上运行了一个select语句,以查看哪些数据库正在服务器上运行(

但是现在在具有可用性组和副本服务器的新系统上,当我打开与单个可用性组的连接时,我会看到更多无法连接的数据库。

select 语句会显示所有数据库,即使它们属于另一个可用性组(它们由同一副本服务器托管)。

问题是,对于 dbo 来说,找出哪些数据库属于可用性组(sys.availabiltiy-Views)是没有问题的,但是普通用户没有查看这些 sys-Views 所需的权限,我不想给他view_server_stats的角色。

0 投票
1 回答
319 浏览

sql-server - 在只读可用性组副本上使用 sp_setapprole 的快照隔离错误

我正在调查 SQL Server Always On 可用性组,在只读副本数据库上设置应用程序角色时遇到了问题。真正让我恼火的是这种行为,我不知道如何解释错误信息。

我所做的就是打电话

第一次尝试效果很好。在第二次和所有以下尝试中,我收到以下错误:

消息 3961,级别 16,状态 1,过程 sp_setapprole,第 44 行 [批处理开始第 25 行] 数据库“AGTest”中的快照隔离事务失败,因为该语句访问的对象自启动以来已被另一个并发事务中的 DDL 语句修改本次交易。这是不允许的,因为元数据没有版本化。如果与快照隔离混合,对元数据的并发更新可能会导致不一致。

当我在主数据库上执行相同的语句时,我可以再次在副本上设置 approle - 一次。

我测试了不同的隔离级别设置(尽管我不愿意为后来的生产数据库更改它),但没有奏效。我目前没有进一步的方法来解决这个问题,谷歌几乎没有我的信息。

0 投票
1 回答
194 浏览

sql-server - SQL Server AlwaysOn 可用性组/镜像 RPO 和可用性

是否有任何文件清楚地说明通过 SQL Server AlwaysOn 可用性组/镜像获得的 MAX RPO 和可用性?即 1 分钟和 99.99% 那样?

0 投票
0 回答
47 浏览

sql-server-2016 - 无法将副本添加到可用性组:不同的 sql server 版本

我有 2016 SP 2 的 2 个 sql 实例我验证了两台服务器上的版本并确保它们相同但由于此错误仍然无法添加副本 在此处输入图像描述

两台服务器上@@version 的结果 在此处输入图像描述

完整的错误信息 在此处输入图像描述

0 投票
0 回答
553 浏览

sql-server - Kubernetes 上的 SQL Server AG

我有一个 Kubernetes 集群,我在其上部署了 SQL Server Always On Availability Groups 操作员,但是 2 或 3 天后,SQL Server pod 会迅速重新启动,直到我删除这些 pod 并且它们Statefulset再次部署它们之后它们才会工作再次工作2或3天。

他们怎么了?

这些是我的日志:

而我kubectl get all的是这样的:

statefulset 的清单之一:

0 投票
0 回答
30 浏览

sql-server - 了解 Windows sql 可用性组、故障转移集群和负载平衡器

我在使用可用性组创建故障转移群集时遇到问题。

我已经创建了一个 Windows 故障转移集群和一个 sql 可用性组。我还有一个带有 IP 地址和 DNS 名称的天蓝色负载均衡器。

我正在尝试在此处遵循本指南

我到了配置侦听器,添加客户端访问点,然后事情就从那里失败了。

这里的名称应该是负载均衡器中的 DNS 名称吗?IP也一样?或者它应该是 Active Directory 中的另一个对象。

第 5 步和第 6 步似乎有冲突,依赖项应该是资源还是 IP?

如果有人有任何建议,我将不胜感激。

在将其更改为 powershell 代码之前,我一直在使用上述指南尝试在 GUI 中工作。

我怀疑我遗漏了什么,或者这都是相同的 IP 地址和使用的 dns 名称。

0 投票
1 回答
226 浏览

sql-server - 键“applicationintent”的值无效。(系统.数据)

我已经在 Windows Server 2012 R2 上安装了 SQL Server 2017。

服务器集群在 WSFC 下,SQL Server 位于配置了可用性组侦听器的可用性组中。可用性组工作正常。

我已经在所有服务器上安装了 SSDT,但没有运气。

当我设置ApplicationIntent=Read-only其他连接参数时,出现此错误:

键“applicationintent”的值无效。(系统.数据)

0 投票
0 回答
18 浏览

sql-server-2017 - 具有可用性组的 SQL Server 2017 中的故障转移

我正在上述设置中配置故障转移,其中包含两个节点和同步提交。这是一个测试设置。主要是 server1,次要是 server2。我配置了可用性组并添加了数据库。当我手动执行故障转移时,它似乎可以工作,server2 成为主服务器,但是当我连接到集群资源 IP 时,数据库仍处于只读模式。它仅在我关闭 server1 时才有效。到目前为止,我找不到任何解决方案。