Sql-Server

帶有歷史表的 SQL Server 複製

  • January 10, 2019

是否可以複製 SQL Server 數據庫並使副本具有時態/歷史表?

詳細資訊:

我有一個生產系統,執行 SQL Server 2014。我想要一個副本數據庫,我還想要跟踪歷史更改。

將生產數據庫複製到 SQL Server 2016 實例並使用時態/歷史表跟踪更改是理想的。

這可能嗎?

這在 Azure 上可行嗎?

編輯:第 2 部分

在大衛布朗的出色回答和進一步閱讀之後,我有了更多的方向和更多的問題。我將使用 Azure SQL 數據庫/邏輯伺服器。我將使用事務複製,因為 1. 它在 Azure SQL 數據庫上受支持 2. 我們可以在發布者 (Sql Server 2014) 上禁用臨時表並在訂閱者 (Azure SQL 數據庫/邏輯伺服器) 上啟用臨時表大衛布朗的出色回答。

第 2 部分問題:當“發布者”數據庫成為發布者時,它會增加多少額外負載?

設置時如何避免停機和鎖定發布者?

我有多個“出版商”數據庫。我可以在一個 Azure SQL 數據庫/邏輯伺服器實例上擁有多個訂閱者數據庫嗎?

是否可以複製 SQL Server 數據庫並使副本具有時態/歷史表?

是的。如果您使用 AG Replica,則主數據庫和副本都將具有相同的 Temporal Tables。

如果您使用事務複製,您可以在訂閱者處擁有一個臨時表,其中發布者處的表是非臨時的。

如果您使用變更跟踪或變更數據擷取,您可以使用變更數據來傳送並應用到報告數據庫中的時態表。

複製技術的使用是有限的。

始終開啟:完全支持

變更數據擷取和變更數據跟踪:僅在目前表上支持

快照和事務複製:僅支持未啟用臨時的單個發布者和啟用臨時的訂閱者。在這種情況下,發布者用於 OLTP 工作負載,而訂閱者用於解除安裝報告(包括“AS OF”查詢)。不支持使用多個訂閱者,因為這種情況可能會導致時間數據不一致,因為每個訂閱者都依賴於本地系統時鐘。

合併複製:時態表不支持

臨時表注意事項和限制

引用自:https://dba.stackexchange.com/questions/226732