ORACLE 10G跨RESERLOGS及list incarnation

gaopengtttt發表於2009-01-08

學習筆記

   也許大家都知道在ORACLE中如果執行了不完全恢復當前的日誌檔案是不能在使用的,所以我們必須使用RESETLOGS選項來開啟資料庫。9I的時候要求我們不然全恢復過後需要馬上進行一次全備,也就是代表一個incarnation已經結束新的incarnation來臨,老的incarnation裡面的所有備份集是不能在新的incarnation中使用的(incarnation可以翻譯為化身),但是10G 突破了這樣的限制,在我看來新的incarnation不能使用老的incarnation的備份集是應當所以的,不過10G的這點突破也是一個很大進步了,那啥叫incarnation,其實很簡單一個RESETLOGS後就會出現新的incarnation,表示RMAN備份一個時代的結束。下面做下試驗,證明這兩點。

RMAN> list incarnation;

正在使用目標資料庫控制檔案替代恢復目錄

資料庫原型列表
DB 關鍵字  Inc 關鍵字 DB 名  DB ID            STATUS  重置 SCN  重置時間
------- ------- -------- ---------------- --- ---------- ----------
1       1       PP       2624386947       PARENT  1          09-3月 -04
2       2       PP       2624386947       CURRENT 318842     08-1月 -09

SQL> create table test
  2  as
  3  select * from dba_users;

RMAN> list archivelog all;


已存檔的日誌副本列表
關鍵字     Thrd Seq     S 短時間     名稱
------- ---- ------- - ---------- ----
1       1    6       A 08-1月 -09 E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00006_0
675595140.001
2       1    7       A 08-1月 -09 E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00007_0
675595140.001
3       1    8       A 08-1月 -09 E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00008_0
675595140.001

做全備

RMAN> backup format 'e:\data\data_%s_%p_%T.bak'
2> database plus archivelog delete all input
3>  format 'e:\arc\arc_%s_%p_%T.bak'
4> ;


啟動 backup 於 08-1月 -09
當前日誌已存檔
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在啟動存檔日誌備份集
通道 ORA_DISK_1: 正在指定備份集中的存檔日誌
輸入存檔日誌執行緒 =1 序列 =11 記錄 ID=6 時間戳=675602823
輸入存檔日誌執行緒 =1 序列 =12 記錄 ID=7 時間戳=675602826
輸入存檔日誌執行緒 =1 序列 =13 記錄 ID=8 時間戳=675602829
輸入存檔日誌執行緒 =1 序列 =14 記錄 ID=9 時間戳=675602830
輸入存檔日誌執行緒 =1 序列 =15 記錄 ID=10 時間戳=675602831
輸入存檔日誌執行緒 =1 序列 =16 記錄 ID=11 時間戳=675602832
輸入存檔日誌執行緒 =1 序列 =17 記錄 ID=12 時間戳=675602865
通道 ORA_DISK_1: 正在啟動段 1 於 08-1月 -09
通道 ORA_DISK_1: 已完成段 1 於 08-1月 -09
段 handle=E:\ARC\ARC_5_1_20090108.BAK comment=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02
通道 ORA_DISK_1: 正在刪除存檔日誌
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00011_0675595140.001
 ID=6 時間戳 =675602823
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00012_0675595140.001
 ID=7 時間戳 =675602826
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00013_0675595140.001
 ID=8 時間戳 =675602829
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00014_0675595140.001
 ID=9 時間戳 =675602830
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00015_0675595140.001
 ID=10 時間戳 =675602831
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00016_0675595140.001
 ID=11 時間戳 =675602832
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00017_0675595140.001
 ID=12 時間戳 =675602865
完成 backup 於 08-1月 -09

啟動 backup 於 08-1月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00001 name=E:\ORACLE\PRODUCT\10.1.0\ORADATA\PP\SYSTEM01.DB
輸入資料檔案 fno=00003 name=E:\ORACLE\PRODUCT\10.1.0\ORADATA\PP\SYSAUX01.DB
輸入資料檔案 fno=00002 name=E:\ORACLE\PRODUCT\10.1.0\ORADATA\PP\UNDOTBS01.D
輸入資料檔案 fno=00004 name=E:\ORACLE\PRODUCT\10.1.0\ORADATA\PP\USERS01.DBF
通道 ORA_DISK_1: 正在啟動段 1 於 08-1月 -09
通道 ORA_DISK_1: 已完成段 1 於 08-1月 -09
段 handle=E:\DATA\DATA_6_1_20090108.BAK comment=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:05:28
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
備份集中包括當前控制檔案
在備份集中包含當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 08-1月 -09
通道 ORA_DISK_1: 已完成段 1 於 08-1月 -09
段 handle=E:\DATA\DATA_7_1_20090108.BAK comment=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:03
完成 backup 於 08-1月 -09

