簡體   English   中英

如何使用最新備份更新我的本地SQL Server數據庫?

[英]How to update my local SQL Server database with the latest backup?

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

是的,您需要差異備份,而不是完整備份。 恢復它以移動到原始數據庫的“時間點”狀態。 對完整/差異和日志備份進行基礎研究(簡短答案的信息太多)

我不相信。 您可以使用數據庫復制執行某些操作,但這可能不合適。

如果您確實有某些東西可以提取更改,那么它可能不會比恢復更快。 你是C#還是類似的開發者? 如果是這樣,我很想寫一個監視備份位置的服務,並在它到達時以編程方式開始恢復; 可能會節省一些時間。

如果您的問題是“我可以將更改從外部數據庫合並到我當前的數據庫而無需還原整個數據庫嗎?” 然后答案是“是的,但不容易。” 您可以設置日志傳送,但自動執行相當復雜。 手動操作也相當復雜,但出於不同的原因:沒有“微軟”的方法來做到這一點。 您必須主要依靠自己來計算手動日志傳送。

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


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

我的假設是,目前您正在使用COPY_ONLY選項創建完整備份。 這允許您創建不會干擾現有備份的帶外備份副本。

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

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

所以,你可以做到,但是:

  1. 您仍然需要執行完整的數據庫還原。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM