RMAN備份恢復整個庫

zhenghaishu發表於2015-03-21

RMAN備份恢復整個庫


1 檢視歷史備份集

$ rman target /
 RMAN> list backup;
說明與資料檔案庫中的任何備份都不匹配


上述結果說明之前沒有備份過


2 備份整個庫
RMAN> backup database;

啟動 backup 於 21-3月 -15
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集內的資料檔案
輸入資料檔案: 檔案號=00001 名稱=/u01/app/oracle/oradata/orcl/system01.dbf
輸入資料檔案: 檔案號=00002 名稱=/u01/app/oracle/oradata/orcl/sysaux01.dbf
輸入資料檔案: 檔案號=00003 名稱=/u01/app/oracle/oradata/orcl/undotbs01.dbf
輸入資料檔案: 檔案號=00004 名稱=/u01/app/oracle/oradata/orcl/users01.dbf
通道 ORA_DISK_1: 正在啟動段 1 於 21-3月 -15
通道 ORA_DISK_1: 已完成段 1 於 21-3月 -15
段控制程式碼=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2015_03_21/o1_mf_nnndf_TAG20150321T095606_bjsmxq4h_.bkp 標記=TAG20150321T095606 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:01:05
通道 ORA_DISK_1: 正在啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集內的資料檔案
備份集內包括當前控制檔案
備份集內包括當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 21-3月 -15
通道 ORA_DISK_1: 已完成段 1 於 21-3月 -15
段控制程式碼=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2015_03_21/o1_mf_ncsnf_TAG20150321T095606_bjsmzsv3_.bkp 標記=TAG20150321T095606 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02
完成 backup 於 21-3月 -15


3 檢查備份結果
RMAN> list backup;

備份集列表
===================


BS 關鍵字  型別 LV 大小       裝置型別 經過時間 完成時間 
------- ---- -- ---------- ----------- ------------ ----------
32      Full    1023.42M   DISK        00:00:57     21-3月 -15
        BP 關鍵字: 32   狀態: AVAILABLE  已壓縮: NO  標記: TAG20150321T095606
段名:/u01/app/oracle/flash_recovery_area/ORCL/backupset/2015_03_21/o1_mf_nnndf_TAG20150321T095606_bjsmxq4h_.bkp
  備份集 32 中的資料檔案列表
  檔案 LV 型別 Ckp SCN    Ckp 時間   名稱
  ---- -- ---- ---------- ---------- ----
  1       Full 1170352    21-3月 -15 /u01/app/oracle/oradata/orcl/system01.dbf
  2       Full 1170352    21-3月 -15 /u01/app/oracle/oradata/orcl/sysaux01.dbf
  3       Full 1170352    21-3月 -15 /u01/app/oracle/oradata/orcl/undotbs01.dbf
  4       Full 1170352    21-3月 -15 /u01/app/oracle/oradata/orcl/users01.dbf

BS 關鍵字  型別 LV 大小       裝置型別 經過時間 完成時間 
------- ---- -- ---------- ----------- ------------ ----------
33      Full    9.36M      DISK        00:00:02     21-3月 -15
        BP 關鍵字: 33   狀態: AVAILABLE  已壓縮: NO  標記: TAG20150321T095606
段名:/u01/app/oracle/flash_recovery_area/ORCL/backupset/2015_03_21/o1_mf_ncsnf_TAG20150321T095606_bjsmzsv3_.bkp
  包含的 SPFILE: 修改時間: 21-3月 -15
  SPFILE db_unique_name: ORCL
  包括的控制檔案: Ckp SCN: 1170374      Ckp 時間: 21-3月 -15
 
這裡觀測到備份集號32和33,說明之前有過31個備份集,但都被刪除了,所以第一步檢查的結果為空


4 停庫
RMAN> exit


恢復管理器完成。
[oracle@oracleServer ~]$ sqlplus / as sysdba;

SQL*Plus: Release 11.2.0.1.0 Production on 星期六 3月 21 10:01:37 2015

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> shutdown abort;
ORACLE 例程已經關閉。


5 另開一個終端,刪除原庫
[root@oracleServer ~]# cd /u01/app/oracle/oradata/orcl/
[root@oracleServer orcl]# ls
control01.ctl  redo02.log  sysaux01.dbf  temp01.dbf     undotbs01.dbf
redo01.log     redo03.log  system01.dbf  test_temp.dbf  users01.dbf
[root@oracleServer orcl]# rm -rf *


6 嘗試啟動
SQL> startup;
ORACLE 例程已經啟動。

Total System Global Area  839282688 bytes
Fixed Size                  2217992 bytes
Variable Size             503318520 bytes
Database Buffers          331350016 bytes
Redo Buffers                2396160 bytes
ORA-00205: ?????????, ??????, ???????


