概述
1、在删除后想利用RMAN全备恢复,但一开始便有问题,备份文件没得DBID,找了大半天也找不着,没办法,,直接利用RMAN备份恢复SPFILE、控制文件和数据文件不行。在这一过程中把目录结构、密码文件都建立起来,还oradim一个实例,进行RMAN还是需要DBID。
2、只有先建一个空库,然后再从RMAN备份进行恢复。连接进去,产生了新的DBID。
C:Documents and Settingsadmin>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 3月 29 21:14:15 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1242730612)
RMAN> show all;
使用目标数据库控制文件替代恢复目录
RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'C:ORACLEPRODUCT10.2.0DB_1DATABASES
NCFORCL.ORA'; # default
空库的时候找不到备份集
RMAN> list backup;
从指定的备份集文件恢复参数文件
RMAN> restore spfile to pfile 'e:backuppfile.ora' from 'E:BackupORCL_FULL_08
L9GA98_1_1.BAK';
启动 restore 于 29-3月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 已找到的自动备份: E:BackupORCL_FULL_08L9GA98_1_1.BAK
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成
完成 restore 于 29-3月 -10
从指定的备份集文件中恢复控制文件,错误就不管了!
RMAN> restore controlfile to 'e:backupcontrol01.ctl' from 'E:BackupORCL_FULL_08L9GA98_1_1.BAK';
启动 restore 于 29-3月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在复原控制文件
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: restore 命令 (在 03/29/2010 21:24:47 上) 失败
ORA-19870: 读取备份段 E:BACKUPORCL_FULL_08L9GA98_1_1.BAK 时出错
ORA-19563: control file 标题 (文件 E:BACKUPCONTROL01.CTL) 验证失败
RMAN> quit
RMAN-06900: 警告: 无法生成 V$RMAN_STATUS 或 V$RMAN_OUTPUT 行
RMAN-06901: 警告: 禁止更新 V$RMAN_STATUS 和 V$RMAN_OUTPUT 行
来自目标数据库的 ORACLE 错误:
恢复管理器完成。
参数文件及控制文件恢复过来了,现在好办了!
重新用恢复过来的参数文件及控制文件启动实例
C:Documents and Settingsadmin>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 3月 29 21:50:00 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接。
SQL> create spfile from pfile='e:backuppfile.ora';
文件已创建。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 226495364 bytes
Database Buffers 377487360 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
进入到RMAN看看效果,DBID找回来了。
C:Documents and Settingsadmin>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 3月 29 21:32:31 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库: ORCL (DBID=1234100162, 未打开)
同样可以看到备份集,现在应该可以恢复数据库了!
RMAN> list backup;
使用目标数据库控制文件替代恢复目录
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
1 Full 6.80M DISK 00:00:02 26-3月 -10
BP 关键字: 1 状态: AVAILABLE 已压缩: NO 标记: TAG20100326T000054
段名:E:BACKUPFULL_02L9G9LN_1_1.BAK
包括的控制文件: Ckp SCN: 992794 Ckp 时间: 26-3月 -10
包含的 SPFILE: 修改时间: 25-3月 -10
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
2 Full 6.80M DISK 00:00:02 26-3月 -10
BP 关键字: 2 状态: AVAILABLE 已压缩: NO 标记: TAG20100326T000202
段名:E:BACKUPFULL_04L9G9NQ_1_1.BAK
包括的控制文件: Ckp SCN: 992986 Ckp 时间: 26-3月 -10
包含的 SPFILE: 修改时间: 25-3月 -10
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
3 Full 6.80M DISK 00:00:02 26-3月 -10
BP 关键字: 3 状态: AVAILABLE 已压缩: NO 标记: TAG20100326T000538
段名:E:BACKUPFULL_06L9G9UI_1_1.BAK
包括的控制文件: Ckp SCN: 993119 Ckp 时间: 26-3月 -10
包含的 SPFILE: 修改时间: 25-3月 -10
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
4 Full 610.73M DISK 00:00:43 26-3月 -10
BP 关键字: 4 状态: AVAILABLE 已压缩: NO 标记: TAG20100326T001034
段名:E:BACKUPORCL_FULL_07L9GA7Q_1_1.BAK
备份集 4 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 994339 26-3月 -10 D:ORADATAORCLSYSTEM01.DBF
2 Full 994339 26-3月 -10 D:ORADATAORCLUNDOTBS01.DBF
3 Full 994339 26-3月 -10 D:ORADATAORCLSYSAUX01.DBF
4 Full 994339 26-3月 -10 D:ORADATAORCLUSERS01.DBF
5 Full 994339 26-3月 -10 D:ORADATAORCLMYUSER.DBF
6 Full 994339 26-3月 -10 D:ORADATAORCLPERFSTAT.DBF
RMAN> restore database;
启动 restore 于 29-3月 -10
启动 implicit crosscheck backup 于 29-3月 -10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
已交叉检验的 4 对象
完成 implicit crosscheck backup 于 29-3月 -10
启动 implicit crosscheck copy 于 29-3月 -10
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 29-3月 -10
搜索恢复区域中的所有文件
正在编制文件目录...
没有为文件编制目录
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:ORADATAORCLSYSTEM01.DBF
正将数据文件00002恢复到D:ORADATAORCLUNDOTBS01.DBF
正将数据文件00003恢复到D:ORADATAORCLSYSAUX01.DBF
正将数据文件00004恢复到D:ORADATAORCLUSERS01.DBF
正将数据文件00005恢复到D:ORADATAORCLMYUSER.DBF
正将数据文件00006恢复到D:ORADATAORCLPERFSTAT.DBF
通道 ORA_DISK_1: 正在读取备份段 E:BACKUPORCL_FULL_07L9GA7Q_1_1.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:BACKUPORCL_FULL_07L9GA7Q_1_1.BAK 标记 = TAG20100326T001034
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:45
完成 restore 于 29-3月 -10
成功恢复!
RMAN> alter database open resetlogs;
MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: alter db 命令 (在 03/29/2010 21:36:30 上) 失败
ORA-01152: 文件 1 没有从过旧的备份中恢复
ORA-01110: 数据文件 1: 'D:ORADATAORCLSYSTEM01.DBF'
出现这样的错误,很奇怪!
查看change#没什么不一样,,最终还是打不开!
SQL> select checkpoint_change# from v$database;
CHECKPOINT_CHANGE#
------------------
993690
SQL> select file#,checkpoint_change# from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 994339
2 994339
3 994339
4 994339
5 994339
6 994339
已选择6行。
SQL> select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 994339
2 994339
3 994339
4 994339
5 994339
6 994339
已选择6行。
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 994339 (在 03/26/2010 00:10:35 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:ORADATAFLASH_RECOVERY_AREAORCLARCHIVELOG2010_03_29O1_MF_1_20_%U_.
ORA-00280: 更改 994339 (用于线程 1) 在序列 #20 中
指定日志: {=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 3 需要更多的恢复来保持一致性
ORA-01110: 数据文件 3: 'D:ORADATAORCLSYSAUX01.DBF'
ORA-01112: 未启动介质恢复
SQL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01194: 文件 3 需要更多的恢复来保持一致性
ORA-01110: 数据文件 3: 'D:ORADATAORCLSYSAUX01.DBF'
SQL> recover database using backup controlfile until cancel;
ORA-00279: 更改 994339 (在 03/26/2010 00:10:35 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:ORADATAFLASH_RECOVERY_AREAORCLARCHIVELOG2010_03_29O1_MF_1_20_%U_.
ORA-00280: 更改 994339 (用于线程 1) 在序列 #20 中
指定日志: {=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误
ORA-01194: 文件 3 需要更多的恢复来保持一致性
ORA-01110: 数据文件 3: 'D:ORADATAORCLSYSAUX01.DBF'
ORA-01112: 未启动介质恢复
SQL> select file#,checkpoint_change# from v$datafile;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 994339
2 994339
3 994339
4 994339
5 994339
6 994339
已选择6行。
SQL> select file#,checkpoint_change# from v$datafile_header;
FILE# CHECKPOINT_CHANGE#
---------- ------------------
1 994339
2 994339
3 994339
4 994339
5 994339
6 994339
已选择6行。
反正是有问题,,想想可能与新建的空库有关,于是关闭数据库,删除所有数据文件,
SQL> shutdown immediate;
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
C:Documents and Settingsadmin>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 3月 29 22:01:49 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库: ORCL (DBID=1234100162, 未打开)
RMAN> restore database;
启动 restore 于 29-3月 -10
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=155 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:ORADATAORCLSYSTEM01.DBF
正将数据文件00002恢复到D:ORADATAORCLUNDOTBS01.DBF
正将数据文件00003恢复到D:ORADATAORCLSYSAUX01.DBF
正将数据文件00004恢复到D:ORADATAORCLUSERS01.DBF
正将数据文件00005恢复到D:ORADATAORCLMYUSER.DBF
正将数据文件00006恢复到D:ORADATAORCLPERFSTAT.DBF
通道 ORA_DISK_1: 正在读取备份段 E:BACKUPORCL_FULL_07L9GA7Q_1_1.BAK
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:BACKUPORCL_FULL_07L9GA7Q_1_1.BAK 标记 = TAG20100326T001034
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:55
完成 restore 于 29-3月 -10
重新启动数据库,,OK!
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250428 bytes
Variable Size 226495364 bytes
Database Buffers 377487360 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
SQL> alter database open resetlogs;
数据库已更改。
总结:
1、走歪路的原因出现在第一步,,应该来说只需要找个一个参数文件将实例启动到NOMOUNT状态即可恢复参数文件及控制文件,后续的工作就简单多了·!
2 、在备份的时候要注意将 DBID 包含在备份文件名中,这样会省去更多的麻烦!来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9932141/viewspace-630723/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9932141/viewspace-630723/
最后
以上就是轻松白云为你收集整理的利用rman全备恢复删除的数据库的全部内容,希望文章能够帮你解决利用rman全备恢复删除的数据库所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复