标签: availability-groups

日志驱动器在 SQL Server 中被填满

我们正面临日志驱动器 ( E :) 经常被填满的问题。

我们的 DBMS 是设置了 AOAG 的 SQL Server 2014 SP1。

我们有每周维护任务:

  1. 重建索引(运行接近 1 小时)
  2. 更新统计信息(运行 Cloe 到 30 分钟)
  3. 检查数据库运行接近 30 分钟
  4. 完整备份运行接近 4 小时
  5. 差速运行接近 2 小时

我们没有看到任何繁重的事务处理。

但是我们可以看到E:被填满了。

以下是自动增长设置:

  • 10% 无限增长。

注意:由于这是 AOAG 环境,我们每 30 分钟安排一次事务日志备份。

我的问题:

  • 在这种情况下,是什么让E:被填满了?

  • 为什么我的日志没有被截断?

  • 在这种情况下,我们需要扩展 E: 吗?

  • 截断我的日志的行动计划应该是什么?

截至目前,在我们决定下一个扩展驱动器的计划之前,我们不时缩小文件以释放空间。

请建议。

sql-server backup transaction-log availability-groups sql-server-2014

0
推荐指数
1
解决办法
4252
查看次数

只有两台服务器的 SQL Server 上的自动故障转移支持

我们有两台服务器,每台服务器都被专用存储占用。我正在寻找一种方法来设置这两个服务器以在 MS SQL Server 上提供具有自动故障转移支持的数据库。

当只有两台服务器可用时,使用数据库镜像似乎对自动故障转移无效。

有关原因的更多信息:对于自动故障转移,数据库镜像需要称为见证的第三个元素来协调两个数据库实例之间的主体/镜像角色,并在故障转移期间协助切换。但是,我只有两台服务器可用,因此我不得不在其中一台服务器上安装见证,这些服务器可以是主(主体)或辅助(镜像)数据库实例。因此,当主体 DB 和见证服务器都运行的服务器上发生硬件故障时,镜像 DB 无法联机并且不会发生自动故障转移。

SQL Server 的一项名为Always On 可用性组的最新功能似乎提供了类似的镜像功能以及更多功能。是否可以使用只有两台服务器的Always On 可用性组来实现自动故障转移

对于两台服务器的自动故障转移支持,尤其是针对电源故障的支持,您还有其他建议吗?

sql-server mirroring failover high-availability availability-groups

0
推荐指数
1
解决办法
271
查看次数

执行计划使用并行化的查询是否可以使用属于同一可用性组的另一台服务器上的处理器内核?

如果我有两台服务器(服务器 A 和服务器 B)属于同一个可用性组故障转移集群,并且在服务器 A 上运行的查询具有使用并行化的执行计划,那么该查询是否可以使用处理器的内核在服务器 B 上?

sql-server parallelism clustering availability-groups sql-server-2017

0
推荐指数
1
解决办法
58
查看次数

在非生产环境中备份 MS SQL AG

我们为 SQL Server 创建了一个非生产环境。
此环境使用 SQL Server Always-On 可用性组作为 HA 解决方案。

要使用 SQL Server AG,您必须将恢复模型设置为完整,以便日志可以与其他副本同步,但将恢复模型设置为完整也意味着如果您不进行备份,日志将继续增长。

由于这是一个非生产环境,我们对这些数据库的备份不感兴趣。你们认为在这种环境下最好的方法是什么?

  • 创建备份到磁盘并删除它们
  • 一定要备份这个环境
  • 其他建议...

sql-server backup availability-groups sql-server-2017

0
推荐指数
1
解决办法
50
查看次数

为什么我需要在具有两个节点的 WSFC 中进行见证?

我的集群的两个节点中都运行着 Windows Server 2019 和 SQL Server 2019。在我的情况下,没有证人一切正常。我需要 Windows Server 故障转移群集 (WSFC) 用于我用作 DR 解决方案的可用性组。

当两个节点都运行时,我将关闭一个节点(它具有我的 AG 的主数据库)并从另一个节点执行可用性组的故障转移,反之亦然。有人可以解释为什么我们需要在两个节点故障转移集群中的见证,或者我如何重新创建我们需要见证的场景。

sql-server clustering availability-groups disaster-recovery

0
推荐指数
1
解决办法
211
查看次数

如何在不停机的情况下在SQL Server Always On可用性组中设置恢复模式?

我正在运行 SQL Server 2016 2 节点 Always On 可用性组,并且我想做一些备份。我通常运行此查询来进行备份:

-- To permit log backups, before the full database backup, modify the database to use the full recovery model.  
USE master;  
ALTER DATABASE dbname
   SET RECOVERY FULL;  


BACKUP DATABASE dbname
   TO URL = 'https://bloblname.blob.core.windows.net/databasebackup/backup.bak'
   WITH CREDENTIAL = 'credentialname';
Run Code Online (Sandbox Code Playgroud)

我的问题是,我可以在可用性组主节点上执行此部分操作而不会导致停机吗?

ALTER DATABASE dbname
   SET RECOVERY FULL;  
Run Code Online (Sandbox Code Playgroud)

