2014-01-07 54 views
2

我們有一個SQL Server 2008 R2數據庫,可以隨時備份事務日誌。今天在上午12點左右導致數據庫出現嚴重錯誤...我有交易日誌上午8點,然後上午12點 - 下午16點 - 等SQL Server 2008 R2中事務日誌的反向更改?

我的問題是:我可以反向合併這些事務日誌到數據庫,以便我在上午8點返回到數據庫狀態?

或者是我最好的機會恢復舊的完整備份並將所有事務日誌恢復到上午8點?

第一個選項是可取的,因爲完整備份已經執行了一段時間,我害怕從那裏恢復並應用trn日誌。我是否對此感到驚慌?如果按照這種情況(恢復完整備份並應用trn日誌),實際上是否有可能發生任何不良情況?

+0

你想要的東西的名稱是[「時間點恢復」](http://technet.microsoft.com/en-us/library/ms190982(v = sql.105).aspx)。數據庫中有哪些恢復模式?完整或批量記錄(希望前者) –

+0

我們已經有了完全備份模型。 –

回答

4

事實上,您不創建常規事務日誌備份不會影響恢復過程的成功。只要數據庫處於完全恢復模式,交易將存儲在聯機事務日誌中並保存在該事務日誌中,直到進行事務日誌備份。如果您比平時晚進行事務日誌備份,這隻意味着聯機事務日誌可能會增長,並且備份可能會更大。它不會導致任何交易記錄丟失。

通過完整的事務日誌備份鏈回到上午8點,您可以成功地將整個數據庫回滾到某個時間點。

至於恢復完整備份和應用TRN日誌 - 什麼都不出問題,但它總是建議先測試在測試服務器上的情況下,而不是直接在生產

要恢復到某個時間點:

  1. 在SSMS擴大數據庫
  2. 右鍵單擊數據庫,選擇任務|恢復|數據庫
  3. 在常規選項卡的備份集中,將列出可用的備份。點擊時間軸
  4. 選擇特定的日期和時間,改變時間間隔以顯示更寬的時間範圍,將滑塊移動到要回滾到

enter image description here

時間

您可以在此處找到更詳細的說明:How to: Restore to a Point in Time (SQL Server Management Studio)

請記住,此過程將回滾所有cha對數據庫進行了修改。如果您只想回滾特定更改(例如,只有恢復一些被刪除的數據,或反向錯誤的更新),我建議第三方工具,如ApexSQL日誌

Reverting your SQL Server database back to a specific point in time

Restore a database to a point in time

聲明:我ApexSQL工作作爲支持工程師