重置数据库的化身后进行数据库的恢复一问?

[复制链接]
查看11 | 回复9 | 2005-6-20 01:01:48 | 显示全部楼层 |阅读模式
请问我利用RMAN进行数据库的备份和恢复操作,在恢复目录中当前的数据库的化身号为888,我最近的备份是在5:00:00作的,我随后进行了一次不完全恢复,我恢复到6:00:00,当我重置了恢复目录后当前数据库的化身为1218,于是我进行如下操作:
reset database to incarnation 888;后,再次进行数据库的不完全恢复,恢复到5:30:00为什么提示:target database incarnation is not current in recovery catalog;,我的理解是我已经将化身号重置为打开数据库之前所存的那一个数据库版本,这样就可以再次利用先前的备份重新进行一数据库的恢复了,但不之这是为什么?望大家多多指教!先谢了。






回复

使用道具 举报

千问 | 2005-6-20 01:01:48 | 显示全部楼层
最初由 lqlayy 发布
[B]请问我利用RMAN进行数据库的备份和恢复操作,在恢复目录中当前的数据库的化身号为888,我最近的备份是在5:00:00作的,我随后进行了一次不完全恢复,我恢复到6:00:00,当我重置了恢复目录后当前数据库的化身为1218,于是我进行如下操作:
reset database to incarnation 888;后,再次进行数据库的不完全恢复,恢复到5:30:00为什么提示:target database incarnation is not current in recovery catalog;,我的理解是我已经将化身号重置为打开数据库之前所存的那一个数据库版本,这样就可以再次利用先前的备份重新进行一数据库的恢复了,但不之这是为什么?望大家多多指教!先谢了。





[/B]

你是用rman的备份,从5点开始,到5:30分左右结束吧?
所以只有恢复到5:30各数据文件的scn才一致.



回复

使用道具 举报

千问 | 2005-6-20 01:01:48 | 显示全部楼层
我没有看太明白,我是想这样也就是想利用改变数据库的化身的方法在一次不完全恢复之后重新进行一次不完全恢复,比如我误删了一个表,我进行完不完全恢复之后发现我的时间点选择的不对,这个表在我选择的时间之前已经删除了,我想利用之前的备份重新进行一次不完全恢复,注:在我进行不完全恢复之前并没有进行冷备份。
回复

使用道具 举报

千问 | 2005-6-20 01:01:48 | 显示全部楼层
没有人了吗?
回复

使用道具 举报

千问 | 2005-6-20 01:01:48 | 显示全部楼层
重置incarnation以后有没有恢复控制文件?
回复

使用道具 举报

千问 | 2005-6-20 01:01:48 | 显示全部楼层
过程如下:
RMAN> list incarnation of database;

