2010-06-23 119 views
3

我正在尋找一個簡單的(如果可能,最簡單的)備份和恢復數據庫的方式。簡單和快速的SQL Server數據庫備份和恢復

我想做一個狀態的備份,然後做一些操作後回到備份狀態。

嘗試數據庫 - >任務 - >備份...然後數據庫 - >任務 - >還原,但我總是得到一個錯誤有:

Restore failed for...DBName

The tail of the log for the database "database name" has not been backed up...

所以,我要用一個簡單的操作來備份和恢復每一個,可以給我一個建議 一個解決方案,無論是GUI還是不基於GUI?

回答

2

看起來您已設置差異備份。這比恢復完全備份稍微複雜一些。

http://msdn.microsoft.com/en-us/library/ms175510.aspx

通過這樣做完全備份,你要打破備份鏈的DBA成立,所以這將是與DBA首先檢查你打破他的備份集之前是個好主意。

編輯了非常有益的意見:

當你做一個備份,您應該使用COPY_ONLY選項,這樣你就不會打破備份鏈。

http://msdn.microsoft.com/en-us/library/ms186865.aspx

+0

@Greg回答編輯 – 2010-06-23 14:52:56

+0

他只需要使用COPY_ONLY備份來避免這個問題http://www.mssqltips.com/tip.asp?tip=1075 – 2010-06-23 14:58:50

+0

@Martin Smith tx for the correction – 2010-06-23 17:39:54

1

恢復時需要檢查的選項來覆蓋現有的數據庫,如果你有,否則就會失敗。

MSSQL 2005及更高版本features snapshots,聽起來像它很適合您的要求。

5

使用RESTORE命令的WITH REPLACE選項:

替換選項將覆蓋恢復正常 執行幾個 重要的安全檢查。重寫的 檢查如下:

  • 恢復在具有截取的另一 數據庫的備份現有的數據庫。隨着替換選項, 恢復允許你改寫 現有數據庫與任何 數據庫的備份集,即使 指定的數據庫名稱從記錄在 備份集的數據庫名稱不同 。這可能會導致 意外覆蓋數據庫 不同的數據庫。
  • 使用其中一個尾日誌備份一直沒有采取 完整或大容量日誌恢復模式 和STOPAT選項沒有 使用還原了一個數據庫。使用REPLACE選項,您 可能會丟失承諾的工作,因爲最近編寫的 日誌尚未備份爲 。
  • 覆蓋現有文件。例如,一個錯誤可能允許 覆蓋錯誤類型的文件, (例如.xls文件)或另一個非 聯機數據庫使用的 。如果現有文件 被覆蓋,則儘管已恢復的 數據庫已完成,但任意數據丟失爲 。

主題也涵蓋在生厭在MSDN看到Restoring Without Using a Tail-Log Backup,它包含了「如何」的文章,涵蓋Management Studio中場景的鏈接(即你正在使用的工具)。