可用性组可以取代事务复制吗?

Mef*_*eff 8 replication sql-server sql-server-2012 high-availability availability-groups

我一直在研究 SQL Server 2012 的新功能,以及它如何帮助我目前的情况。

目前,我们使用 SQL Server 2008 R2,并通过事务复制将两个 OLTP 服务器的数据库复制到单个报告服务器。然后我们使用这些复制的 DB 进行报告。

我对 SQL Server 2012 和可用性组是否可以取代它感兴趣 - 所以我会使用新的可用性组而不是事务复制,并将两个 OLTP 服务器的数据库镜像到报告服务器 - 报告将能够访问只读副本。

我不确定这是否会奏效,甚至根本不会。

我想摆脱复制,因为它会导致我的部署策略出现问题(使用 VSDBCMD.exe)。我还想避免大型数据库上的复制重新初始化延迟。

有没有人有任何好的例子或经验?是否可以按照较低版本中的正常镜像将多个服务器的可读副本镜像到单个服务器?

这最初是在这里问的:https : //stackoverflow.com/questions/10415225/mirroring-and-availability-groups-in-sql2012对不起,我认为我还不能迁移问题。

Aar*_*and 10

我在 StackOverflow 上的答案中滑过,只是为了防止其他人在同一类型的答案上花费精力。

我个人认为这比事务复制要好得多,尽管我没有在真正的迁移场景中对两者进行任何正式比较。我知道人们在事务复制方面遇到了很多麻烦,甚至与标准镜像相比(这是对它的升级),你肯定会遇到更少的问题。

最大的好处是二级可以标记为只读 - 这样你就可以运行你想要的所有报告,并且它根本不会影响镜像。您只需要更强大的 tempdb(因为它基本上使用 rcsi 来执行此操作)。

当然,您确实需要注意 AG 的双方都需要获得完全许可才能将副本用于只读操作。并且双方都需要在特定版本的 Windows 上运行(企业版或 2008 R2 及更低版本更好;2012 年及更高版本为标准版或更好),因为它们需要故障转移集群——AG 中的 SQL 实例不需要集群,但是他们需要坐在操作系统的基础设施之上。


Str*_*DBA 7

事务复制相对于报告工作负载的可用性组的优势

与上述答案相反,以下是事务复制可能是报告工作负载比可用性组更好的解决方案的一些原因。

  • 您可以复制数据库中的一部分表。可用性组副本始终是整个数据库。如果某些表包含敏感信息,如果所有报告都是针对不包含该信息的数据库完成的,则审计访问会更容易。
  • 您可以过滤复制的行,提供精细的粒度级别。例如,您可以将部门特定信息复制到多个部门报告服务器,每个部门只能访问自己的信息。
  • 您可以在发布者和订阅者之间采用完全不同的索引策略。对于可用性组,索引是相同的,即使将在副本上创建统计信息并存储在 tempdb 中,但您无法调整复制为您提供的功能。
  • 安全问题。通常,报告用户通过使用 SSMS、access 或 excel 直接连接到数据库,并且您只想限制他们对报告数据库的访问。

如果这些都不是大问题,那么可用性组可能是更好的选择。