/* 2008/06/04
*环境:Windows XP +Oracle10.2.0.1
*循序渐进oracle——数据库管理、优化与备份恢复
*第7章:备份与恢复之RMAN的简单备份与恢复
*/
7.7.3 RMAN的备份与恢复(丢失所有的controlfile,datafile,redofile)
1、启动控制文件自动备份
>rman target/
>show all;
>RMAN> configure controlfile autobackup on;
旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数
RMAN> backup database tag=full20080604 plus archivelog;
2、模拟介质损坏
RMAN> shutdown immediate
删除$oracle_HOME\oradata\sid\下所有的文件,即删除controlfile,datafile,redofile
3、启动报错进行恢复
C:\>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 6月 4 08:07:45 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 272629760 bytes
Fixed Size 1248476 bytes
Variable Size 100664100 bytes
Database Buffers 163577856 bytes
Redo Buffers 7139328 bytes
ORA-00205: ?????????, ??????, ???????
C:\>rman target/
恢复管理器: Release 10.2.0.1.0 - Production on 星期三 6月 4 08:08:21 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: risenet (未装载)
先还原控制文件:
RMAN> restore controlfile to 'g:\control01.ctl' from autobackup;
启动 restore 于 04-6月 -08
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
恢复区域目标: G:\oracle\product\10.2.0/flash_recovery_area
用于搜索的数据库名 (或数据库的唯一名称): RISENET
通道 ORA_DISK_1: 在恢复区域中找到自动备份
通道 ORA_DISK_1: 已找到的自动备份: G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\
RISENET\AUTOBACKUP\2008_06_04\O1_MF_N_656496109_44CPVGG6_.BKP
通道 ORA_DISK_1: 从自动备份复原控制文件已完成
完成 restore 于 04-6月 -08
然后把改文件拷贝三份到$oracle_HOME\oradata\sid\下,分别为
control01.ctl,control02.ctl,control03.ctl
把数据库到mount状态下
RMAN> sql 'alter database mount';
sql 语句: alter database mount
释放的通道: ORA_DISK_1
然后还原所有的数据
RMAN> restore database;
启动 restore 于 04-6月 -08
启动 implicit crosscheck backup 于 04-6月 -08
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
已交叉检验的 12 对象
完成 implicit crosscheck backup 于 04-6月 -08
启动 implicit crosscheck copy 于 04-6月 -08
使用通道 ORA_DISK_1
完成 implicit crosscheck copy 于 04-6月 -08
搜索恢复区域中的所有文件
正在编制文件目录...
目录编制完毕
已列入目录的文件的列表
=======================
文件名: G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\AUTOBACKUP\2008_06_
04\O1_MF_N_656496109_44CPVGG6_.BKP
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSTEM01.DBF
正将数据文件00002恢复到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\UNDOTBS01.DBF
正将数据文件00003恢复到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\SYSAUX01.DBF
正将数据文件00004恢复到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\USERS01.DBF
正将数据文件00005恢复到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\RISE.DBF
正将数据文件00006恢复到G:\ORACLE\PRODUCT\10.2.0\ORADATA\RISENET\MZL.DBF
通道 ORA_DISK_1: 正在读取备份段 G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RIS
ENET\BACKUPSET\2008_06_04\O1_MF_NNNDF_FULL20080604_44CPRQHO_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\BACKUPSET\2008_06_
04\O1_MF_NNNDF_FULL20080604_44CPRQHO_.BKP 标记 = FULL20080604
通道 ORA_DISK_1: 恢复完成, 用时: 00:01:05
完成 restore 于 04-6月 -08
数据文件已经还原,进行恢复
RMAN> recover database;
启动 recover 于 04-6月 -08
使用通道 ORA_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 6 已作为文件 G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RI
SENET\ARCHIVELOG\2008_06_04\O1_MF_1_6_44CPV4P0_.ARC 存在于磁盘上
存档日志文件名 =G:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\RISENET\ARCHIVELOG\
2008_06_04\O1_MF_1_6_44CPV4P0_.ARC 线程 =1 序列 =6
无法找到存档日志
存档日志线程 =1 序列=7
上面只恢复到归档日志6,日志7是联机重做日志,已经丢失。所以联机重做日志文件文件没有了,丢失了联
机重做日志的数据。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 5
下一个存档日志序列 7
当前日志序列 7
到目前为止,恢复了controlfile,datafile,还差redo文件
RMAN> sql 'alter database open resetlogs';
sql 语句: alter database open resetlogs
用“alter database open resetlogs”语句则重新生成redofile,日志序列重新复位。
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------------------
risenet OPEN
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 0
下一个存档日志序列 1
当前日志序列 1
用"alter database open resetlogs"最好重新进行备份.
这样简单恢复了一次不完全恢复。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12778571/viewspace-331113/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12778571/viewspace-331113/