啟動 backup 於 08-1月 -09
當前日誌已存檔
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在啟動存檔日誌備份集
通道 ORA_DISK_1: 正在指定備份集中的存檔日誌
輸入存檔日誌執行緒 =1 序列 =18 記錄 ID=13 時間戳=675603199
通道 ORA_DISK_1: 正在啟動段 1 於 08-1月 -09
通道 ORA_DISK_1: 已完成段 1 於 08-1月 -09
段 handle=E:\ARC\ARC_8_1_20090108.BAK comment=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02
通道 ORA_DISK_1: 正在刪除存檔日誌
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00018_0675595140.001
 ID=13 時間戳 =675603199
完成 backup 於 08-1月 -09
進行不完全恢復

RMAN> alter database open resetlogs;

資料庫已開啟

 

RMAN> list incarnation;


資料庫原型列表
DB 關鍵字  Inc 關鍵字 DB 名  DB ID            STATUS  重置 SCN  重置時間
------- ------- -------- ---------------- --- ---------- ----------
1       1       PP       2624386947       PARENT  1          09-3月 -04
2       2       PP       2624386947       PARENT  318842     08-1月 -09
3       3       PP       2624386947       CURRENT 335281     08-1月 -09

然後我們看到化身增加了。

然後建立TEST10表

 create table test10
 as
 select * from dba_users;

不完全恢復我沒有程式備份

然後再來一次恢復


RMAN> restore database;

啟動 restore 於 08-1月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=160 devtype=DISK

通道 ORA_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到E:\ORACLE\PRODUCT\10.1.0\ORADATA\PP\SYSTEM01.DBF
正將資料檔案00002恢復到E:\ORACLE\PRODUCT\10.1.0\ORADATA\PP\UNDOTBS01.DBF
正將資料檔案00003恢復到E:\ORACLE\PRODUCT\10.1.0\ORADATA\PP\SYSAUX01.DBF
正將資料檔案00004恢復到E:\ORACLE\PRODUCT\10.1.0\ORADATA\PP\USERS01.DBF
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = E:\DATA\DATA_2_1_20090108.BAK 標記 = TAG20090108T112325
通道 ORA_DISK_1: 恢復完成
完成 restore 於 08-1月 -09

RMAN> recover database;

啟動 recover 於 08-1月 -09
使用通道 ORA_DISK_1

正在開始介質的恢復

存檔日誌執行緒 1 序列 1 已作為檔案 E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00001_
75604590.001 存在於磁碟上
存檔日誌執行緒 1 序列 2 已作為檔案 E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00002_
75604590.001 存在於磁碟上
存檔日誌執行緒 1 序列 3 已作為檔案 E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00003_
75604590.001 存在於磁碟上
存檔日誌執行緒 1 序列 4 已作為檔案 E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00004_
75604590.001 存在於磁碟上
存檔日誌執行緒 1 序列 5 已作為檔案 E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00005_
75604590.001 存在於磁碟上
存檔日誌執行緒 1 序列 6 已作為檔案 E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00006_
75604590.001 存在於磁碟上
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00001_0675604590.001 線
 =1 序列 =1
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00002_0675604590.001 線
 =1 序列 =2
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00003_0675604590.001 線
 =1 序列 =3
存檔日誌檔名 =E:\ORACLE\PRODUCT\10.1.0\DB_1\RDBMS\ARC00004_0675604590.001 線
 =1 序列 =4
完成介質的恢復
完成 recover 於 08-1月 -09

OK 我使用的是老的化身的備份集,恢復到了新的化身。

RMAN> list incarnation
2> ;


資料庫原型列表
DB 關鍵字  Inc 關鍵字 DB 名  DB ID            STATUS  重置 SCN  重置時間
------- ------- -------- ---------------- --- ---------- ----------
1       1       PP       2624386947       PARENT  1          09-3月 -04
2       2       PP       2624386947       PARENT  318842     08-1月 -09
3       3       PP       2624386947       CURRENT 335281     08-1月 -09

結論 :1、 新的incarnation在RESERTLOGS後出現。

               2、10G恢復可以跨RESETLOGS點,也就是跨 incarnation;

如果有錯誤請指出 THX

 

 

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

相關文章