我正在为即将到来的基础设施变化起草一份提案。这将包括一个生产服务器和报告/数据仓库服务器,每个服务器都具有 Always On。为了降低硬件和许可成本,是否可以在运行 Prod-AG Primary 和 Rep-AG Secondary 的 Server-A 以及运行 Rep-AG Primary 和 Prod-AG Secondary 的 Server-B 的配置中运行?
我认为每个服务器都需要 2 个以下 WSFC 实例、sql 实例、AG、侦听器、DNS 名称/端口。
我希望这是有道理的,这是我认为它会是什么样子的图表。
在任一节点上发生故障转移的情况下,工作负载/业务需求并不是那么大,在同一台服务器上运行几个小时将是一个主要问题。
我只发现了几次类似的设置,但没有来自 Microsoft 或成功运行此设置的任何人的明确信息。
SQL 版将是 2017 年,很可能是标准版,我认为我们不会被批准用于企业版。操作系统将是 Windows Server 2016 Core。
可以使用 SQL Server Standard 创建的侦听器数量是否有限制?
我正在与使用 CU3 设置 2017 标准服务器的 DBA 合作。我们有 12 个数据库,他能够设置 12 个基本可用性组。他能够设置 10 个侦听器,但在 11 日,出现以下错误:
为可用性组侦听器“test12300”创建失败。(Microsoft.SqlServer.Smo)
如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=14.0.17213.0+((SSMS_Rel).171128-2020)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates。 FailedOperationExceptionText&EvtID=Create+AvailabilityGroupListener&LinkId=20476
附加信息:
执行 Transact-SQL 语句或批处理时发生异常。(Microsoft.SqlServer.ConnectionInfo)
WSFC 群集无法使 DNS 名称为“test12300”的网络名称资源联机。DNS 名称可能已被使用或与现有名称服务冲突,或者 WSFC 群集服务可能未运行或可能无法访问。使用不同的 DNS 名称来解决名称冲突,或查看 WSFC 群集日志以获取更多信息。尝试为侦听器创建网络名称和 IP 地址失败。如果这是一个 WSFC 可用性组,WSFC 服务可能未运行或在其当前状态下可能无法访问,或者为网络名称和 IP 地址提供的值可能不正确。检查 WSFC 群集的状态并与网络管理员一起验证网络名称和 IP 地址。否则,请联系您的主要支持提供商。(Microsoft SQL Server,错误:19471)
如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=14.00.3015&EvtSrc=MSSQLServer&EvtID=19471&LinkId=20476
我们创建了 11 个空数据库,对每个数据库进行了备份,然后通过 AG 向导使用 DHCP 创建了一个 AG 和一个侦听器。它工作了 10 次,但在第 11 次失败了。对于第 11 个侦听器,我们选择了名称 BAG_L11,没有其他东西使用该 DNS 名称。
sql-server listener availability-groups standard-edition sql-server-2017
我正在使用 Always On AG 实现一个新的 HA/DR 架构,以便在 HA 和 DR 场景中使用。
我已经掌握了一种机制来确保在发生故障转移时禁用辅助副本上的作业并启用作业,但现在意识到,一旦发生这种情况,将没有可用的作业历史记录。作业历史记录对于确定在现已解散的主服务器上未运行或失败的内容以及需要在新的主服务器上运行的内容至关重要。
我正在努力寻找任何关于如何克服这个问题并使这些数据在新的主服务器上可用的文档。
有没有人遇到过这个问题,你是如何解决的?
我如何通过更改以下脚本来在启用/未启用 Always ON 的环境中运行。在 Kin 提供了一些非常有用的建议之后,下面似乎正在起作用。但是,当我需要跨 300-400 个 SQL 服务器进行部署时,此代码肯定不会处于最佳状态,而有些总是在其他服务器上没有。
请帮我修改/检查实例是否启用了AG并成功执行
更新根据@Kin 的要求
SET NOCOUNT ON
DECLARE @user_to_be_added sysname
SET @user_to_be_added = 'Domain\user'
DECLARE @sqltext nvarchar(max) = N''
if (select serverproperty('IsHadrEnabled')) = 0
BEGIN
-- change to your user to be added .. make sure that the login is already existing
SELECT @sqltext += char(10)+ 'use '+quotename(name)+';'+char(10)+ 'CREATE USER '+quotename(@user_to_be_added)+' FOR LOGIN '+quotename(@user_to_be_added)
FROM sys.databases where state_desc ='ONLINE' AND databaseproperty(name,'isReadOnly') = 0
SELECT @sqltext
END
Else
BEGIN
SELECT @sqltext …Run Code Online (Sandbox Code Playgroud) sql-server availability-groups sql-server-2014 sql-server-2016
这是我们第一次在至关重要的生产数据库上应用 TDE,我有以下问题。
当 TDE 正在进行时:
相关平台是具有可用性组的 SQL Server 2014 SP2 GDR。
sql-server encryption availability-groups transparent-data-encryption sql-server-2014
Always on(SQL Server 2016) 在四个独立服务器 Server1、Server2、Server3、Server4 之间配置。这些服务器包含一个可用性组 (AG01),其中包含 3 个数据库。如何为这些服务器打SQL Server补丁?我们需要在同一天为所有服务器应用补丁吗?这些服务器是生产服务器。
我想就我们目前在我工作的公司进行的索引维护获得一些意见。我们的生产 SQL 2012 集群之一由 4 个节点组成,每个节点上有两个实例,有多个 AG,为一些非常繁重的工作负载提供服务。这些 AG 中的一些数据库是 2TB+。
我们有一个标准的日常索引维护例程,它根据碎片级别进行通常的重建与重组,但我们也只对超过特定大小的索引进行重组,因为如果这些较大的索引要被删除,我们已经看到 SYNC 延迟问题重建。一旦执行了索引维护,我们就会更新统计信息等。
这项工作有时会运行长达 12 小时以上,因此它会影响我们看到流量高峰的关键工作时间,因此我们确实需要采取一些措施来缓解这种情况。
我最近看到了很多评论,有人建议根本不需要维护索引,我怀疑这可能是我们正在对只有 5% 的大型索引进行重组的情况支离破碎。
我想我想要一些关于如何识别索引的想法,这些索引不一定需要我们每天进行的维护级别,除了禁用它并观察影响(如果有的话)。
sql-server fragmentation sql-server-2012 availability-groups index-maintenance
有人可以帮我弄清楚我的理解是否正确:
在我的可读辅助副本的 AG 仪表板上,我看到:
那么,如果我的辅助 AG 需要将节点/故障转移或 SQL 重新启动作为活动的一部分,这究竟意味着什么?
这是否意味着我的二级数据库需要 4598 秒才能使用 24 GB 的重做队列启动这个数据库?
我很担心,因为我们的一个生产秒方在白天的大部分时间里重做大小为 400 GB,而从 AG 仪表板恢复时间将近 10 小时。这是否意味着所谓的 DR 受到了损害?
我刚刚做了一个测试故障转移,正如我从错误日志消息中看到的那样,数据库按预期进行了恢复,并看到它在 1235 秒内完成。只是好奇,因为估计恢复的数量还差得很远。这只是为了解释我的业务用户帮助他们我们正在谈论的中断窗口。
sql-server high-availability availability-groups sql-server-2017
我在想,除了使用相同的架构设置 HADR 之外,是否可以以某种方式利用 SQL Server 2012 中的 AlwaysOn 架构为 DEV 和 QA 环境正确创建副本?
sql-server architecture sql-server-2012 high-availability availability-groups
使用 SQL AlwaysOn,我将我的可读辅助设置为只读意图。当我尝试使用参数连接时,applicationintent=readonly我与主服务器建立了连接。
这是我的参数:
这是我创建路线的脚本:
ALTER AVAILABILITY GROUP [AG-Test]
MODIFY REPLICA ON
'PROD-TEST' WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL='TCP://PROD-test.contoso.com:1433'));
ALTER AVAILABILITY GROUP [AG-Ocean]
MODIFY REPLICA ON
'DRP-TEST' WITH
(SECONDARY_ROLE (READ_ONLY_ROUTING_URL='TCP://DRP-test.contoso.com:1433'));
ALTER AVAILABILITY GROUP [AG-Test]
MODIFY REPLICA ON
'PROD-TEST' WITH
(PRIMARY_ROLE(READ_ONLY_ROUTING_LIST =('DRP-TEST','PROD-TEST')))
ALTER AVAILABILITY GROUP [AG-Test]
MODIFY REPLICA ON
'DRP-TEST' WITH
(PRIMARY_ROLE(READ_ONLY_ROUTING_LIST =('PROD-TEST','DRP-TEST')))
Run Code Online (Sandbox Code Playgroud)