SQL Server 2008指定恢復模式

iSQlServer發表於2009-01-20

恢復模式綜述
SQL Server 2005為資料庫提供了三種恢復模式:完整、簡單和大容量日誌。這些模式決定了SQL Server如何使用事務日誌,如何選擇它要記錄的操作,以及是否截斷日誌。截斷事務日誌是刪除已執行事務並把該日誌空間讓給新事務的過程。下面是每種恢復模式的定義。

 在完整恢復模式下,資料庫引擎把所有操作都記錄到事務日誌上,並且資料庫引擎絕對不會截斷日誌。完整恢復模式能使資料庫恢復到故障時間點(在SQL Server 2005 Enterprise版中,恢復到一個比這更早一些的時間點)。

在簡單恢復模式下,資料庫引擎最低限度地記錄大多數操作,並在每個檢查點之後截斷事務日誌。在簡單恢復模式下,不能備份或還原事務日誌。此外,也不能還原單獨的資料頁。

重要提示  簡單恢復模式
簡單恢復模式並不適合那些無法接受丟失最新更改的資料庫。

在大容量日誌模式下,資料庫引擎對大容量操作(諸如SELECT INTO和BULK INSERT)進行最小記錄。在這種恢復模式下,如果一個日誌備份包含任何大容量操作,就可以使資料庫恢復到日誌備份的結尾,但不能恢復到某個時間點。大容量日誌模式僅用於大容量操作期間。

如何配置恢復模式
在SSMS中的“資料庫屬性”頁上可以檢視為一個給定資料庫指定的恢復模式,對此也可以通過查詢sys.database目錄檢視,其基本語法如下所示:

SELECT name, recovery_model_desc FROM sys.databases

要配置一個資料庫的恢復模式,可以進入SSMS中的“資料庫屬性”頁,也可以使用ALTER DATABASE語句。

在SSMS中,通過執行下列步驟可以改變恢復模式。

1. 在SSMS的“物件資源管理器”下展開“資料庫”節點。

2. 右擊需要設定恢復模式的資料庫,然後選擇“屬性”。選擇“選項”頁。

3. 這時就可以通過“恢復模式”下拉選單改變恢復模式,如圖2.3所示。

 

通過SSMS改變恢復模式

使用ALTER DATABASE語句配置恢復模式的基本語法如下:

ALTER DATABASE

SET RECOVERY FULL | SIMPLE | BULK_LOGGED

如前所述,在生產環境下建議對資料庫使用完整恢復模式,因為它提供了最可恢復的配置。如果通過大容量機制定期匯入資料,則可以臨時將資料庫的恢復模式改變為大容量日誌模式,以獲得更好的大容量負載效能。然而,在匯入過程結束以後,應將資料庫恢復為完整恢復模式。

將資料庫恢復模式改變為大容量日誌,以獲得大容量日誌操作的良好效能,然後恢復到完整恢復模式。

1.通過執行如下ALTER DATABASE語句,將AdventureWorks資料庫的資料庫恢復模式設定為大容量日誌恢復模式。(在改變恢復模式前,對該資料庫作完整備份。)

-- Note that you should create the C:"Backup folder at Operating
    System level before running this backup.

BACKUP DATABASE AdventureWorks TO DISK='C:"Backup"
AdventureWorks.Bak'

GO

--Change the Recovery Model to Bulk Logged

ALTER DATABASE AdventureWorks

SET RECOVERY BULK_LOGGED

2. 在執行大容量日誌操作以後,輸入並執行如下ALTER DATABASE語句,將恢復模式改回完整恢復模式,然後執行另一次完整的資料庫備份,以備份剛剛裝入的資料。

ALTER DATABASE AdventureWorks

SET RECOVERY FULL

--Perform. a Full database backup

BACKUP DATABASE AdventureWorks TO DISK='C:"Backup"
AdventureWorks.Bak'

GO

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-541495/,如需轉載,請註明出處,否則將追究法律責任。

相關文章