Sql-Server

SQL Server 將數據複製到存檔

  • August 21, 2018

我有以下情況:

多個 SQL Server,其中生產機器每天在數據庫中記錄大約 80GB 的數據(主要是圖像)(每台機器都有一個伺服器和一個數據庫)。由於這些伺服器有大約 4TB 的空間,它們可以儲存的天數是有限的。所以這些伺服器上的數據經常被覆蓋。但我們想製作可以追溯到 2 年的報告。

我可以編寫儲存過程來獲取所有新數據條目並將它們複製到備份 SQL Server,它每 2 小時左右就有更多空間。但我說的是一個包含大約 25 個表的數據庫,我認為可能有更好的方法。

您認為在這種情況下事務複製或日誌傳送可能是更好的選擇嗎?

如果生產站點上的 SQL Server 作用於數據(我還沒有機會檢查它在系統上的實際工作方式),我不希望備份伺服器複製它。備份伺服器應保留所有記錄並僅添加新記錄。

對此的任何建議將不勝感激。

如果我理解正確,日誌傳送和事務複製不是一個選項,因為無論您在主伺服器上做什麼,它們基本上都會在另一端更新。您將獲得更新的數據庫,如果資訊被覆蓋,輔助數據庫也是如此。我可能會嘗試創建一個計劃好的 DWH 數據庫,我會每隔一段時間以某種方式複制新數據。也許是 SSIS 或批量插入。

看起來需要一些工作,比如了解數據何時被覆蓋:每 5 分鐘?他們在應用程序中更新它的隨機時間?然後相應地決定要做什麼(甚至可以在插入或更新時使用觸發器將其批量插入到不同伺服器中的 DWH 表中)。我希望這有幫助。請記住,如果更新和插入經常發生,則如果經常執行此觸發器,在某些情況下可能會導致性能問題。

除了使用 SSIS 或儲存過程等開發 ETL 過程之外,如果您想使用事務複製,則可以選擇忽略複製中的 DELETE。前提是使用 DELETE 語句執行主伺服器上的存檔。

當您創建出版物並添加文章時,請轉到文章屬性,然後在“聲明傳遞”部分中,針對“刪除傳遞格式”選擇“不複製 DELETE 聲明”。

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