第 9 章:執行備份和恢復
目的
本章向您介紹通過 Enterprise Manager 執行的 Oracle Database 備份和恢復操作。
主題
本章討論了以下內容:
|
配置閃回恢復區和 ARCHIVELOG 模式 |
|
|
配置備份設置和策略 |
|
|
定義 DBID 和 DB_UNIQUE_NAME 的值 |
|
|
執行完整的數據庫備份 |
|
|
利用 Oracle 建議的備份策略對數據庫進行備份 |
|
|
還原和恢復整個數據庫 |
|
|
執行閃回表 |
|
|
執行閃回丟棄 |
|
|
管理備份 |
查看屏幕截圖
將鼠標移到這個圖標上,顯示所有的屏幕截圖。您還可以將鼠標移到各個圖標上,只查看與該圖標相關的屏幕截圖。
配置閃回恢復區和 ARCHIVELOG 模式
返回主題列表
閃回恢復區是為 Oracle 數據庫中的所有與恢復相關的文件和活動提供的一個統一的存儲位置。將數據庫從介質故障中完全恢復過來所需的全部文件都屬於閃回恢復區。可以在閃回恢復區中創建的與恢復相關的文件包括:存檔重做日誌文件、控制文件、由恢復管理器 (RMAN) 創建的備份、閃回日誌和修改跟蹤文件。Oracle 推薦在與數據庫文件所在相同的磁盤上創建修改跟蹤文件。實際上,如果您安裝了 OMF,並執行了啓用修改跟蹤的命令,那麼將自動在為數據庫文件指定的目錄中創建跟蹤文件。
通過分配一個存儲位置並將相關的恢復文件統一在一個特定的區域內,Oracle 數據庫服務器使數據庫管理員不必再管理由這些組件創建的磁盤文件。
當創建閃回恢復區時,您可以選擇一個目錄、文件系統或自動存儲管理磁盤組來存放文件,併為閃回恢復區中用於存儲所有文件的最大空間設置一個磁盤限額。您必須選擇一個足夠大的區域,以容納所需的磁盤限額。當接近磁盤空間界限時,Oracle 服務器可以根據 RMAN 保留策略的界限來刪除非必要的文件,為新文件騰出空間。
閃回恢復區應該在一個與工作區分離的磁盤上,其中存儲着在增量備份中使用的活動數據庫文件(如數據文件、控制文件、在線重做日誌和修改跟蹤文件)。將閃回恢復區和工作區置於相同的磁盤上,當出現磁盤故障時,很容易使您同時丟失活動的數據庫文件以及備份。
當您創建數據庫時,可以配置閃回恢復區和 ARCHIVELOG 模式。如果您在您創建數據庫時沒有執行這些任務,那麼請按照以下步驟來配置閃回恢復區和 ARCHIVELOG 模式:
|
1. |
在操作系統提示符下為閃回恢復區創建一個目錄。執行下列命令:
|
|
2. |
打開瀏覽器,並指定用户名為 SYS,口令為 SYSDBA,以登錄 Enterprise Manager Database Console。單擊 Login。 |
|
3. |
單擊 Oracle Database Home 頁面上的 Maintenance。
|
|
4. |
在 Backup/Recovery 部分中選擇 Configure Recovery Settings。您可以使用 Configure Recovery Settings 頁面來配置恢復實用工具的設置,包括閃回恢復區。 |
|
5. |
出現 Configure Recovery Settings 頁面。滾動至 Flash Recovery Area 部分。在相應字段中輸入下列值來配置閃回恢復區: Flash Recovery Area Location:<在第 1 步中創建的目錄步中創建的目錄閃回恢復區所需的大小pGY0<>
向上滾動至窗口頂部。 |
|
6. |
選中 Archive Log Mode,為數據庫配置 ARCHIVELOG 模式。單擊 Apply。 |
|
7. |
顯示一條確認修改的消息。要完成 ARCHIVELOG 模式的配置,必須關閉數據庫例程。單擊 Yes,關閉例程並重新啓動它 |
|
8. |
顯示 Restart Database:Specify Host and Target Database Credentials 頁面。輸入主機證書和數據庫證書。單擊 OK。
|
|
9. |
顯示 Restart Database:Confirmation 頁面。單擊 Yes,關閉例程並重新啓動它。 |
|
10. |
顯示 Restart Database:Activity Information 頁面。單擊 Refresh,登錄 Enterprise Manager Database Control。 |
配置備份設置和策略
返回主題列表
您可以配置許多設置和策略來確定如何存儲備份、備份哪些數據、如何執行備份,以及備份在從恢復區中清除之前保留多久。
您還可以配置特性來提高備份性能。
|
1. |
單擊 Oracle Database 主頁上的 Maintenance 頁面。
|
|
2. |
在 Backup/Recovery 區域中選擇 Configure Backup Settings。 |
|
3. |
滾動至 Configure Backup Settings 頁面的 Host Credentials 區域。輸入操作系統用户名和口令。向上滾動至 Disk Setting |
|
4. |
接受 Device 頁面上的 Disk Settings 部分中的 Parallelism 字段中的值 1。設置 Disk Backup Location 字段為 null,以使用閃回恢復區進行備份。對 Disk Backup Type 選擇 Backup Set。單擊 Test Disk Backup。 |
|
5. |
顯示一條消息,指示磁盤設置備份測試成功完成。現在您將配置備份策略設置。單擊 Policy,訪問 Policy 頁面。 |
|
6. |
選擇 Automatically backup the control file and server parameter file (SPFILE) with every backup and database structural change。選擇 Optimize the whole database backup by skipping unchanged files such as read-only and offline datafiles that have been backed up。選擇 Enable block change tracking for faster incremental backups。為 Block Change Tracking File 輸入一個文件名。然後向下滾動到 Retention Policy |
|
7. |
選擇 Retain backups that are necessary for a recovery to any time within the specified number of days (point-in-time recovery),並接受默認值(31 天)。單擊 OK。返回到 Maintenance |
確定 DBID 和 DB_UNIQUE_NAME 的值
返回主題列表
如果您丟失了數據庫控制文件或 SPFILE,Enterprise Manager 可以從備份中恢復它們 — 只要您能夠為數據庫提供 DB_UNIQUE_NAME 和 DBID。
執行以下步驟,確定 DB_UNIQUE_NAME 的值:
|
1. |
單擊 Administration 頁面上的 Instanc 區域中的 All Initialization Parameters。 |
|
2. |
出現 Current 屬性頁面。在 Filter 字段中輸入 db_unique_name,然後單擊 Go。 |
|
3. |
出現的頁面顯示了一行,該行的 Name 列為 db_unique_name,Value 記錄這個值,以便將來您需要它來進行恢復操作時,可以獲得它。 |
執行以下步驟來確定 DBID:
|
1. |
單擊 Administration 頁面的 Storage 區域中的 Controlfiles。 |
|
2. |
出現 Controlfiles 屬性頁面。選擇 Advanced |
|
3. |
Database ID 記錄這個值,以便將來您需要它來進行恢復操作時,可以獲得它。 |
執行完整的數據庫備份
返回主題列表
您可以通過執行一次完整的數據庫備份來備份數據庫的全部內容。所有數據文件的完整備份都將被創建。結果可能作為鏡像拷貝或作為備份集存儲,但在任意情況下,數據庫的所有數據文件以及控制文件、存檔重做日誌和服務器參數文件的全部內容都將在備份中反映出來。利用這個文件集,可以完整的恢復數據庫。
|
1. |
在 Backup/Recovery 區域中選擇 Schedule Backup。 |
|
2. |
出現 Schedule Backup:Strategy 頁面。從 Backup Strategy 下拉菜單中選擇 Customized。選擇 Whole Database,如果需要,在 Host Credentials 部分中輸入用户名和口令。單擊 Next。 |
|
3. |
出現 Schedule Backup:Options 頁面。在 Backup Type 部分中選擇 Full Backup。在 Backup Mode 部分中選擇 Online Backup。在 Advanced 部分中選中 Back up all archived logs on disk。單擊 Next。 |
|
4. |
出現 Schedule Backup:Settings 頁面。適當地選擇 Disk 或 Tape。單擊 Next。 |
|
5. |
出現 Schedule Backup:Schedule 頁面。接受默認的作業名稱。選擇 Immediately,立即執行作業,或輸入在稍後執行的時間。單擊 Next。 |
|
6. |
出現 Schedule Backup:Review 頁面。單擊 Submit Job。 |
|
7. |
顯示 Backup Submit Successful 消息。單擊 OK。 |
利用 Oracle 建議的備份策略對數據庫進行備份
返回主題列表
Oracle 建議的備份策略的基礎是創建數據庫的一個鏡像拷貝,然後利用 RMAN 增量備份繼續生成備份。Oracle Enterprise Manager 調度 RMAN 備份作業。按照以下步驟來設置備份計劃:
|
1. |
在 Backup/Recovery 區域中選擇 Schedule Backup。 |
|
2. |
出現 Schedule Backup:Strategy 頁面。從 Backup Stratgy 下拉菜單中選擇 Oracle-suggested。在 "Select your backup destination" 下選擇 Disk。在 Host Credentials 部分中輸入操作系統用户名和口令。單擊 Next。 |
|
3. |
出現 Schedule Backup:Setup 頁面。請仔細查看信息,然後單擊 Next。 |
|
4. |
出現 Schedule Backup:Schedule 頁面。仔細查看信息,並相應地調整開始日期和時間。單擊 Next。 |
|
5. |
出現 Schedule Backup:Review 頁面。請仔細查看信息,然後單擊 Submit Job。 |
|
6. |
出現 Status 頁面和一條指示作業成功提交的消息。您可以單擊 View Job 來訪問作業狀態頁面或單擊 OK |
還原和恢復整個數據庫
返回主題列表
在這一部分中,您將通過 Enterprise Manager 來恢復數據文件。
|
1. |
在 Backup/Recovery 區域中選擇 Perform Recovery。 |
|
2. |
出現 Perform Recovery:Type 頁面。從 Type 部分中的 Object Type 下拉菜單中選擇 Whole Database。選擇 Recover to the current time or a previous point-in-time 作為 Operation Type。在 Host Credentials 部分中輸入操作系統用户名和口令。單擊 Next。
|
|
4. |
顯示 Recovery Wizard 頁面,指示例程將關閉並重啓。單擊 Refresh,繼續使用 Recovery Wizard。 |
|
5. |
單擊 Perform Recovery,恢復數據庫。 |
|
6. |
在 Host Credentials 區域中輸入操作系統用户名和口令。在 Database Credentials 區域中輸入 SYS 和 SYS 的口令。單擊 Continue。 |
|
7. |
再次出現 Perform Recovery:Type 頁面。數據庫現在處於加載狀態。單擊 Next。 |
|
8. |
出現 Perform Recovery:Point-in-time 頁面。選擇 Recover to the current time。單擊 Next。 |
|
9. |
出現 Perform Recovery:Rename 頁面。選擇 No. Restore the files to the default location(如果您希望這樣)或者選擇 Yes.Restore the files to a new, common location,並輸入位置。單擊 Next |
|
10. |
出現 Perform Recovery:Review 頁面。仔細查看信息,然後單擊 Submit。 |
|
11. |
收到 "Operation succeeded" 消息。單擊 OK。
|
執行閃回表
返回主題列表
完成以下任務來執行閃回表操作:
|
啓用行轉移 |
|
|
模擬用户錯誤 |
|
|
執行閃回表 |
啓用行轉移
返回列表
您必須在表上啓用行轉移,以在表上執行閃回表操作。在這一部分中,您將在 HR.EMPLOYEES 表上啓用行轉移。
|
1. |
在 Oracle Database Home 頁面上單擊 Administration。
|
|
2. |
出現 Administration 屬性頁面。在 Schema部分中選擇 Tables。 |
|
3. |
出現 Tables 頁面。從 Object Type 下拉菜單中選擇 Table。在 Schema 字段中輸入 HR,在 Object Name 字段中輸入 REGIONS。單擊 Go。 |
|
4. |
REGIONS 表顯示在 Results 部分中。單擊 Edit。 |
|
5. |
出現 Edit Table 頁面。單擊 Options |
|
6. |
從 Enable Row Movement 下拉菜單中選擇 Yes。單擊 Apply。 |
|
7. |
收到一條消息,指示表成功修改。選擇路式導航欄中的 Tables |
模擬用户錯誤
返回列表
在這一部分中,您將通過修改 REGIONS 表中的數據來模擬用户錯誤。執行以下操作:
|
1. |
通過打開一個終端窗口和執行以下命令來查看 REGIONS 表中的數據:
|
|
2. |
通過執行以下 SQL 命令來修改所有行中的 region_name 列中的值,以模擬用户錯誤:
|
|
3. |
再次執行以下命令來查看修改: select * from regions; 在執行閃回表部分中,您將把表閃回到您更新表之前的時間點上。
|
執行閃回表
返回列表
在這一部分中,您將閃回 HR.REGIONS 表。
|
1. |
驗證在表的列表中仍然選中了 REGIONS。從 Actions 下拉菜單中選擇 Flashback Table。單擊 Go。 |
|
2. |
出現 Perform Recovery:Point-in-time 頁面。選擇 Flashback to a timestamp,然後輸入幾分鐘以前的一個日期和時間。單擊 Next。 |
|
3. |
出現 Perform Recovery:Flashback Tables 頁面。仔細查看頁面上的信息,然後單擊 Next。 |
|
4. |
出現 Perform Recovery:Review 頁面。仔細查看信息,然後單擊 Submit。 |
|
5. |
接收到一條消息,確認表已被閃回。單擊 OK。 |
|
6. |
切換回 SQL*Plus 會話,執行以下命令來驗證閃回表操作: select * from regions; |
執行閃回丟棄
返回主題列表
在這一部分中,您將使用閃回丟棄特性來取回被丟棄的表。為了完成本練習,您將創建一個新的表、丟棄該表,然後用閃回丟棄來恢復它。
按照下列步驟來創建一個新的表,然後丟棄它:
|
1. |
在 Schema Name 字段中輸入 HR,並在 Object Name 字段中輸入 REGIONS 或 REGIONS 的一部分,然後單擊 Go。
|
|
2. |
從 Action 下拉菜單中選擇 Create Like。單擊 Go。 |
|
3. |
出現 Create Table 頁面。在 Name 字段中輸入 REG_HIST。取消 REGION_ID 列選定的 Not Null。單擊 Constraints。 |
|
4. |
出現 Constraints 頁面。選中每一個約束條件,然後單擊 delete |
|
5. |
單擊 OK,創建 REG_HIST 表 |
|
6. |
收到一條消息,指示表已創建。在 Object Name 字段中輸入 REG_HIST,然後單擊 Go。 |
|
7. |
顯示 Tables 頁面,並在 Results 部分中顯示 REG_HIST 表。單擊 Delete |
|
8. |
單擊 Yes,確認刪除表。 |
|
9. |
顯示一條消息,指示表已刪除。單擊 Go,嘗試取回表。 |
|
10. |
在結果部分中顯示 No object found。 |
要恢復您剛剛刪除的表,您將需要執行一次閃回丟棄。執行以下操作:
|
1. |
單擊 Recycle Bin。 |
|
2. |
在 Schema Name 字段中輸入 HR,然後單擊 Go。
|
|
3. |
驗證選中了 REG_HIST,然後單擊 Flashback Drop。
|
|
4. |
出現 Perform Recovery: Rename 頁面。單擊 Next。 |
|
5. |
出現 Perform Recovery:Review 頁面。仔細查看信息,然後單擊 Submit。 |
|
6. |
顯示一條確認消息。單擊 OK。 |
|
7. |
回收站中不再有該表。單擊路徑式導航欄中的 Tables |
|
8. |
REG_HIST 表現在被包含在表的列表中。
|
管理備份
返回主題列表
管理備份包括兩個任務:管理存在於磁盤或磁帶上的備份自身,和管理保存在 RMAN 信息庫中的備份記錄。在這一部分中,您將執行備份維護和更新 RMAN 信息庫。在這一部分中,您將執行以下任務:
|
使用 Manage Current Backups 頁面 |
|
|
交叉查對備份 |
|
|
刪除過期備份 |
|
|
刪除廢棄備份 |
|
|
標記備份為 UNAVAILABLE |
|
|
編制備份的目錄 |
使用 Manage Current Backups 頁面
返回主題列表
您可以使用 Manage Current Backups 頁面來查看在 RMAN 信息庫中記錄的備份。從這個頁面中,您可以執行在這整個部分中説明的備份維護操作。
|
|
單擊 Maintenance 屬性頁面的 Backup/Recovery 區域中的 Manage Current Backups。 |
|
2. |
顯示 Manage Current Backups 頁面。Backup Sets |
|
3. |
顯示 Contents 屬性頁面。單擊 Manage Current Backups,返回 Manage Current Backups 屬性頁面。 |
|
4. |
單擊 Image Copies,查看 Image Copies |
|
5. |
顯示 Image Copies |
交叉查對備份
返回主題列表
當您交叉查對一個備份時,RMAN 驗證記錄在信息庫中的信息與實際備份狀態是否保持一致。如果不一致,則將更新信息庫來反映正確的狀態。您可以按以下方式來交叉查對所有的備份文件:
|
|
單擊 Maintenance 屬性頁面的 Backup/Recovery 區域中的 Manage Current Backups。 |
|
2. |
顯示 Manage Current Backups 頁面。單擊頁面頂部的 Crosscheck All |
|
3. |
顯示 Crosscheck All:Specify Job Parameters 頁面。您可以接受 Job Name、Job Description、Start time 和 Repeat 規範的默認值,或輸入自己的值。單擊 Submit Job,提交交叉查對作業。 |
|
4. |
在 Manage Current Backups 頁面上顯示了一條 Job Submission Succeeded 消息。您可以單擊 View Job |
|
5. |
在 Summary |
刪除過期備份
返回主題列表
您可以通過執行以下步驟來刪除 RMAN 信息庫中標記為 EXPIRED 的所有備份:
|
|
單擊 Maintenance 屬性頁面的 Backup/Recovery 區域中的 Manage Current Backups。 |
|
2. |
顯示 Manage Current Backups 頁面。單擊頁面頂部的 Delete All Expired,從 RMAN 信息庫中刪除標記為 EXPIRED 的那些備份。 |
|
3. |
顯示 Delete All Expired:Specify Job Parameters 頁面。您可以接受 Job Name、Job Description、Start time 和 Repeat 規範的默認值,或輸入自己的值。如果您沒有執行交叉查對操作,選擇 Perform the operation 'Crosscheck All' before 'Delete All Expired'。 單擊 Submit Job,提交作業。 |
|
4. |
在 Manage Current Backups 頁面上顯示了一條 Job Submission Succeeded 消息。您可以單擊 View Job |
|
5. |
在 Summary |