2013-12-18 65 views
1

我在本地環境中使用SQL Server 2012。事實上,它正在我的Windows 7機器上運行。我的問題如下:我收到我的SQL數據庫的每日備份。現在,我只需通過刪除現有數據庫來恢復整個數據庫。此恢復任務需要一段時間才能完成。我對還原過程的理解是它用新備份覆蓋了以前的數據庫。 有沒有辦法讓SQL Server 2012用新備份中發生的任何更改修改現有數據庫?我的意思是,就像比較以前的數據庫和更新的數據庫,並根據需要進行必要的更改。如何用最新的備份更新我的本地SQL Server數據庫?

回答

0

我不這麼認爲。您可以使用數據庫複製來做些事情,但這可能不合適。

如果你確實有一些東西只是提出修改,它可能不會比還原速度更快。你是C#還是類似的開發人員?如果是這樣,我會試圖編寫一個服務來監視備份的位置,並在到達時以編程方式啓動恢復;可能會節省一些時間。

1

是的,您不需要完整備份就需要差異備份。恢復它以移動到原始數據庫的「時間點」狀態。 做一個關於完整/差異和日誌備份的基礎研究(太多的信息爲一個簡短的答案)

0

如果您的問題是「我可以合併從外部數據庫的更改到我當前的數據庫而不必恢復整個數據庫? 「那麼答案是「是的,但不容易」。您可以設置日誌傳送,但自動執行相當複雜。手動操作也相當複雜,但出於不同的原因:沒有「微軟」的方式來做到這一點。你必須自己計算手動日誌傳送。

您可以考慮通過鏈接服務器手動複製表。如果你只更新少量的表格,這可能工作得很好,你可以節省一些麻煩。工作站上的鏈接服務器,一些MERGE語句保存到.sql文件中,您可以根據需要更新數據庫中重要的表格。


可以避免使用差異備份運行在遠程服務器上的完整備份,但它不是特別愉快。

我的假設是,目前您正在使用COPY_ONLY選項創建完整備份。這使您可以創建不影響現有備份的帶外備份副本。

要做你真正想要的,你必須這樣做:在服務器上設置備份,在第1天做完全備份,然後在第2-X天做差異備份。現在,在您的本地系統上,保留您在第1天創建的數據庫的完整備份。然後從第1天開始,您將完成所有差異備份。恢復第1天的完整數據庫,然後按正確順序恢復每個後續差異。

但是,差異備份要求備份鏈完好無損。您不能使用COPY_ONLY進行差異備份。這意味着,如果您還使用備份來實際備份數據庫,則可以將這些備份用於數據備份,或者需要使用COPY_ONLY進行數據備份,這兩種備份在哲學上都是錯誤的。您的開發數據庫副本不應該驅動您的prod備份過程。

所以,你可以做到這一點,但:

  1. 你還要做一個完整的數據庫恢復。

  2. 你還有很多工作要做,以恢復數據庫。

  3. 您可能會破壞原有數據庫的現有備份過程。

相關問題