oracle實驗記錄 (恢復-rman reset incatnation(1))
接 使用resetlogs open後資料檔案恢復
實驗下跨resetlogs 恢復db
簡單說下resetlogs作用:
resetlogs 不會重新設定SCN為0,只是將log sequence#設定為1,SCN 不變,resetlog open後,SCN為應用日誌的最後一條日誌記錄的SCN號+1
resetlog open後oracle將clear所有current logfile中未應用的redo record,將控制檔案中記錄的 日誌序號重新設定為1
當不完全恢復後datafile的SCN 與controlfile SCN,redo ,不一樣需要resetlogs open來 強制 同步,每次resetlog open後將產生一個incarnation,且需要ADD TEMPFILE
先備份一下db
C:\>rman target /
恢復管理器: Release 10.2.0.1.0 - Production on 星期五 10月 9 16:02:56 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: XH (DBID=3093395309)
RMAN> list backup;
使用目標資料庫控制檔案替代恢復目錄
RMAN> backup database;
啟動 backup 於 09-10月-09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=141 devtype=DISK
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSTEM01.DBF
輸入資料檔案 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\SYSAUX01.DBF
輸入資料檔案 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\EXAMPLE01.DBF
輸入資料檔案 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\UNDOTBS01.DBF
輸入資料檔案 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\XH\USERS01.DBF
輸入資料檔案 fno=00009 name=D:\XHDATAFILE\OUTLINE.DBF
輸入資料檔案 fno=00007 name=D:\XHDATAFILE\XHTEST.DBF
輸入資料檔案 fno=00008 name=D:\XHDATAFILE\XHTR.DBF
輸入資料檔案 fno=00010 name=D:\XHDATAFILE\SMALLFILE.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 09-10月-09
通道 ORA_DISK_1: 已完成段 1 於 09-10月-09
段控制程式碼=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_10_09\O1_MF_N
NNDF_TAG20091009T160347_5DXVM5MK_.BKP 標記=TAG20091009T160347 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:55
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
備份集中包括當前控制檔案
在備份集中包含當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 09-10月-09
通道 ORA_DISK_1: 已完成段 1 於 09-10月-09
段控制程式碼=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_10_09\O1_MF_N
CSNF_TAG20091009T160347_5DXVNY3X_.BKP 標記=TAG20091009T160347 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:03
完成 backup 於 09-10月-09
RMAN>
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 CURRENT
3 UNUSED
2 UNUSED
SQL> select count(*) from tr.t1;
COUNT(*)
----------
1003
SQL> select count(*) from v$archived_log;
COUNT(*)
----------
56
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1557686
SQL> truncate table tr.t1;
表被截斷。
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1557734
SQL> select count(*) from tr.t1;
COUNT(*)
----------
0
SQL> alter system switch logfile;
系統已更改。
SQL> alter system checkpoint;
系統已更改。
SQL> select count(*) from v$archived_log;
COUNT(*)
----------
57
RMAN> run{startup force mount;
2> set until scn=1557686;
3> restore database;
4> recover database;
5> sql 'alter database open resetlogs';}
Oracle 例項已啟動
資料庫已裝載
正在開始介質的恢復
介質恢復完成, 用時: 00:00:08
完成 recover 於 09-10月-09
sql 語句: alter database open resetlogs
SQL> select count(*) from v$archived_log;
COUNT(*)
----------
58
SQL> select count(*) from tr.t1;
COUNT(*)
----------
1003
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1557971
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 UNUSED
3 UNUSED
2 CURRENT
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
1557688
SQL> select checkpoint_change# from v$datafile;
CHECKPOINT_CHANGE#
------------------
1557688
1557688
1557688
1557688
1557688
1557688
1557688
1557688
1557688
已選擇9行。
SQL> select checkpoint_change# from v$datafile_header;
CHECKPOINT_CHANGE#
------------------
1557688
1557688
1557688
1557688
1557688
1557688
1557688
1557688
1557688
已選擇9行。
SQL> insert into tr.t1 values(1,2);
已建立 1 行。
SQL> commit;
提交完成。
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 UNUSED
3 UNUSED
2 CURRENT
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1559092
SQL> select count(*) from tr.t1;
COUNT(*)
----------
1004
SQL> select count(*) from v$archived_log;
COUNT(*)
----------
58
SQL> alter system switch logfile;
系統已更改。
SQL> alter system checkpoint;
系統已更改。
使用resetlogs前備份 恢復
RMAN> run{ startup force mount;
2> restore database;
3> recover database;
4> }
RMAN> sql 'alter database open';
sql 語句: alter database open
SQL> select count(*) from v$archived_log;
COUNT(*)
----------
60
SQL> select count(*) from tr.t1;
COUNT(*)
----------
1004
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1579352
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
3 CURRENT
2 INACTIVE
現在要求恢復到resetlogs前時間點 SCN 1557686 既ROW 1003時候
RMAN> list incarnation of database;
資料庫原型列表
DB 關鍵字 Inc 關鍵字 DB 名 DB ID STATUS 重置 SCN 重置時間
------- ------- -------- ---------------- --- ---------- ----------
2 2 XH 3093395309 PARENT 534907 18-9月 -09
1 1 XH 3093395309 PARENT 1511693 09-10月-09
3 3 XH 3093395309 ORPHAN 1512986 09-10月-09
4 4 XH 3093395309 PARENT 1532869 09-10月-09
5 5 XH 3093395309 PARENT 1533467 09-10月-09
6 6 XH 3093395309 PARENT 1533644 09-10月-09
7 7 XH 3093395309 PARENT 1554422 09-10月-09
8 8 XH 3093395309 PARENT 1554479 09-10月-09
9 9 XH 3093395309 PARENT 1555247 09-10月-09
10 10 XH 3093395309 PARENT 1555988 09-10月-09
11 11 XH 3093395309 CURRENT 1557687 09-10月-09
SQL> desc v$database_incarnation;
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
INCARNATION# NUMBER
RESETLOGS_CHANGE# NUMBER
RESETLOGS_TIME DATE
PRIOR_RESETLOGS_CHANGE# NUMBER
PRIOR_RESETLOGS_TIME DATE
STATUS VARCHAR2(7)
RESETLOGS_ID NUMBER
PRIOR_INCARNATION# NUMBER
FLASHBACK_DATABASE_ALLOWED VARCHAR2(26)
INCARNATION# NUMBER Record ID for the branch record in the control file
RESETLOGS_CHANGE# NUMBER Resetlogs system change number (SCN) for the incarnation of the current row
RESETLOGS_TIME DATE Resetlogs timestamp for the incarnation of the current row
PRIOR_RESETLOGS_CHANGE# NUMBER Resetlogs SCN for the previous incarnation
PRIOR_RESETLOGS_TIME DATE Resetlogs timestamp for the previous incarnation
STATUS VARCHAR2(7) Incarnation status:
ORPHAN - Orphan incarnation
CURRENT - Current incarnation of the database
PARENT - Parent of the current incarnation
RESETLOGS_ID NUMBER Branch ID for the incarnation of the current row (used by user-managed recovery/RMAN restore to get unique names for archived logs across
incarnations)
PRIOR_INCARNATION# NUMBER Parent incarnation record ID if nonzero
FLASHBACK_DATABASE_ALLOWED VARCHAR2(26) Indicate whether or not Flashback Database can be performed into SCNs or timestamps in the incarnation. A value of
YES means that you can flashback to some point in that incarnation. A value of NO indicates that you cannot flashback into the incarnation.
RMAN> reset database to incarnation 10~~~~~~~~~~~需要在mount階段設定
2> ;
RMAN-03009: reset 命令 (default 通道上, 在 10/09/2009 17:40:19 上) 失敗
ORA-19910: 不能更改控制檔案中的恢復目標原型
ORA-19910: can not change recovery target incarnation in control file
Cause: The RESET DATABASE TO INCARNATION command was used while the database is open. This is not allowed.
Action: Close the database then re-issue the command.
RMAN> shutdown immediate;
資料庫已關閉
資料庫已解除安裝
Oracle 例項已關閉
RMAN> startup mount;
RMAN> reset database to incarnation 10;
RMAN> run{set until scn=1557686;
2> restore database;
3> recover database;
4> sql 'alter database open resetlogs';}
正在執行命令: SET until clause
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 UNUSED
3 CURRENT
2 UNUSED
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1557977
SQL> select count(*) from tr.t1;
COUNT(*)
----------
1003
SQL> select count(*) from v$archived_log;
COUNT(*)
----------
60
RMAN> list incarnation of database;
資料庫原型列表
DB 關鍵字 Inc 關鍵字 DB 名 DB ID STATUS 重置 SCN 重置時間
------- ------- -------- ---------------- --- ---------- ----------
2 2 XH 3093395309 PARENT 534907 18-9月 -09
1 1 XH 3093395309 PARENT 1511693 09-10月-09
3 3 XH 3093395309 ORPHAN 1512986 09-10月-09
4 4 XH 3093395309 PARENT 1532869 09-10月-09
5 5 XH 3093395309 PARENT 1533467 09-10月-09
6 6 XH 3093395309 PARENT 1533644 09-10月-09
7 7 XH 3093395309 PARENT 1554422 09-10月-09
8 8 XH 3093395309 PARENT 1554479 09-10月-09
9 9 XH 3093395309 PARENT 1555247 09-10月-09
10 10 XH 3093395309 PARENT 1555988 09-10月-09
11 11 XH 3093395309 ORPHAN 1557687 09-10月-09
12 12 XH 3093395309 CURRENT 1557687 09-10月-09
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-616176/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle實驗記錄 (恢復-rman恢復)Oracle
- oracle實驗記錄 (恢復-rman維護(1))Oracle
- oracle實驗記錄 (恢復-rman catalog)Oracle
- oracle實驗記錄 (恢復-rman保留策略)Oracle
- oracle實驗記錄 (恢復-rman維護(2))Oracle
- oracle實驗記錄 (恢復-rman增量備份)Oracle
- oracle實驗記錄 (恢復-rman操作delete(all) input )Oracledelete
- oracle實驗記錄 (恢復-rman基於控制檔案的恢復)Oracle
- oracle實驗記錄 (恢復-完全恢復)Oracle
- oracle實驗記錄 (恢復-rman操作(設定&備份))Oracle
- oracle實驗記錄 (恢復-redo)Oracle
- oracle實驗記錄 (恢復-表空間基於時間點恢復(rman))Oracle
- oracle實驗記錄 (oracle reset parameter)Oracle
- oracle實驗記錄 (恢復read only tablespace(1))Oracle
- oracle實驗記錄 (恢復-不完全恢復)Oracle
- oracle實驗記錄 (oracle 10G dataguard(9)rman恢復與dg)Oracle
- oracle實驗記錄Rman duplicate database(1)OracleDatabase
- oracle實驗記錄(恢復-checkpoint cnt)Oracle
- oracle實驗記錄 (可恢復session)OracleSession
- oracle實驗記錄 (恢復-關於控制檔案(1))Oracle
- [記錄]oracle RMAN 備份恢復總結Oracle
- oracle實驗記錄 (恢復-使用resetlogs open前備份恢復)Oracle
- oracle實驗記錄 (恢復-關於熱備份)Oracle
- oracle實驗記錄 (恢復read only tablespace(2))Oracle
- oracle實驗記錄 (transport tablespace(Rman))Oracle
- oracle實驗記錄 (恢復-恢復未備份的資料檔案)Oracle
- oracle實驗記錄 (恢復-關於控制檔案(2))Oracle
- oracle實驗記錄 (恢復-關於控制檔案(3))Oracle
- oracle實驗記錄 (恢復-關於控制檔案(4))Oracle
- Oracle 10g使用RMAN恢復目錄筆記Oracle 10g筆記
- oracle實驗記錄Rman duplicate database 2OracleDatabase
- oracle實驗記錄 (恢復-表空間基於時間點恢復(手動))Oracle
- ORACLE RMAN異機異目錄恢復Oracle
- rman之建立恢復目錄筆記筆記
- oracle實驗記錄 (oracle 10G rman transport database)OracleDatabase
- oracle實驗記錄 (rman 備份檢查&preview)OracleView
- Oracle恢復實驗(一)Oracle
- Oracle恢復實驗(二)Oracle