在具有 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 自动初始化

alwayson修改数据库失败

SQL Server 2017 AlwaysOn AG 自动初始化

SQL Server 2017 AlwaysOn AG 自动初始化

SQL Server 2017 AlwaysOn AG 自动初始化(十三)

DSE 验证 Spark AlwaysOn SQL