ORACLE 10G跨RESERLOGS及list incarnation

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 学习笔记    也许大家都知道在ORACLE中如果执行了不完全恢复当前的日志文件是不能在使用的,所以我们必须使用RESETLOGS选项来打开数据库。9I的时候要求我们不然全恢复过后需要马上进行一次全备,也就是代表一个incarnation已经结束新的incar...

学习笔记

   也许大家都知道在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

 

 

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
Oracle 关系型数据库 数据库
|
Oracle 关系型数据库 数据库
❤️Docker中只需2步即可拥有Oracle 10G环境,史上最快部署❤️
❤️Docker中只需2步即可拥有Oracle 10G环境,史上最快部署❤️
1262 1
❤️Docker中只需2步即可拥有Oracle 10G环境,史上最快部署❤️
|
SQL Oracle 关系型数据库
Oracle 10g与Oracle 11g之间的导入与导出
Oracle 10g与Oracle 11g之间的导入与导出
|
存储 Oracle 关系型数据库
Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
|
Oracle 关系型数据库 C语言

推荐镜像

更多