在前面兩節,我們介紹了如何利用SQL Server Enterprise Manager 和BACKUP 命令進行備份以及SQL Server 提供的備份向導。本節我們將介紹部分數據庫恢復,以及如何使用SQL Server Enterprise Manager 和RESTORE 命令進行數據庫恢復。
15.5.1 利用Enterprise Manager 恢復數據庫
利用SQL Server Enterprise Manager 恢復數據庫的操作步驟如下:
(1) 啟動SQL Server Enterprise Manager, 單擊要登錄的數據庫服務器,然後從主菜單中選擇Tools, 在菜單中選擇Restore Database, 彈出Restoredatabase 對話框,如圖15-15 所示。
(2)在Restore as database 旁的下拉列表中選擇要恢復的數據庫。
(3) 在Restore 組中通過單擊單選按鈕來選擇相應的數據庫備份類型。
(4) 在Parameters 欄中,在Show backup of database 旁的下拉列表中選擇數據庫,如果該數據庫已經執行了備份,那麼在表格對話框中就會顯示備份歷史。從First backup to restore 旁的下拉列表中選擇要使用哪個備份來恢復數據庫,在缺省情況下使用最近的一次備份。
(5) 選中Option 標簽,進行其它選項的設置見圖15-16, 其中各選項含義如下:
- Eject Tapes After Restoring Each Backup
表示在備份完成恢復時磁帶從磁帶機中自動退出。
- Prompt Before Restoring Each Backup
表示在前一個備份成功裝入之後,下一個備份裝入之前提示恢復操作執行者。
- Force Restore over Existing Database
表示自動覆蓋當前已存在的數據庫文件。
- Restore Database Files as
通過網格中的Restore As 列可以在恢復過程中改變文件的位置。
- Recovery Completion State Frame
表示在恢復過程完成之後離開數據庫的狀態,並且數據庫可以立即使用。
- Leave Database Operational
表示完成所有的(數據庫和事務日志)恢復。
- Leave Database Non-Operational But Able to Restore Additional Transaction Logs
表示未恢復事務日志,因此數據庫不可以使用,此選項用在進行多次才能恢復數據庫或事務日志的情況下。但在裝入最後的事務日志時應選擇Leave Database Operational 選項。
- Leave Database Read-only 和Able To Restore Additional Transaction
Logs 用於待命服務器(6) 在設置完選項之後,單擊確定按鈕數據庫開始進行恢復。
15.5.2 RESTORE 命令進行恢復
1 使用RESTORE 命令恢復數據庫
其中:
- DBO_ONLY
表示將新恢復的數據庫的訪問權限只授予給數據庫所有者。
- FILE
表示恢復具有多個備份子集的備份介質中的那個備份子集。
- MEDIANAME
表示在備份時所使用的備份介質名稱。如果給出該選項,則在恢復時首先檢查其是否與備份時輸入名字相匹配,若不相同恢復操作將結束。
- MOVE
表示把備份的數據庫文件恢復到系統的某一位置。缺省條件下恢復到備份時的位置。
- NORECOVERY
表示恢復操作不回滾任何未提交的事務。若恢復某一數據庫備份後又將恢復多個事務日志,或在恢復過程中執行多個RESTORE 命令,則要求除最後一條RESTORE 命令外其它的必須使用該選項。
- RECOVERY
表示回滾所有未提交的事務。在恢復結束後,數據庫就可以使用。
- STANDBY
表示數據庫恢復操作的UNDO 文件。
注意:如果不指定NORECOVERY、RECOVERY、STANDBY則默認為RECOVERY。
如果數據庫恢復操作結束後又要進行事務日志恢復,則必須使用NORECOVERY或STANDBY選項。
- REPLACE
表示如果恢復的數據庫名稱,與已存在的某一數據庫,重名則首先刪除原數據庫然後重新創建。
- RESTART
表示從恢復中斷處繼續進行恢復處理,該選項只能用於磁帶介質並且跨多卷磁帶。
- STOPAT
表示將數據庫恢復到該設定時間以前的狀態,只有在該時間以前的事務日志才會被恢復。如果使用了NORECOVERY 或STANDBY 選項,則不能選定此選項。
15.5.3 部分數據庫恢復 在實際應用環境中,用戶經常因誤操作而導致部分數據庫損壞比如一個表或索引。 SQL Server 提供新的機制以實現對數據庫的部分恢復,從而使損壞或丟失的數據重新拷貝到原始數據庫。例如,如果用戶錯誤地刪除一張表,您可以僅恢復包含該刪除表的那部分數據庫。日志或差異備份可以將表恢復到其被刪除時的狀態。在以下情況下我們會發現部分數據庫恢復具有極大的價值。
為了進行開發或生成報表可以在另外服務器上創建某一數據庫的一個子集;
恢復存檔數據。
進行部分數據庫恢復操作時要使用數據庫文件組,而且總是要恢復主要的文件和文件組,此外就是恢復您所指定的相應的數據庫文件或文件組。
使用RESTORE 命令進行部分數據庫恢復的語法規則為: