2011-07-11 12 views
4

我正需要開始存檔我正在維護的網站的數據庫。基本上,每天都會生成大量的事務數據,並且在大約2周後,這些數據幾乎沒有用處 - 它仍然用於報告目的,但可以安全地從生產服務器移出。SQL Server - 用於歸檔的最佳複製模型

因此,理想情況我會愛,如果我能做到這一點:

  1. 設置拉複製 - 備份服務器每小時取從生產服務器的更改。
  2. 每日生產服務器數據庫已清理 - 刪除超過2周的條目。

關於#1 - 我很好奇拉複製是從性能角度出發最有效的方法嗎?我不想在生產服務器上施加壓力(或者至少不是很大的壓力)......我不關心保持數據庫同步。

關於#2 - 如何確保這些刪除不復制 - 數據保存在存檔服務器上?

生產服務器上運行SQL Server 2008企業版,備份服務器可以運行任何需要(目前運行SQL Server 2008 Express的)

+2

對於#2,您不希望使用複製或鏡像,因爲刪除也會發生在副本上。一般來說,我會建議將分區或手動歸檔到單獨的數據庫,但是您忘記告訴我們您正在使用哪個版本的SQL Server版本 - 這些都是重要的細節。 –

+0

我已經添加了詳細信息...也正在研究分區,可能+ pull複製備份/報告是要走的路... – kape123

+1

您將無法使用複製備份/報告,因爲這將刪除當您從源中刪除舊數據時。 –

回答

2

#1,我想說測試一下,看看。 MS通常有幾個白皮書說,提取訂閱的性能更高,但我不記得他們在資源方面的成本。如果您擔心,請設置遠程分發服務器(遠程=與發佈服務器不同)服務器

對於#2,有幾種方法可以實現。當您使用sp_addarticle設置文章時,會有一個參數@del_cmd,其值可以爲「none」。這將告知分發代理在訂閱服務器上禁止刪除。您也可以使用存儲過程執行清除操作,將存儲過程的執行設置爲複製中的文章,然後在不執行任何操作的訂閱服務器上創建存儲過程。每種方法都有其優點和缺點。

+0

#1拉訂閱在正在拉動的計算機上產生分發者,所以它在性能方面絕對是最好的(服務器與原始數據庫只發布對本地複製數據庫的更改,就是這樣)...#2實用信息...將看看我能否以某種方式使用它,雖然我可能會訴諸寫程序,將我需要的數據複製到存檔數據庫。 # – kape123

+0

對於#2您使用存儲過程刪除然後具有相同的存儲過程,沒有對用戶做任何事情的解決方案聽起來像這將是一個偉大的解決方案,但我已經設置並測試它並且似乎數據也在用戶處被刪除。也許我做錯了什麼? –

+0

其實我只是注意到,創建存儲過程作爲複製中的一篇文章粉碎了我的虛擬用戶中的一個,所以我猜測它複製了sp執行刪除,然後在訂閱服務器上執行它? –

0

我認爲我們應該將分區應用於表格歸檔。如果您設置兩週以上的副本和歸檔數據,問題是重新初始化複製時,訂戶上的所有數據都將被刪除並應用發佈者的新數據。