带有历史表的 SQL Server 复制

pow*_*wer 2 replication sql-server sql-server-2014 temporal-tables sql-server-2016

是否可以复制 SQL Server 数据库并让副本拥有临时/历史表?

详细信息:
我有一个生产系统,运行 SQL Server 2014。我想要一个副本数据库,并且我还想跟踪历史更改。

将生产数据库复制到 SQL Server 2016 实例并跟踪时态/历史表的更改将是理想的选择。

这可能吗?
这在 Azure 上可能吗?

编辑:第 2 部分

在大卫·布朗的出色回答和进一步阅读之后,我有了更多的方向和更多的问题。我将使用 Azure SQL 数据库/逻辑服务器。我将使用事务复制,因为 1. Azure SQL 数据库支持它,2. 我们可以在发布者 (Sql Server 2014) 上禁用时态表,并在订阅者 (Azure SQL 数据库/逻辑服务器) 上启用时态表。大卫·布朗的出色回答。

第 2 部分问题:当“发布者”数据库成为发布者时,它会承受多少额外负载?

设置此功能时如何避免停机和锁定发布者?

我有多个“发布者”数据库。我可以在一个 Azure SQL 数据库/逻辑服务器实例上拥有多个订阅者数据库吗?

Dav*_*oft 5

是否可以复制 SQL Server 数据库并让副本拥有临时/历史表?

是的。如果您使用 AG 副本,主数据库和副本都将具有相同的临时表。

如果您使用事务复制,则可以在订阅者处拥有一个临时表,而发布者处的表是非临时的。

如果您使用更改跟踪或更改数据捕获,则可以使用更改数据来传送并应用到报告数据库中的时态表。

复制技术的使用是有限的。

始终开启:完全支持

变更数据捕获和变更数据跟踪:仅在当前表上支持

快照和事务复制:仅支持未启用时间的单个发布者和启用时间的一个订阅者。在这种情况下,发布者用于 OLTP 工作负载,而订阅者用于卸载报告(包括“AS OF”查询)。不支持使用多个订阅者,因为这种情况可能会导致时间数据不一致,因为每个订阅者都依赖于本地系统时钟。

合并复制:时态表不支持

时态表注意事项和限制