此時資料庫已經不能啟動,在啟動到nomount過程中報205錯誤,找不到控制檔案。


7 進RMAN恢復控制檔案
SQL> exit
從 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷開
[oracle@oracleServer ~]$ rman target /

恢復管理器: Release 11.2.0.1.0 - Production on 星期六 3月 21 10:07:49 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

連線到目標資料庫: ORCL (未裝載)

RMAN> restore controlfile from '/u01/app/oracle/flash_recovery_area/ORCL/backupset/2015_03_21/o1_mf_ncsnf_TAG20150321T095606_bjsmzsv3_.bkp';

啟動 restore 於 21-3月 -15
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=21 裝置型別=DISK

通道 ORA_DISK_1: 正在還原控制檔案
通道 ORA_DISK_1: 還原完成, 用時: 00:00:01
輸出檔名=/u01/app/oracle/oradata/orcl/control01.ctl
輸出檔名=/u01/app/oracle/flash_recovery_area/orcl/control02.ctl
完成 restore 於 21-3月 -15


8 此時資料庫可以裝載
RMAN> alter database mount;

資料庫已裝載
釋放的通道: ORA_DISK_1


9 恢復資料檔案
RMAN> restore database;

啟動 restore 於 21-3月 -15
啟動 implicit crosscheck backup 於 21-3月 -15
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=21 裝置型別=DISK
已交叉檢驗的 1 物件
完成 implicit crosscheck backup 於 21-3月 -15

啟動 implicit crosscheck copy 於 21-3月 -15
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 於 21-3月 -15

搜尋恢復區中的所有檔案
正在編制檔案目錄...
目錄編制完畢

已列入目錄的檔案的列表
=======================
檔名: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2015_03_21/o1_mf_ncsnf_TAG20150321T095606_bjsmzsv3_.bkp

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集還原的資料檔案
通道 ORA_DISK_1: 將資料檔案 00001 還原到 /u01/app/oracle/oradata/orcl/system01.dbf
通道 ORA_DISK_1: 將資料檔案 00002 還原到 /u01/app/oracle/oradata/orcl/sysaux01.dbf
通道 ORA_DISK_1: 將資料檔案 00003 還原到 /u01/app/oracle/oradata/orcl/undotbs01.dbf
通道 ORA_DISK_1: 將資料檔案 00004 還原到 /u01/app/oracle/oradata/orcl/users01.dbf
通道 ORA_DISK_1: 正在讀取備份片段 /u01/app/oracle/flash_recovery_area/ORCL/backupset/2015_03_21/o1_mf_nnndf_TAG20150321T095606_bjsmxq4h_.bkp
通道 ORA_DISK_1: 段控制程式碼 = /u01/app/oracle/flash_recovery_area/ORCL/backupset/2015_03_21/o1_mf_nnndf_TAG20150321T095606_bjsmxq4h_.bkp 標記 = TAG20150321T095606
通道 ORA_DISK_1: 已還原備份片段 1
通道 ORA_DISK_1: 還原完成, 用時: 00:01:06
完成 restore 於 21-3月 -15


10 還原資料庫
RMAN> recover database;

啟動 recover 於 21-3月 -15
使用通道 ORA_DISK_1

正在開始介質的恢復

無法找到歸檔日誌
歸檔日誌執行緒=1 序列=4
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 03/21/2015 10:13:26 上) 失敗
RMAN-06054: 介質恢復正在請求未知的執行緒 1 序列 4 的歸檔日誌以及起始 SCN 1170352


上面結果報錯是因為找不到日誌檔案,可用另一終端驗證:
[root@oracleServer orcl]# ls
control01.ctl  sysaux01.dbf  system01.dbf  undotbs01.dbf  users01.dbf


11 重做日誌檔案開啟資料庫
RMAN> alter database open resetlogs;

資料庫已開啟


用另一終端檢查日誌檔案:
[root@oracleServer orcl]# ls
control01.ctl  redo02.log  sysaux01.dbf  temp01.dbf     undotbs01.dbf
redo01.log     redo03.log  system01.dbf  test_temp.dbf  users01.dbf


12 重啟資料庫
RMAN> exit


恢復管理器完成。
[oracle@oracleServer ~]$ sqlplus / as sysdba;

SQL*Plus: Release 11.2.0.1.0 Production on 星期六 3月 21 10:17:11 2015

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


連線到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> startup force;
ORACLE 例程已經啟動。

Total System Global Area  839282688 bytes
Fixed Size                  2217992 bytes
Variable Size             503318520 bytes
Database Buffers          331350016 bytes
Redo Buffers                2396160 bytes
資料庫裝載完畢。
資料庫已經開啟。




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

相關文章