我们这次做的前提就是在重装操作系统的时候,只保留的原来数据库的数据文件、控制文件、重做日志文件,以及rman的database全备和archivelog的备份——我们假设只保留了以上文件,其他文件,包括spfile和pfile都已经被删除,而且我们的oracle相关表空间都已经改变过,如默认的undo表空间叫TS_UNDO_01。
在重装操作系统之前我们先用rman进行全备:备份database ,controlfile,archivelog。 数据库修复联系QQ:2-1-4-4-5-5-9-6-9
D:\Back Updb bakRMAN_BK>rman nocatalog target /
恢复管理器: 版本9.2.0.1.0 - Production 数据库修复中心db-recoveryCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
连接到目标数据库: ORALOCAL (DBID=3826047702)正在使用目标数据库控制文件替代恢复目录数据库修复联系QQ:2-1-4-4-5-5-9-6-9RMAN> 捷定数据库修复中心
在这里我们使用nocatalog备份,因为如果用catalog备份,相关的备份信息会保存在数据库中,当数据库重装的时候,新的数据库是没有这些信息的,而老的控制文件由于新的spfile中的部分指示有误还加载不上去,startup mount的时候会出错。因此我们干脆就使用nocatalog备份,将备份的信息保存在controlfile中。 数据库修复www.db-recovery.com
登陆rman后,我们来更改一下一些备份参数
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; # 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 SNAPSHOT CONTROLFILE NAME TO ‘D:ORACLEORA92DATABASESNCFORALOCAL.ORA’; # defaultwww.db-recovery.com————————————————————————- 数据库修复咨询电话021-3126-5210
RMAN>
数据库修复联系QQ:2-1-4-4-5-5-9-6-9
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
新的 RMAN 配置参数:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;已成功存储新的 RMAN 配置参数 数据恢复finddata.netRMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;已成功存储新的 RMAN 配置参数捷定数据库修复中心RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘D:Back Updb bakRMAN_BK%F_CTL.RMN’;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘D:Back Updb bakRMAN_BK%F_CTL.RMN’;已成功存储新的 RMAN 配置参数 www.db-recovery.comRMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
www.db-recovery.comCONFIGURE DEVICE TYPE DISK PARALLELISM 2;已成功存储新的 RMAN 配置参数 捷定数据库修复中心
RMAN>
数据库修复中心db-recovery
RMAN> show all; www.db-recovery.com
RMAN 配置参数为:CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # defaultCONFIGURE CONTROLFILE AUTOBACKUP ON;CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘D:Back Updb bakRMAN_BK%F_CTL.RMN’;CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
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 SNAPSHOT CONTROLFILE NAME TO ‘D:ORACLEORA92DATABASESNCFORALOCAL.ORA’; # default 数据恢复finddata.netRMAN> 数据库修复中心db-recovery
Ok,我们开始用rman进行备份:
RMAN> run {
数据库修复中心db-recovery2> backup database 数据库修复www.db-recovery.com
3> tag ‘full_db_20060910′
数据库修复咨询电话021-3126-52104> format ‘D:Back Updb bakRMAN_BKfull_db_20060910_%u%s%p.RMN’
www.db-recovery.com
5> include current controlfile;
数据库修复咨询电话021-3126-5210
6> backup archivelog all 数据库修复联系QQ:2-1-4-4-5-5-9-6-9
7> tag ‘arch_20060910′ 数据库修复中心db-recovery
8> format ‘D:Back Updb bakRMAN_BKarch_20060910_%u%s%p.RMN’ 数据库修复联系QQ:2-1-4-4-5-5-9-6-9
9> delete input;} 数据库修复中心db-recovery
启动 backup 于 10-9月 -06
数据库修复联系QQ:2-1-4-4-5-5-9-6-9使用通道 ORA_DISK_1 www.db-recovery.com
使用通道 ORA_DISK_2
数据库修复咨询电话021-3126-5210
通道 ORA_DISK_1: 正在启动 full 数据文件备份集 捷定数据库修复中心
通道 ORA_DISK_1: 正在指定备份集中的数据文件 数据恢复finddata.net
输入数据文件 fno=00011 name=D:ORACLEORADATAORALOCALPERFSTAT.DBF
数据库修复咨询电话021-3126-5210输入数据文件 fno=00005 name=D:ORACLEORADATAORALOCALEXAMPLE01.DBF
数据库修复www.db-recovery.com
输入数据文件 fno=00006 name=D:ORACLEORADATAORALOCALINDX01.DBF
捷定数据库修复中心
输入数据文件 fno=00009 name=D:ORACLEORADATAORALOCALTS_RMAN_01.DBF 数据库修复咨询电话021-3126-5210
输入数据文件 fno=00003 name=D:ORACLEORADATAORALOCALCWMLITE01.DBF
数据库修复中心db-recovery输入数据文件 fno=00004 name=D:ORACLEORADATAORALOCALDRSYS01.DBF
数据库修复中心db-recovery输入数据文件 fno=00008 name=D:ORACLEORADATAORALOCALTOOLS01.DBF
www.db-recovery.com通道 ORA_DISK_1: 正在启动段 1 于 10-9月 -06 数据库修复www.db-recovery.com
通道 ORA_DISK_2: 正在启动 full 数据文件备份集 www.db-recovery.com
通道 ORA_DISK_2: 正在指定备份集中的数据文件 www.db-recovery.com
备份集中包括当前控制文件
数据恢复finddata.net
输入数据文件 fno=00001 name=D:ORACLEORADATAORALOCALSYSTEM01.DBF 数据库修复联系QQ:2-1-4-4-5-5-9-6-9
输入数据文件 fno=00010 name=D:ORACLEORADATAORALOCALXDB01.DBF
捷定数据库修复中心
输入数据文件 fno=00002 name=D:ORACLEORADATAORALOCALTS_UNDO_01.DBF 数据恢复finddata.net
输入数据文件 fno=00007 name=D:ORACLEORADATAORALOCALODM01.DBF 数据恢复finddata.net
输入数据文件 fno=00012 name=D:ORACLEORADATAORALOCALTS_DATA_USER01.DBF
数据恢复finddata.net
通道 ORA_DISK_2: 正在启动段 1 于 10-9月 -06
数据库修复中心db-recovery通道 ORA_DISK_1: 已完成段 1 于 10-9月 -06
捷定数据库修复中心段 handle=D:BACK UPDB BAKRMAN_BKFULL_DB_20060910_0THSVDUH291.RMN comment=NONE
www.db-recovery.com通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:16
数据库修复中心db-recovery通道 ORA_DISK_2: 已完成段 1 于 10-9月 -06 www.db-recovery.com
段 handle=D:BACK UPDB BAKRMAN_BKFULL_DB_20060910_0UHSVDUI301.RMN comment=NONE
数据库修复中心db-recovery
通道 ORA_DISK_2: 备份集已完成, 经过时间:00:02:20 数据库修复咨询电话021-3126-5210
完成 backup 于 10-9月 -06 数据恢复finddata.net
启动 backup 于 10-9月 -06
www.db-recovery.com当前日志已存档 数据恢复finddata.net
使用通道 ORA_DISK_1 数据库修复咨询电话021-3126-5210
使用通道 ORA_DISK_2
www.db-recovery.com
通道 ORA_DISK_1: 正在启动存档日志备份集 数据库修复www.db-recovery.com
通道 ORA_DISK_1: 正在指定备份集中的存档日志
数据库修复咨询电话021-3126-5210输入存档日志线程 =1 序列 =218 记录 ID=74 时间戳=600815409
数据库修复联系QQ:2-1-4-4-5-5-9-6-9通道 ORA_DISK_1: 正在启动段 1 于 10-9月 -06
捷定数据库修复中心通道 ORA_DISK_2: 正在启动存档日志备份集
数据库修复www.db-recovery.com通道 ORA_DISK_2: 正在指定备份集中的存档日志 数据库修复www.db-recovery.com
输入存档日志线程 =1 序列 =219 记录 ID=75 时间戳=600815711 数据库修复中心db-recovery
通道 ORA_DISK_2: 正在启动段 1 于 10-9月 -06 www.db-recovery.com
通道 ORA_DISK_1: 已完成段 1 于 10-9月 -06 数据库修复中心db-recovery
段 handle=D:BACK UPDB BAKRMAN_BKARCH_20060910_0VHSVE2V311.RMN comment=NONE www.db-recovery.com
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02 www.db-recovery.com
通道 ORA_DISK_1: 正在删除存档日志 www.db-recovery.com
存档日志文件名 =D:ORACLEORA92RDBMSARC00218.001 记录 ID=74 时间戳 =600815409
数据库修复www.db-recovery.com
通道 ORA_DISK_2: 已完成段 1 于 10-9月 -06
数据库修复www.db-recovery.com段 handle=D:BACK UPDB BAKRMAN_BKARCH_20060910_10HSVE2V321.RMN comment=NONE 数据库修复中心db-recovery
通道 ORA_DISK_2: 备份集已完成, 经过时间:00:00:02 数据库修复咨询电话021-3126-5210
通道 ORA_DISK_2: 正在删除存档日志 数据恢复finddata.net
存档日志文件名 =D:ORACLEORA92RDBMSARC00219.001 记录 ID=75 时间戳 =600815711
捷定数据库修复中心完成 backup 于 10-9月 -06 www.db-recovery.com
启动 Control File and SPFILE Autobackup 于 10-9月 -06
捷定数据库修复中心段 handle=D:BACK UPDB BAKRMAN_BKC-3826047702-20060910-04_CTL.RMN comment=NONE 数据恢复finddata.net
完成 Control File and SPFILE Autobackup 于 10-9月 -06
数据恢复finddata.netRMAN> 数据库修复中心db-recovery
二、重装操作系统后,我们删除oracle下除oradata(含数据文件,控制文件,redolog)外的所有文件,重装oracle。
三、重装oracle。
四、将原来是oradata(含数据文件,控制文件,redolog)覆盖oradata。
五、这时启动oracle,我们发现只能启动到nomount状态。原因是根据目前的spfile,找不到对应的表空间,找不到undo表空间——当前的spfile认为的undo表空间是UNDOTS01,我们的是TS_UNDO_01。因此,我们删除这个没用的spfile。 数据库修复咨询电话021-3126-5210
六、找到$ORACLE_HOMEadminSIDpfileinit.ora,打开后,进行修改,将undo_tablespace=UNDOTS01改成:undo_tablespace=TS_UNDO_01。然后startup pfile=$ORACLE_HOMEadminSIDpfileinit.ora 捷定数据库修复中心
七、运行rman
数据库修复中心db-recovery
C:Documents and SettingsAdministrator>rman nocatalog target / 捷定数据库修复中心
恢复管理器: 版本9.2.0.1.0 - Production 捷定数据库修复中心
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
数据库修复www.db-recovery.com
连接到目标数据库: ORALOCAL (DBID=3826047702) 数据库修复中心db-recovery
正在使用目标数据库控制文件替代恢复目录
数据库修复www.db-recovery.comRMAN> show all;
数据库修复联系QQ:2-1-4-4-5-5-9-6-9
RMAN 配置参数为: www.db-recovery.com
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS; 数据库修复www.db-recovery.com
CONFIGURE BACKUP OPTIMIZATION OFF; # default
数据库修复咨询电话021-3126-5210
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default 数据库修复www.db-recovery.com
CONFIGURE CONTROLFILE AUTOBACKUP ON;
数据库修复中心db-recovery
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘D:Back Updb bakRMAN_BK%F_CTL.RMN’;
数据库修复中心db-recoveryCONFIGURE DEVICE TYPE DISK PARALLELISM 2;
www.db-recovery.comCONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default 捷定数据库修复中心
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
数据恢复finddata.netCONFIGURE MAXSETSIZE TO UNLIMITED; # default 数据库修复www.db-recovery.com
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘D:ORACLEORA92DATABASESNCFORALOCAL.ORA’; # default 数据库修复咨询电话021-3126-5210
RMAN> restore spfile from autobackup;
数据库修复咨询电话021-3126-5210
启动 restore 于 10-9月 -06 数据库修复www.db-recovery.com
分配的通道: ORA_DISK_1
数据库修复联系QQ:2-1-4-4-5-5-9-6-9
通道 ORA_DISK_1: sid=12 devtype=DISK 数据库修复咨询电话021-3126-5210
分配的通道: ORA_DISK_2
数据库修复www.db-recovery.com通道 ORA_DISK_2: sid=13 devtype=DISK
数据库修复联系QQ:2-1-4-4-5-5-9-6-9
通道 ORA_DISK_1: 寻找以下日期的自动备份: 20060910 数据库修复联系QQ:2-1-4-4-5-5-9-6-9
通道 ORA_DISK_2: 寻找以下日期的自动备份: 20060910 数据恢复finddata.net
通道 ORA_DISK_2: 跳过, 自动备份已经找到 数据恢复finddata.net
通道 ORA_DISK_1: 已找到的自动备份: D:Back Updb bakRMAN_BKc-3826047702-20060910-04_CTL.RMN www.db-recovery.com
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成 数据恢复finddata.net
完成 restore 于 10-9月 -06
数据库修复咨询电话021-3126-5210
RMAN> shutdown immediate 数据库修复咨询电话021-3126-5210
数据库已关闭 数据库修复www.db-recovery.com
数据库已卸载
数据恢复finddata.net
Oracle 例程已关闭
www.db-recovery.comRMAN> exit
捷定数据库修复中心恢复管理器完成。
数据库修复联系QQ:2-1-4-4-5-5-9-6-9
八、Ok,至此我们的复原工作完成99%,但是在启动的时候还是会报ora-01991的错误,我们需要重建一下密码文件:
1、删除原来的$ORACLE_HOMEora92databasePWDsid.ora密码文件
2、命令行输入orapwd file=
3、重启数据库: 数据库修复联系QQ:2-1-4-4-5-5-9-6-9
C:Documents and SettingsAdministrator>sqlplus “/ as sysdba”
数据库修复咨询电话021-3126-5210SQL*Plus: Release 9.2.0.1.0 - Production on 星期日 9月 10 22:30:22 2006 捷定数据库修复中心
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
捷定数据库修复中心已连接到空闲例程。 www.db-recovery.com
SQL> 数据库修复联系QQ:2-1-4-4-5-5-9-6-9
SQL> startup nomount
数据恢复finddata.net
ORACLE 例程已经启动。
数据库修复www.db-recovery.comTotal System Global Area 135338868 bytes
数据库修复www.db-recovery.comFixed Size 453492 bytes 捷定数据库修复中心
Variable Size 109051904 bytes
捷定数据库修复中心Database Buffers 25165824 bytes
数据库修复联系QQ:2-1-4-4-5-5-9-6-9
Redo Buffers 667648 bytes 捷定数据库修复中心
SQL> alter database mount;
数据恢复finddata.net
数据库已更改。
捷定数据库修复中心SQL> alter database open ;
数据库修复咨询电话021-3126-5210
数据库已更改。 捷定数据库修复中心
