Oracle 12c RMAN 異機恢復
1、複製源庫的一份 RMAN 全備到目標庫。
查詢源庫的 RMAN 備份
RMAN> list backup of database;
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
55 Full 1.60G DISK 00:00:02 16-DEC-15
BP Key: 55 Status: AVAILABLE Compressed: NO Tag: TAG20151216T031039
Piece Name: /oradata/bk/rman_20qou75f_1_1
List of Datafiles in backup set 55
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 20904683 16-DEC-15 /oradata/oradata/site/site/system01.dbf
2 Full 20904683 16-DEC-15 /oradata/oradata/site/site/sysaux01.dbf
3 Full 20904683 16-DEC-15 /oradata/oradata/site/site/undotbs01.dbf
4 Full 20904683 16-DEC-15 /oradata/oradata/site/site/users01.dbf
5 Full 20904683 16-DEC-15 /oradata/oradata/site/site/ts_site_data01.dbf
6 Full 20904683 16-DEC-15 /oradata/oradata/site/site/ts_site_index01.dbf
複製源庫的一份 RMAN 全備到目標庫。
[oracle@DB1 bk]$ scp rman_1vqou75e_1_1 rman_20qou75f_1_1 rman_21qou75m_1_1 oracle@10.100.30.20:/oradata/bk
oracle@10.100.30.20's password:
rman_1vqou75e_1_1 100% 147MB 146.6MB/s 00:01
rman_20qou75f_1_1 100% 1641MB 109.4MB/s 00:15
rman_21qou75m_1_1 100% 8704 8.5KB/s 00:00
檢視控制檔案備份。
需要注意的是,在11G,資料庫全備的時候,RMAN 不會備份控制檔案,除非在備份語句後面加上 INCLUDE CURRENT CONTROLFILE。
例如:BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;
也可以單獨備份控制檔案。
例如:BACKUP CURRENT CONTROLFILE;
在11G的 RMAN 中,有 CONTROLFILE AUTOBACK 這引數,設定這個引數後,每當資料庫執行 RMAN 備份的時候,RMAN 會自動備份控制檔案和引數檔案到指定目錄下。
可以檢視中查詢指定備份是否包含控制檔案,下面檢視中的 CONTROLFILE_INCLUDED 表明備份是否包含控制檔案
SQL> SELECT S.RECID backset_id,
S.START_TIME,
ROUND(P.BYTES / 1024 / 1024 / 1024,2) GB,
S.BACKUP_TYPE,
INCREMENTAL_LEVEL,
P.STATUS,
ROUND(P.ELAPSED_SECONDS) ELAPSED_SECONDS,
P.HANDLE AS "MEDIA_HANDLE",
CONTROLFILE_INCLUDED
FROM V$BACKUP_PIECE P, V$BACKUP_SET S
WHERE P.SET_STAMP = S.SET_STAMP
AND P.SET_COUNT = S.SET_COUNT
ORDER BY P.COMPLETION_TIME;
BACKSET_ID START_TIME GB B INCREMENTAL_LEVEL S ELAPSED_SECONDS MEDIA_HANDLE CONTROLFILE_INCLUDED
---------- ------------------- ---------- - ----------------- - --------------- ---------------------------------------------------------------------- -------------------------
1737 2016-01-16 05:10:49 5.6 L A 171 naqrg5qp_1_1 NO
1738 2016-01-16 05:13:45 .03 D A 130 c-1864798816-20160116-01 YES
1739 2016-01-17 04:44:49 24.59 I 1 A 1195 ncqriom1_1_1 NO
1740 2016-01-17 05:04:45 .03 D A 128 c-1864798816-20160117-00 YES
1741 2016-01-17 05:07:08 5.64 L A 161 neqripvs_1_1 NO
1742 2016-01-17 05:09:54 5.53 L A 171 nfqriq52_1_1 NO
1743 2016-01-17 05:12:51 .03 D A 119 c-1864798816-20160117-01 YES
1744 2016-01-18 04:16:33 29.92 I 1 A 1578 nhqrlbd1_1_1 NO
1745 2016-01-18 04:42:59 .03 D A 120 c-1864798816-20160118-00 YES
1746 2016-01-18 04:45:13 5.33 L A 159 njqrld2p_1_1 NO
1747 2016-01-18 04:47:59 5.19 L A 169 nkqrld7v_1_1 NO
--查詢控制檔案備份
RMAN> LIST BACKUP OF CONTROLFILE;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
5 Full 17.17M DISK 00:00:00 03-DEC-15
BP Key: 5 Status: AVAILABLE Compressed: NO Tag: TAG20151203T233014
Piece Name: /oradata/bk/c-4224792395-20151203-00
Control File Included: Ckp SCN: 2165935 Ckp time: 03-DEC-15
由於源庫開啟了 CONTROLFILE AUTO BACKUP,將全備份時生成的控制檔案也複製到備庫。
[oracle@DB1 bk]$ scp c-4224792395-20151216-00 oracle@10.100.30.20:/oradata/bk
oracle@10.100.30.20's password:
c-4224792395-20151216-00 100% 17MB 17.4MB/s 00:00
2、在目標庫上進行 RMAN 恢復。
目標庫上面已經安裝了 ORACLE 軟體。
設定 ORACLE_SID
[oracle@DB2 ~]$ export ORACLE_SID=site
登入 RMAN ,啟動到 NOMOUNT
STARTUP NOMOUNT
恢復引數檔案
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oradata/bk/%F';
RESTORE SPFILE
TO PFILE '/u01/app/oracle/product/12.1.0/db_1/dbs/initsite.ora'
FROM AUTOBACKUP;
SHUTDOWN ABORT;
}
編輯生成的引數檔案,修改對應的控制檔案目錄、audit_file_dest、db_recovery_file_dest 等目錄,保證指定的目錄存在
oracle@DB2 dbs]$ vim initsite.ora
註釋掉 local_listener 引數,否則啟動會報錯
#*.local_listener='LISTENER_SITE'
用新還原的引數檔案啟動資料庫
STARTUP FORCE NOMOUNT PFILE='/u01/app/oracle/product/12.1.0/db_1/dbs/initsite.ora';
執行控制檔案恢復
rman target /
SET DBID 4224792395;
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oradata/bk/%F';
RESTORE CONTROLFILE FROM AUTOBACKUP;
ALTER DATABASE MOUNT;
}
登記傳輸過來的備份到 RMAN
CATALOG START WITH '/oradata/bk/';
檢查資料備份,刪除過期的備份
RMAN> crosscheck backup;
RMAN> delete noprompt expired backup;
檢視歸檔日誌備份的 SCN,決定介質恢復的時間點
RMAN> list backup of archivelog all;
List of Backup Sets
===================
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
54 146.61M DISK 00:00:00 16-DEC-15
BP Key: 54 Status: AVAILABLE Compressed: NO Tag: TAG20151216T031038
Piece Name: /oradata/bk/rman_1vqou75e_1_1
List of Archived Logs in backup set 54
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 206 20633382 15-DEC-15 20716789 16-DEC-15
1 207 20716789 16-DEC-15 20895202 16-DEC-15
1 208 20895202 16-DEC-15 20904669 16-DEC-15
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
56 8.00K DISK 00:00:00 16-DEC-15
BP Key: 56 Status: AVAILABLE Compressed: NO Tag: TAG20151216T031046
Piece Name: /oradata/bk/rman_21qou75m_1_1
List of Archived Logs in backup set 56
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 209 20904669 16-DEC-15 20904701 16-DEC-15
執行 RESTORE 命令,恢復資料檔案
RMAN> RESTORE DATABASE;
執行介質恢復
SQL> RECOVER DATABASE using backup controlfile UNTIL CHANGE 20716789;
Media recovery complete.
3、開啟資料庫
[oracle@DB2 site]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Wed Dec 16 11:50:22 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00392: log 5 of thread 1 is being cleared, operation not allowed
ORA-00312: online log 5 thread 1: '/u01/app/oracle/oradata/site/redo05.log'
出現報錯,清空報錯的日誌檔案
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 5;
Database altered.
開啟資料庫
SQL> alter database open resetlogs;
Database altered.
查詢源庫的 RMAN 備份
RMAN> list backup of database;
------- ---- -- ---------- ----------- ------------ ---------------
55 Full 1.60G DISK 00:00:02 16-DEC-15
BP Key: 55 Status: AVAILABLE Compressed: NO Tag: TAG20151216T031039
Piece Name: /oradata/bk/rman_20qou75f_1_1
List of Datafiles in backup set 55
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 20904683 16-DEC-15 /oradata/oradata/site/site/system01.dbf
2 Full 20904683 16-DEC-15 /oradata/oradata/site/site/sysaux01.dbf
3 Full 20904683 16-DEC-15 /oradata/oradata/site/site/undotbs01.dbf
4 Full 20904683 16-DEC-15 /oradata/oradata/site/site/users01.dbf
5 Full 20904683 16-DEC-15 /oradata/oradata/site/site/ts_site_data01.dbf
6 Full 20904683 16-DEC-15 /oradata/oradata/site/site/ts_site_index01.dbf
複製源庫的一份 RMAN 全備到目標庫。
oracle@10.100.30.20's password:
rman_1vqou75e_1_1 100% 147MB 146.6MB/s 00:01
rman_20qou75f_1_1 100% 1641MB 109.4MB/s 00:15
rman_21qou75m_1_1 100% 8704 8.5KB/s 00:00
檢視控制檔案備份。
需要注意的是,在11G,資料庫全備的時候,RMAN 不會備份控制檔案,除非在備份語句後面加上 INCLUDE CURRENT CONTROLFILE。
例如:BACKUP DATABASE INCLUDE CURRENT CONTROLFILE;
也可以單獨備份控制檔案。
例如:BACKUP CURRENT CONTROLFILE;
在11G的 RMAN 中,有 CONTROLFILE AUTOBACK 這引數,設定這個引數後,每當資料庫執行 RMAN 備份的時候,RMAN 會自動備份控制檔案和引數檔案到指定目錄下。
可以檢視中查詢指定備份是否包含控制檔案,下面檢視中的 CONTROLFILE_INCLUDED 表明備份是否包含控制檔案
SQL> SELECT S.RECID backset_id,
S.START_TIME,
ROUND(P.BYTES / 1024 / 1024 / 1024,2) GB,
S.BACKUP_TYPE,
INCREMENTAL_LEVEL,
P.STATUS,
ROUND(P.ELAPSED_SECONDS) ELAPSED_SECONDS,
P.HANDLE AS "MEDIA_HANDLE",
CONTROLFILE_INCLUDED
FROM V$BACKUP_PIECE P, V$BACKUP_SET S
WHERE P.SET_STAMP = S.SET_STAMP
AND P.SET_COUNT = S.SET_COUNT
ORDER BY P.COMPLETION_TIME;
BACKSET_ID START_TIME GB B INCREMENTAL_LEVEL S ELAPSED_SECONDS MEDIA_HANDLE CONTROLFILE_INCLUDED
---------- ------------------- ---------- - ----------------- - --------------- ---------------------------------------------------------------------- -------------------------
1737 2016-01-16 05:10:49 5.6 L A 171 naqrg5qp_1_1 NO
1738 2016-01-16 05:13:45 .03 D A 130 c-1864798816-20160116-01 YES
1739 2016-01-17 04:44:49 24.59 I 1 A 1195 ncqriom1_1_1 NO
1740 2016-01-17 05:04:45 .03 D A 128 c-1864798816-20160117-00 YES
1741 2016-01-17 05:07:08 5.64 L A 161 neqripvs_1_1 NO
1742 2016-01-17 05:09:54 5.53 L A 171 nfqriq52_1_1 NO
1743 2016-01-17 05:12:51 .03 D A 119 c-1864798816-20160117-01 YES
1744 2016-01-18 04:16:33 29.92 I 1 A 1578 nhqrlbd1_1_1 NO
1745 2016-01-18 04:42:59 .03 D A 120 c-1864798816-20160118-00 YES
1746 2016-01-18 04:45:13 5.33 L A 159 njqrld2p_1_1 NO
1747 2016-01-18 04:47:59 5.19 L A 169 nkqrld7v_1_1 NO
--查詢控制檔案備份
RMAN> LIST BACKUP OF CONTROLFILE;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
5 Full 17.17M DISK 00:00:00 03-DEC-15
BP Key: 5 Status: AVAILABLE Compressed: NO Tag: TAG20151203T233014
Piece Name: /oradata/bk/c-4224792395-20151203-00
Control File Included: Ckp SCN: 2165935 Ckp time: 03-DEC-15
由於源庫開啟了 CONTROLFILE AUTO BACKUP,將全備份時生成的控制檔案也複製到備庫。
[oracle@DB1 bk]$ scp c-4224792395-20151216-00 oracle@10.100.30.20:/oradata/bk
oracle@10.100.30.20's password:
c-4224792395-20151216-00 100% 17MB 17.4MB/s 00:00
2、在目標庫上進行 RMAN 恢復。
目標庫上面已經安裝了 ORACLE 軟體。
設定 ORACLE_SID
[oracle@DB2 ~]$ export ORACLE_SID=site
% rman NOCATALOG RMAN> CONNECT TARGET /
--DBID的值可以登入主庫的 RMAN 檢視到,也可以在 RMAN 的 CONTROLFILE AUTO BACKUP 生成的檔名中看到SET DBID 4224792395;
STARTUP NOMOUNT
恢復引數檔案
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oradata/bk/%F';
RESTORE SPFILE
TO PFILE '/u01/app/oracle/product/12.1.0/db_1/dbs/initsite.ora'
FROM AUTOBACKUP;
SHUTDOWN ABORT;
}
編輯生成的引數檔案,修改對應的控制檔案目錄、audit_file_dest、db_recovery_file_dest 等目錄,保證指定的目錄存在
oracle@DB2 dbs]$ vim initsite.ora
註釋掉 local_listener 引數,否則啟動會報錯
用新還原的引數檔案啟動資料庫
STARTUP FORCE NOMOUNT PFILE='/u01/app/oracle/product/12.1.0/db_1/dbs/initsite.ora';
執行控制檔案恢復
rman target /
SET DBID 4224792395;
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/oradata/bk/%F';
RESTORE CONTROLFILE FROM AUTOBACKUP;
ALTER DATABASE MOUNT;
}
登記傳輸過來的備份到 RMAN
CATALOG START WITH '/oradata/bk/';
檢查資料備份,刪除過期的備份
RMAN> crosscheck backup;
RMAN> delete noprompt expired backup;
檢視歸檔日誌備份的 SCN,決定介質恢復的時間點
RMAN> list backup of archivelog all;
List of Backup Sets
===================
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
54 146.61M DISK 00:00:00 16-DEC-15
BP Key: 54 Status: AVAILABLE Compressed: NO Tag: TAG20151216T031038
Piece Name: /oradata/bk/rman_1vqou75e_1_1
List of Archived Logs in backup set 54
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 206 20633382 15-DEC-15 20716789 16-DEC-15
1 207 20716789 16-DEC-15 20895202 16-DEC-15
1 208 20895202 16-DEC-15 20904669 16-DEC-15
BS Key Size Device Type Elapsed Time Completion Time
------- ---------- ----------- ------------ ---------------
56 8.00K DISK 00:00:00 16-DEC-15
BP Key: 56 Status: AVAILABLE Compressed: NO Tag: TAG20151216T031046
Piece Name: /oradata/bk/rman_21qou75m_1_1
List of Archived Logs in backup set 56
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 209 20904669 16-DEC-15 20904701 16-DEC-15
執行 RESTORE 命令,恢復資料檔案
RMAN> RESTORE DATABASE;
執行介質恢復
SQL> RECOVER DATABASE using backup controlfile UNTIL CHANGE 20716789;
Media recovery complete.
3、開啟資料庫
[oracle@DB2 site]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Wed Dec 16 11:50:22 2015
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
alter database open resetlogs
*
ERROR at line 1:
ORA-00392: log 5 of thread 1 is being cleared, operation not allowed
ORA-00312: online log 5 thread 1: '/u01/app/oracle/oradata/site/redo05.log'
出現報錯,清空報錯的日誌檔案
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 5;
Database altered.
開啟資料庫
Database altered.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-1873417/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12C新特性-RMAN恢復表Oracle
- RMAN備份異機恢復
- ORACLE 11.2.0.4 RAC RMAN異機恢復之ORA-15001Oracle
- oracle 異機恢復Oracle
- RMAN備份恢復典型案例——異機恢復未知DBID
- rman備份異機恢復(原創)
- Oracle RMAN恢復測試Oracle
- 【12c 庫異機恢復】實驗
- G017-ORACLE-MIGRATION-01 RMAN備份異機不完全恢復Oracle
- Oracle RMAN 表空間恢復Oracle
- 兩篇oracle異機恢復文章Oracle
- [20190718]12c rman新特性 表恢復.txt
- 12C grid CDB異機恢復+歸檔(DDL操作)
- Oracle 備份恢復篇之RMAN catalogOracle
- ORACLE DG從庫 Rman備份恢復Oracle
- Oracle 12c 備份與恢復Oracle
- 【12c】12c RMAN新特性之recover table(表級別恢復)
- 【資料遷移1】Oracle 10gR2 rman異機恢復實驗(FS->RAW)(1)Oracle 10g
- 【資料遷移1】Oracle 10gR2 rman異機恢復實驗(FS->RAW)(2)Oracle 10g
- 12C PDB使用RMAN的4種完全恢復場景
- RMAN增量恢復
- 透過搭建恢復目錄實現RMAN異地備份和恢復
- 【RMAN】Oracle12c以後rman 備份恢復命令參考Oracle
- oracle 12c rman備份pdbOracle
- Oracle 12c RMAN全攻略Oracle
- RMAN恢復實踐
- 通過rman為客戶實現linux下oracle11.2.0.4到windows下oracle同版本資料庫的異機恢復。LinuxOracleWindows資料庫
- oracle 12c 針對cdb的差異0備與對pdb進行恢復Oracle
- oracle ORA-01180 ORA-01110(rman恢復問題)Oracle
- NBU恢復Oracle通道完成後RMAN沒有進度Oracle
- RMAN資料庫恢復異常報錯ORA-01180資料庫
- Oracle 12c系列(八)|RMAN (FROM SERVICE)Oracle
- RMAN恢復之RMAN-06555處理
- Oracle asm磁碟損壞異常恢復OracleASM
- rman 增量備份恢復
- RMAN備份恢復技巧
- 【RMAN】Oracle11g透過rman升級到12cOracle
- Oracle9i RMAN 的優缺點及RMAN 備份及恢復步驟Oracle
- 7_Oracle truncate異常恢復之plsql修復OracleSQL