数据库 Incarnations 列表
DB 关键字Inc 关键字 DB 名DB ID
CUR 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 15EBOOK3211332000 NO190578 10-2月 -05
1 16EBOOK3211332000 NO49333167 02-5月 -05
1 17EBOOK3211332000 NO49338553 02-5月 -05
1 18EBOOK3211332000 NO49542448 28-5月 -05
1 19EBOOK3211332000 NO49549607 20-6月 -05
1 20EBOOK3211332000 NO49551014 20-6月 -05
1 21EBOOK3211332000 NO49552004 20-6月 -05
1 2 EBOOK3211332000 YES 49580927 20-6月 -05 -------当前化身号
345 346 OEMREP 3250871955 YES 183768 28-5月 -05
RMAN> shutdown immediate;
数据库已关闭
数据库已卸载
Oracle 例程已关闭
RMAN> run{
2> startup mount;
3> allocate channel c1 type disk;
4> set until time "to_date('2005-06-25 16:00:00','yyyy-mm-dd hh24:mi:ss')";
5> restore database;
6> recover database;}
已连接到目标数据库 (未启动)
Oracle 例程已启动
数据库已加载
系统全局区域总计 152115804 字节
Fixed Size
453212 字节
Variable Size
92274688 字节
Database Buffers
58720256 字节
Redo Buffers
667648 字节
分配的通道: c1
通道 c1: sid=13 devtype=DISK
正在执行命令: SET until clause
启动 restore 于 25-6月 -05
通道 c1: 正在开始恢复数据文件备份集
通道 c1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\ORADATA\EBOOK\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\ORADATA\EBOOK\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\ORADATA\EBOOK\CWMLITE01.DBF
正将数据文件00004恢复到D:\ORACLE\ORADATA\EBOOK\DRSYS01.DBF
正将数据文件00005恢复到D:\ORACLE\ORADATA\EBOOK\EXAMPLE01.DBF
正将数据文件00006恢复到D:\ORACLE\ORADATA\EBOOK\INDX01.DBF
正将数据文件00007恢复到D:\ORACLE\ORADATA\EBOOK\ODM01.DBF
正将数据文件00008恢复到D:\ORACLE\ORADATA\EBOOK\TOOLS01.DBF
正将数据文件00009恢复到D:\ORACLE\ORADATA\EBOOK\USERS01.DBF
正将数据文件00010恢复到D:\ORACLE\ORADATA\EBOOK\XDB01.DBF
正将数据文件00011恢复到D:\ORACLE\ORADATA\EBOOK\OEM_REPOSITORY.DBF
通道 c1: 已恢复备份段 1
段 handle=D:\ORACLE\ORA92\DATABASE\0HGNS63Q_1_1 tag=TAG20050625T143848 params=NU
LL
通道 c1: 恢复完成
完成 restore 于 25-6月 -05
启动 recover 于 25-6月 -05
正在开始介质的恢复
完成介质的恢复
完成 recover 于 25-6月 -05
释放的通道: c1
RMAN> list incarnation of database;

数据库 Incarnations 列表
DB 关键字Inc 关键字 DB 名DB ID
CUR 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 15EBOOK3211332000 NO190578 10-2月 -05
1 16EBOOK3211332000 NO49333167 02-5月 -05
1 17EBOOK3211332000 NO49338553 02-5月 -05
1 18EBOOK3211332000 NO49542448 28-5月 -05
1 19EBOOK3211332000 NO49549607 20-6月 -05
1 20EBOOK3211332000 NO49551014 20-6月 -05
1 21EBOOK3211332000 NO49552004 20-6月 -05
1 2 EBOOK3211332000 YES 49580927 20-6月 -05
345 346 OEMREP 3250871955 YES 183768 28-5月 -05
RMAN> alter database open resetlogs;
数据库已打开
在恢复目录中注册的数据库的新实体化
正在启动全部恢复目录的 resync
完成全部 resync
RMAN> list incarnation of database;

数据库 Incarnations 列表
DB 关键字Inc 关键字 DB 名DB ID
CUR 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 15EBOOK3211332000 NO190578 10-2月 -05
1 16EBOOK3211332000 NO49333167 02-5月 -05
1 17EBOOK3211332000 NO49338553 02-5月 -05
1 18EBOOK3211332000 NO49542448 28-5月 -05
1 19EBOOK3211332000 NO49549607 20-6月 -05
1 20EBOOK3211332000 NO49551014 20-6月 -05
1 21EBOOK3211332000 NO49552004 20-6月 -05
1 2 EBOOK3211332000 NO49580927 20-6月 -05
1 452 EBOOK3211332000 YES 49637790 25-6月 -05 ------现在的化身号
345 346 OEMREP 3250871955 YES 183768 28-5月 -05
RMAN> reset database to incarnation 2;
//由于我已将数据库恢复到了出现错误后的时刻,我想重新进行一次不完全恢复,
因此在这我要将化身号重置为alter database open resetlogs;之前所存在的那一个数据库版本。
数据库重设为恢复目录中的原型 2
RMAN> list incarnation of database;

