2017-03-11 77 views
0

我在服務器上有一個300 GB的MSSQL 2016生產數據庫,爲了報告目的,我需要在另一臺服務器上創建此數據庫的副本。SQL到SQL數據複製

在生產數據庫上,存在正常的羣集/非羣集索引,每日讀寫操作正在發生。

在報表方面,我將擁有與列存儲索引相同的數據庫表,因此我將獲得oppurtunity以使我的報表查詢結果比實時數據庫更快。

當時的想法是很好,直到我無法找到複製這兩個數據庫,並保持同步一個適當的方式(如用最多5周的MNT公差)

我已經嘗試了一些日誌傳送的拓撲結構,沒有工作好。

我已經嘗試過這兩個數據庫之間的SQL複製,但它不會給出%100的數據一致性,並且不能容忍這樣的錯誤,比如當您在表中添加或刪除列時或者想要將新表傳遞給報告數據庫等。

PS。我會考慮有一個我的prod數據庫同步副本(在報告數據庫旁邊)(就像日誌傳送只讀第二個)。因此,即時可以爲輔助複製數據庫(1-產品,1副本,1-報告)創建另一臺服務器(共3臺服務器),如果我能找到合適的拓撲結構。

您認爲最好的方式在我的情況?

在此先感謝。

回答

0

如果您想要複製DDL更改,則需要使用日誌傳送或某種類型的鏡像 - 這意味着您需要在只讀模式下擁有相同的數據庫(至頁面級別)只複製。您將無法擁有不同的索引定義。

如果您希望索引定義不同,那麼您需要想出一種方法來複制數據 - 手動腳本可能是最好的選擇,但要記錄哪些記錄是新的,更新,尤其是在生產數據庫中刪除(添加rowversion列並確保所有表的主鍵是否有用)。您還必須手動克隆從生產數據庫到只讀副本的DDL更改;並更新您的數據複製腳本以匹配。

我建議使用可用的鏡像技術之一(日誌傳送,AG使用只讀鏡像等)並保持數據庫完全相同。