2008-08-11 48 views
5

當恢復SQL Server數據庫,我注意到有3個不同的恢復國家可供選擇:SQL Server恢復美國

  • 與恢復還原
  • 有沒有恢復還原
  • 與待機
  • 恢復

我一直把它留在它的默認值,但它們是什麼意思?

(最好通俗地說)

回答

7

GateKiller,

簡單來說(而不是複製粘貼出來的SQLBOL的),所以你可以理解的概念:

RESTORE WITH RECOVERY使用備份媒體文件(如fulldata.bak)至將數據庫恢復到創建備份文件的時間。在這種情況下,還原順序可以還原其他備份並向前滾動它們。如果您想要及時恢復數據庫到更早的狀態 - 比如開發系統時,這非常棒。

如果你想恢復數據庫到最新的數據(例如,如果你正在做一個系統災難恢復,你不能丟失任何數據),那麼你想恢復該備份,然後所有的事務日誌創建自那以後備份。這是您使用RESTORE NORECOVERY時的情況。它將允許您將以後的事務日誌恢復到故障點(只要您有它們)。

RECOVERY WITH STANDBY能夠將數據庫恢復到某個日期(如上面的NORECOVERY),但允許數據庫仍然使用READONLY。新的事務日誌仍然可以應用到數據庫以保持最新(備用服務器)。如果要恢復完整的數據庫需要很長時間才能返回到操作系統,請使用此選項。 (例如,如果您有一個多TB數據庫,需要16小時才能恢復,但可以每15分鐘接收一次事務日誌更新)。

這有點像鏡像服務器 - 但沒有「每一筆交易」都實時發送到備份服務器。

1

從書本上線,我認爲這是很清楚的,你讀它之後

NORECOVERY

指示還原操作不回滾任何未提交交易。如果必須應用另一個事務日誌,則必須指定NORECOVERY或STANDBY選項。如果未指定NORECOVERY,RECOVERY或STANDBY,則RECOVERY是默認設置。

SQL Server要求在還原數據庫備份和多個事務日誌時,或者在需要多個RESTORE語句時(例如,完整數據庫備份後跟一個差異),在除最終RESTORE語句之外的所有語句上都使用WITH NORECOVERY選項數據庫備份)。

注意指定NORECOVERY選項時,數據庫在此中間未恢復狀態下不可用。

與文件或文件組恢復操作一起使用時,NORECOVERY強制數據庫在還原操作後保持還原狀態。這對於以下任何一種情況都很有用:

正在運行還原腳本,並且始終應用日誌。

使用一系列文件恢復,並且數據庫不打算在兩個還原操作之間使用。

恢復

指示還原操作回滾任何未提交的事務。恢復過程結束後,數據庫即可使用。

如果規劃了後續RESTORE操作(RESTORE LOG或RESTORE DATABASE),則應指定NORECOVERY或STANDBY。

如果未指定NORECOVERY,RECOVERY或STANDBY,則RECOVERY是默認值。從早期版本的SQL Server還原備份集時,可能需要進行數據庫升級。當指定WITH RECOVERY時,此升級將自動執行。有關更多信息,請參閱事務日誌備份。

STANDBY = undo_file_name

指定撤消文件名,以便恢復效果可以撤消。撤銷文件所需的大小取決於未提交事務導致的撤消操作的大小。如果未指定NORECOVERY,RECOVERY或STANDBY,則RECOVERY是默認設置。

STANDBY允許在事務日誌恢復之間啓用數據庫以進行只讀訪問,並且可以與熱備用服務器情況或特殊恢復情況一起使用,在這種情況下可以在日誌恢復之間檢查數據庫。

如果指定的撤銷文件名不存在,SQL Server會創建它。如果該文件存在,則SQL Server會覆蓋它。

對於同一數據庫的連續恢復,可以使用相同的撤消文件。有關更多信息,請參閱使用備用服務器。

重要如果包含指定撤消文件名的驅動器上的可用磁盤空間耗盡,則恢復操作將停止。

當需要升級數據庫時,不允許STANDBY。

4

您可以將Microsoft SQL Server數據庫設置爲NORECOVERY,RECOVERY或STANDBY模式。

RECOVERY是用戶可以連接和訪問數據庫的數據庫的正常和通常狀態(假設它們具有適當的權限設置)。

NORECOVERY允許數據庫管理員還原其他備份文件,如差異備份或事務備份。當數據庫處於此狀態時,用戶無法連接或訪問此數據庫。

STANDBY與NORECOVERY狀態非常相似,但它允許用戶在READONLY訪問中連接或訪問數據庫。所以用戶只能對數據庫運行SELECT命令。這在日誌傳送中經常用於報告目的。唯一的缺點是,儘管數據庫中有用戶正在運行查詢,但SQL Server或DBA無法還原其他備份文件。因此,如果您有許多用戶始終訪問數據庫,則複製可能會落後。