数据库 Incarnations 列表
DB 关键字Inc 关键字 DB 名DB ID
CUR 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 15EBOOK3211332000 NO190578 10-2月 -05
1 16EBOOK3211332000 NO49333167 02-5月 -05
1 17EBOOK3211332000 NO49338553 02-5月 -05
1 18EBOOK3211332000 NO49542448 28-5月 -05
1 19EBOOK3211332000 NO49549607 20-6月 -05
1 20EBOOK3211332000 NO49551014 20-6月 -05
1 21EBOOK3211332000 NO49552004 20-6月 -05
1 2 EBOOK3211332000 YES 49580927 20-6月 -05------我又改为resetlogs之前的化身号
1 452 EBOOK3211332000 NO49637790 25-6月 -05
345 346 OEMREP 3250871955 YES 183768 28-5月 -05
RMAN> shutdown immediate;
数据库已关闭
数据库已卸载
Oracle 例程已关闭
RMAN> run{
2> startup mount;
3> allocate channel c1 type disk;
4> set until time "to_date('2005-06-25 15:30:00','yyyy-mm-dd hh24:mi:ss')";
5> restore database;
6> recover database;}
已连接到目标数据库 (未启动)
Oracle 例程已启动
数据库已加载
系统全局区域总计 152115804 字节
Fixed Size
453212 字节
Variable Size
92274688 字节
Database Buffers
58720256 字节
Redo Buffers
667648 字节
分配的通道: c1
通道 c1: sid=13 devtype=DISK
正在执行命令: SET until clause
释放的通道: c1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of set command at 06/25/2005 16:30:46
RMAN-06004: ORACLE error from recovery catalog database: RMAN-20011: target data
base incarnation is not current in recovery catalog
RMAN>
请问我的数据库的化身号已经改过,为什么再次利用原来的备份进行不完全恢复不好用?
回复

使用道具 举报

千问 | 2005-6-20 01:01:48 | 显示全部楼层
重置后nomount恢复控制文件,不然你重置了,mount下恢复的是以前的数据文件,可是控制文件是当前的,控制文件里记录的resetlogs的scn,比你恢复的文件scn要大,肯定报错的了.
回复

使用道具 举报

千问 | 2005-6-20 01:01:48 | 显示全部楼层
听君一句话胜读十页书,我这里现在正常了,不过还有一问:
RMAN> shutdown;
数据库已卸载
Oracle 例程已关闭
RMAN> set dbid=3211332000
正在执行命令: SET DBID
RMAN> restore controlfile from 'E:\archive\CTL_561922641_20050625';
启动 restore 于 25-6月 -05
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=13 devtype=DISK
通道 ORA_DISK_1: 正在恢复控制文件
通道 ORA_DISK_1: 恢复完成
正在复制控制文件
输出文件名=D:\ORACLE\ORADATA\EBOOK\CONTROL01.CTL
输出文件名=D:\ORACLE\ORADATA\EBOOK\CONTROL02.CTL
输出文件名=D:\ORACLE\ORADATA\EBOOK\CONTROL03.CTL
输出文件名=D:\ORACLE\ORADATA\EBOOK\CONTROL04.CTL
完成 restore 于 25-6月 -05
RMAN> alter database mount;
数据库已加载
RMAN> run{
2> allocate channel c1 type disk;
3> set until time "to_date('2005-06-25 17:39:00','yyyy-mm-dd hh24:mi:ss')";
4> restore database;
5> recover database;
6> sql 'alter database open resetlogs';}
释放的通道: ORA_DISK_1
分配的通道: c1
通道 c1: sid=13 devtype=DISK
正在执行命令: SET until clause
启动 restore 于 25-6月 -05
通道 c1: 正在开始恢复数据文件备份集
通道 c1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\ORACLE\ORADATA\EBOOK\SYSTEM01.DBF
正将数据文件00002恢复到D:\ORACLE\ORADATA\EBOOK\UNDOTBS01.DBF
正将数据文件00003恢复到D:\ORACLE\ORADATA\EBOOK\CWMLITE01.DBF
正将数据文件00004恢复到D:\ORACLE\ORADATA\EBOOK\DRSYS01.DBF
正将数据文件00005恢复到D:\ORACLE\ORADATA\EBOOK\EXAMPLE01.DBF
正将数据文件00006恢复到D:\ORACLE\ORADATA\EBOOK\INDX01.DBF
正将数据文件00007恢复到D:\ORACLE\ORADATA\EBOOK\ODM01.DBF
正将数据文件00008恢复到D:\ORACLE\ORADATA\EBOOK\TOOLS01.DBF
正将数据文件00009恢复到D:\ORACLE\ORADATA\EBOOK\USERS01.DBF
正将数据文件00010恢复到D:\ORACLE\ORADATA\EBOOK\XDB01.DBF
正将数据文件00011恢复到D:\ORACLE\ORADATA\EBOOK\OEM_REPOSITORY.DBF
通道 c1: 已恢复备份段 1
段 handle=E:\ARCHIVE\DB_561922543_20050625 tag=TAG20050625T173538 params=NULL
通道 c1: 恢复完成
完成 restore 于 25-6月 -05
启动 recover 于 25-6月 -05
正在开始介质的恢复
存档日志线程 1 序列 1 已作为文件 D:\EBOOKARC\ARC00001.001 存在于磁盘上
存档日志文件名 =D:\EBOOKARC\ARC00001.001 线程 =1 序列 =1
无法找到存档日志
存档日志线程 =1 序列=2
释放的通道: c1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of recover command at 06/25/2005 17:56:08
RMAN-06054: media recovery requesting unknown log: thread 1 scn 49627549   ****为什么会出现这个错误提示??不过打开数据库后查看倒是一切正常!
我也恢复到了我想要恢复的时刻!
RMAN> alter database open resetlogs;
数据库已打开
在恢复目录中注册的数据库的新实体化
正在启动全部恢复目录的 resync
完成全部 resync
RMAN> list incarnation of database;