我担心如果我在主要可用性组上运行此命令,它会以某种方式导致同步停止,或者可能产生其他可能有害的影响。

另一个相关问题是 - 您建议在主服务器还是辅助服务器上运行这些命令?

任何对此的帮助将不胜感激。

sql-server backup availability-groups sql-server-2016

0
推荐指数
1
解决办法
3352
查看次数

在同一台服务器上制作 5TB SQL Server DB 副本而无需完全重新初始化 DB 以将其添加到 AG 的最快方法是什么

我有一个 3 节点 Always On AG,它托管一个 5TB 数据库。由于业务需求,在每个月第一天的凌晨 12:01,我需要在附加上个月名称的第 3 个节点(副本)上创建该数据库的副本。例如,在 4 月 1 日,我创建了一个名为“mydatabase_march2021”的数据库,它是截至 4 月 1 日凌晨 12:01 的“mydatabase”的副本。

我当前的流程是在凌晨 12:01 从第 3 个节点上的 AG 中立即删除 DB,重命名它,然后开始将 5TB 的 DB 备份和恢复到第 3 个节点并将其添加到 AG 的缓慢过程。有没有其他方法可以做到这一点而不必完全重新初始化第三个节点上的数据库?我需要在凌晨 5 点之前将这个副本提供给商业用户。

我曾尝试从 AG 中删除 DB,使 SQL 脱机,制作 DB 文件的副本,但无法附加这些文件并使 DB 保持恢复状态(这是重新初始化所必需的)。

附加信息:
Windows Server 2016 Standard
SQL Server 2012 SP4 Enterprise(将在明年的某个时间升级到 SQL 2016 或 2019)
节点 1 位于数据中心 A
节点 2 和节点 3 位于数据中心 B

sql-server restore availability-groups

0
推荐指数
1
解决办法
71
查看次数

故障转移和故障恢复 SQL Server 具有不同版本的分布式可用性组

我知道SQL Server分布式可用性组可以在两个不同的主要版本之间同步数据,

比方说全球小学 - 2016

二级股份公司 - 2017

此同步将起作用,我也可以进行故障转移。但是我想恢复到 2016 年的故障转移后会发生什么?

  1. 这可能吗?
  2. 2017 年的所有增量数据都会与 2016 年同步吗?

sql-server availability-groups distributed-availability-groups

0
推荐指数
1
解决办法
565
查看次数

AlwaysOn 可用性组和数据库计数限制


更新:

基本答案:我要求的东西不属于 AOAG 设计的一部分。

在我看来,这“不是一个好问题”。除非这冒犯了某人,否则我会将其保留在这里,以防万一有人有和我一样的坏主意。


请原谅我使用的术语,因为我不是 DBA。

我正在咨询一个很可能需要 700-900 个数据库的项目。该软件无法利用多个 SQL 实例,并且必须将所有数据库托管在同一 SQL 实例名称上。

客户的DBA解释了为什么在AlwaysOn可用性组上托管数百个以上的数据库可能是不合理的,并且微软官方文档虽然没有说明上限,但确实声明微软仅使用100个数据库进行测试。
AlwaysOn 故障转移群集不是一个选项,因为数据是共享的而不是复制的。

我的理解是,AOAG 可以作为 SQL 实例进行寻址,并且我无法在多个 AOAG 之间共享实例名称。

有人向我提到,也许可以做到这一点 - 添加一个额外的 AG 并将这些额外的数据库放在同一 SQL 实例名称下,但我无法通过搜索找到此选项的描述。

要么我使用错误的术语搜索相关信息,要么我假设 AG 与 SQL 实例是 1:1,甚至可能是 1:m,但每个实例都不是多个 AG。

更新

我(认为我)理解的术语:

  • 主机:运行一个或多个 SQL Server 实例的服务器。
  • 实例:在主机上运行的 SQL Server 进程的副本,可通过实例名称进行访问。
  • 实例名称:实例的逻辑地址,由hostname\instance
  • 数据库 - 实例中数据的容器。

没有 AOAG 的关系

Host --1:n--> Instance --1:n--> database
Run Code Online (Sandbox Code Playgroud)

我迷路的地方:

(如果我这里说错了,请纠正我)

  • AG - 一组 SQL Server 实例以及用于管理跨多个主机复制的托管数据的逻辑寻址的附加服务,这些实例可以在单个逻辑实例名称下进行寻址。

关系?与 AOAG 一起:

AO Cluster (logical name AO\All)
  +-- AG …
Run Code Online (Sandbox Code Playgroud)

sql-server availability-groups sql-server-2016 sql-server-2017 sql-server-2019

0
推荐指数
1
解决办法
802
查看次数

您能否在 Azure(主)中创建 AlwaysOn,并在本地提供可读的辅助副本?

是否可以使用“始终开启”创建以下设置?

主副本:在 Azure 中

辅助:本地可读副本

我知道通常人们会创建相反的结构,但我找不到说明这是不可能的文档。

我很感激你的帮助!

sql-server availability-groups azure

0
推荐指数
1
解决办法
38
查看次数