在具有 Alwayson 设置的 SQL Server 中实现表分区
Posted
技术标签:
【中文标题】在具有 Alwayson 设置的 SQL Server 中实现表分区【英文标题】:Implementing Table partitioning in SQL server having alwayson setup 【发布时间】:2016-06-23 06:42:44 【问题描述】:我正在对选定的表进行表分区。它在较低的环境中运行良好,因为环境非常简单,每个环境中都有一个 SQL 服务器。 我的生产环境使用 AlwaysOn 设置以实现具有一个主节点和一个辅助节点的高可用性。我绞尽脑汁想在这样的环境下实现表分区,遇到了以下可能的实现和相应的问题:
-
从Primary关闭AlwaysOn->在Primary上实现分区->(问:如果我在Primary上开启AlwaysOn,分区会在secondary上得到反射吗?)
如果没有从 Primary 关闭 AlwaysOn,则在 Primary 上应用分区(问:有可能吗?如果可以,分区会在辅助中得到反映吗?可能对性能产生什么影响?)
提前致谢。
【问题讨论】:
【参考方案1】:无论您是否将数据库从可用性组中取出,分区都将反映在辅助数据库中。这是因为辅助节点使用事务日志记录来应用主节点发生的任何更改。
会影响您决定的一件事是此操作是否会生成大量事务日志。如果可以,那么所有这些活动也需要在辅助节点上重播。将数据库从 AG 中取出,进行更改,进行完整或差异备份,然后使用它重新建立 AG 可能会更有效。
【讨论】:
感谢您的回复本。就我而言,要分区的表很大。肯定会产生大量的事务日志。所以我会按照你的建议更好。以上是关于在具有 Alwayson 设置的 SQL Server 中实现表分区的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2017 AlwaysOn AG 自动初始化
SQL Server 2017 AlwaysOn AG 自动初始化
SQL Server 2017 AlwaysOn AG 自动初始化