数据库 Incarnations 列表
DB 关键字Inc 关键字 DB 名DB ID
CUR 重置 SCN 重置时间
------- ------- -------- ---------------- --- ---------- ----------
1 15EBOOK3211332000 NO190578 10-2月 -05
1 16EBOOK3211332000 NO49333167 02-5月 -05
1 17EBOOK3211332000 NO49338553 02-5月 -05
1 18EBOOK3211332000 NO49542448 28-5月 -05
1 19EBOOK3211332000 NO49549607 20-6月 -05
1 20EBOOK3211332000 NO49551014 20-6月 -05
1 21EBOOK3211332000 NO49552004 20-6月 -05
1 2 EBOOK3211332000 NO49580927 20-6月 -05
1 854 EBOOK3211332000 NO49625330 25-6月 -05
1 926 EBOOK3211332000 YES 49627550 25-6月 -05
1 452 EBOOK3211332000 NO49637790 25-6月 -05
345 346 OEMREP 3250871955 YES 183768 28-5月 -05
RMAN>
回复

使用道具 举报

千问 | 2005-6-20 01:01:48 | 显示全部楼层
恢复到前一个对应物的某个时间需要thread是1sequence是1的归档日志,RMAN检查到归档目的地有可用的thread 1 sequence 1的日志,但是这个日志应该是你以后对应物的不是恢复所需要的,所以举错,如果有前一个对应物的归档,备份现在目的目录的日志,恢复前一个对应物的归档,在恢复数据文件做恢复.
至于你能恢复到指定时间也许你备份里已经包括了不需要日志前滚从做了,现在这样恢复相当于until cancel
回复

使用道具 举报

千问 | 2005-6-20 01:01:48 | 显示全部楼层
你的意思我没有全明白,我在不完全恢复之前的备份是这样产生的:
run{
allocate channel c1 type disk;
backup database;
backup archivelog all;
backup current controlfile;}先称为备份集1
你的前一个对应物,后一个对应物是指什么?
但是若如你所说为什么我第一次进行的不完全恢复就没有这个错误提示,
而在我恢复了控制文件后再重新进行不完全恢复就有这个提示?
我看了这个ARC00001.001是在备份集1中执行backup archivelog all之前产生的,即然在我的备份集中包括了归档日志,那么在恢复过程中这个日志就应是没有用的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行