本篇文章为大家展示了如何研究reset incarnation,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
--首先在实体5上进行全库备份
RMAN> backup database format='c:\bak\%U.bak';
启动 backup 于 26-3月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=142 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00002 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00003 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00004 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 26-3月 -08
通道 ORA_DISK_1: 已完成段 1 于 27-3月 -08
段句柄=C:\BAK\0QJC96UQ_1_1.BAK 标记=TAG20080326T235922 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:05
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 27-3月 -08
通道 ORA_DISK_1: 已完成段 1 于 27-3月 -08
段句柄=C:\BAK\0RJC970R_1_1.BAK 标记=TAG20080326T235922 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04
完成 backup 于 27-3月 -08
--关闭数据库,删除当前日志文件,强制open resetlogs打开数据库
RMAN> shutdown immediate
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
数据库已打开
系统全局区域总计 314572800 字节
Fixed Size 1248768 字节
Variable Size 79692288 字节
Database Buffers 226492416 字节
Redo Buffers 7139328 字节
RMAN> shutdown immediate
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup mount
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 314572800 字节
Fixed Size 1248768 字节
Variable Size 79692288 字节
Database Buffers 226492416 字节
Redo Buffers 7139328 字节
RMAN> recover database;
启动 recover 于 27-3月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
正在开始介质的恢复
无法恢复介质
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: recover 命令 (在 03/27/2008 00:08:47 上) 失败
ORA-00283: recovery session canceled due to errors
RMAN-11003: 在分析/执行 SQL 语句期间失败: alter database recover if needed
start
ORA-00283: 恢复会话因错误而取消
ORA-19909: 数据文件 1 属于孤立的原型
ORA-01110: 数据文件 1: 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF'
RMAN> alter database open resetlogs;
数据库已打开
--打开数据库后,形成实体6
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORCL 1176767170 PARENT 1 10-3月 -08
2 2 ORCL 1176767170 PARENT 472611 25-3月 -08
3 3 ORCL 1176767170 PARENT 474163 25-3月 -08
4 4 ORCL 1176767170 PARENT 488631 26-3月 -08
5 5 ORCL 1176767170 PARENT 490308 26-3月 -08
6 6 ORCL 1176767170 CURRENT 506067 27-3月 -08
--再次关闭数据库,删除当前日志文件,通过sqlplus做open resetlogs,形成实体7
RMAN> shutdown immediate
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> quit
恢复管理器完成。
D:\>rman target / nocatalog
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 3月 27 00:18:13 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1176767170)
使用目标数据库控制文件替代恢复目录
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORCL 1176767170 PARENT 1 10-3月 -08
2 2 ORCL 1176767170 PARENT 472611 25-3月 -08
3 3 ORCL 1176767170 PARENT 474163 25-3月 -08
4 4 ORCL 1176767170 PARENT 488631 26-3月 -08
5 5 ORCL 1176767170 PARENT 490308 26-3月 -08
6 6 ORCL 1176767170 PARENT 506067 27-3月 -08
7 7 ORCL 1176767170 CURRENT 506961 27-3月 -08
--发现有对象丢失,需要进行基于时间的恢复,但丢失对象是发生在实体5的运行过程中,因此使用实体5的备份进行不完全恢复
RMAN> shutdown immediate
数据库已关闭
数据库已卸载
Oracle 实例已关闭
RMAN> startup mount
已连接到目标数据库 (未启动)
Oracle 实例已启动
数据库已装载
系统全局区域总计 314572800 字节
Fixed Size 1248768 字节
Variable Size 79692288 字节
Database Buffers 226492416 字节
Redo Buffers 7139328 字节
--直接执行恢复命令报错,因为当前是实体7,实体7的时间在需要被恢复的时间之后
RMAN> run{
2> sql 'alter session set nls_date_format="yyyy-mm-dd hh34:mi:ss"';
3> set until time='2008-3-27 00:02:00';
4> restore database;
5> recover database;
6> alter database open resetlogs;
7> }
sql 语句: alter session set nls_date_format="yyyy-mm-dd hh34:mi:ss"
正在执行命令: SET until clause
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: set 命令 (在 03/27/2008 00:28:18 上) 失败
RMAN-20207: UNTIL TIME 或 RECOVERY WINDOW 在 RESETLOGS 时间之前
--重置数据库实体为5,然后进行基于时间的恢复
RMAN> reset database to incarnation 5;
将数据库重置为原型 5
RMAN> run{
2> sql 'alter session set nls_date_format="yyyy-mm-dd hh34:mi:ss"';
3> set until time='2008-3-27 00:02:00';
4> restore database;
5> recover database;
6> alter database open resetlogs;
7> }
sql 语句: alter session set nls_date_format="yyyy-mm-dd hh34:mi:ss"
正在执行命令: SET until clause
启动 restore 于 27-3月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
正将数据文件00002恢复到E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
正将数据文件00003恢复到E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
正将数据文件00004恢复到E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在读取备份段 C:\BAK\0QJC96UQ_1_1.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = C:\BAK\0QJC96UQ_1_1.BAK 标记 = TAG20080326T235922
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:05
完成 restore 于 27-3月 -08
启动 recover 于 27-3月 -08
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 3 已作为文件 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OR
CL\ARCHIVELOG\2008_03_27\O1_MF_1_3_3YNWZ1KL_.ARC 存在于磁盘上
存档日志文件名 =E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\200
8_03_27\O1_MF_1_3_3YNWZ1KL_.ARC 线程 =1 序列 =3
介质恢复完成, 用时: 00:00:02
完成 recover 于 27-3月 -08
数据库已打开
--恢复完成,由于再次使用open resetlogs打开数据库,因此现在实体为8,而实体8的scn低于实体6、7
RMAN> list incarnation;
数据库原型列表
DB 关键字 Inc 关键字 DB 名 DB ID STATUS 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 1 ORCL 1176767170 PARENT 1 10-3月 -08
2 2 ORCL 1176767170 PARENT 472611 25-3月 -08
3 3 ORCL 1176767170 PARENT 474163 25-3月 -08
4 4 ORCL 1176767170 PARENT 488631 26-3月 -08
5 5 ORCL 1176767170 PARENT 490308 26-3月 -08
8 8 ORCL 1176767170 CURRENT 505314 27-3月 -08
6 6 ORCL 1176767170 ORPHAN 506067 27-3月 -08
7 7 ORCL 1176767170 ORPHAN 506961 27-3月 -08
RMAN>
从上面可以看得出,跨实体作恢复是可行的,只不过呢,呵呵,以前实体的备份肯定是要有的,否则可就回天无力了。
上述内容就是如何研究reset incarnation,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。