1、系统环境描述 1
2、恢复前数据备份 2
2.1 在NBU上执行一次完整的备份 2
2.2 查看ORACLE的备份集 3
2.2.1在备份客户端上查看备份集 3
2.2.2在备份服务器netbackup上查看客户端备份集 4
3、本机恢复方法 5
3.1丢失SPFILE文件恢复方法 5
3.2丢失CONTROLFILE文件恢复方法 7
4、异机恢复方法 9
4.1在要进行异机恢复的服务器上创建环境 9
4.2异机恢复SPFILE文件 11
4.3 异机恢复CONTROLFILE文件 12
4.4异机恢复数据文件 13
服务器基本环境列表:
服务器列表 |
操作系统版本 |
安装备份软件及版本 |
应用软件 |
IP地址 |
备份服务器 Netbackup |
Windows2008R2 |
master/media服务器 ver7.1 build20110203 |
无 |
192.168.0.100 |
备份客户端 oracle |
Windows2008R2 |
v7.1客户端 |
ORACLE 11.2.0.3 |
192.168.0.101 |
异机恢复客户端 oracletest |
Windows2008R2 |
v7.1客户端 |
ORACLE 11.2.0.3 |
192.168.0.102 |
ORACLE安装环境介绍:
ORACLE_SID |
Orcl |
ORACLE_BASE |
D:\app\Administrator |
ORACLE_HOME |
D:\app\Administrator\product\11.2.0\dbhome_1 |
ORACLE数据文件 |
E:\ORCL |
测试数据 |
v3xuser用户及表空间v3xspace,数据表customers |
控制文件位置 |
D:\app\Administrator\fast_recovery_area\orcl\CONTROL02.CTL E:\orcl\CONTROL01.CTL |
参数文件位置 |
D:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILEORCL.ORA |
执行备份策略ORACLE对数据库进行一次完全备份
备份结果成功。
由于之前测试过很多次,这里只摘取最后一个备份集显示
RMAN> list backup of spfile;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
19 Incr 0 9.50M SBT_TAPE 00:00:20 18-8月 -14
BP 关键字: 19 状态: AVAILABLE 已压缩: NO 标记: TAG20140818T161502
句柄: bk_u0kpg93u8_s20_p1_t855936968 介质: E:\\oracle_1408349774_C1_F1
包含的 SPFILE: 修改时间: 18-8月 -14
SPFILE db_unique_name: ORCL
RMAN> list backup of controlfile;
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
19 Incr 0 9.50M SBT_TAPE 00:00:20 18-8月 -14
BP 关键字: 19 状态: AVAILABLE 已压缩: NO 标记: TAG20140818T161502
句柄: bk_u0kpg93u8_s20_p1_t855936968 介质: E:\\oracle_1408349774_C1_F1
包括的控制文件: Ckp SCN: 1250848 Ckp 时间: 18-8月 -14
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
21 Full 9.50M SBT_TAPE 00:00:20 18-8月 -14
BP 关键字: 21 状态: AVAILABLE 已压缩: NO 标记: TAG20140818T161701
句柄: cntrl_p_t 介质: E:\\oracle_1407807805_C1_F1
包括的控制文件: Ckp SCN: 1250932 Ckp 时间: 18-8月 -14
RMAN> list backup of archivelog all;
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ ----------
20 42.75M SBT_TAPE 00:00:20 18-8月 -14
BP 关键字: 20 状态: AVAILABLE 已压缩: NO 标记: TAG20140818T161636
句柄: arch-s21-p1-t855936996 介质: E:\\oracle_1408349800_C1_F1
备份集 20 中的已存档日志列表
线程序列 低 SCN 时间下限 下一个 SCN 下一次
---- ------- ---------- ---------- ---------- ---------
1 7 1116733 12-8月 -14 1118440 12-8月 -14
1 8 1118440 12-8月 -14 1118458 12-8月 -14
1 9 1118458 12-8月 -14 1139215 12-8月 -14
1 10 1139215 12-8月 -14 1159514 12-8月 -14
1 11 1159514 12-8月 -14 1181411 15-8月 -14
1 12 1181411 15-8月 -14 1201792 18-8月 -14
1 13 1201792 18-8月 -14 1203513 18-8月 -14
1 14 1203513 18-8月 -14 1203531 18-8月 -14
1 15 1203531 18-8月 -14 1203844 18-8月 -14
1 16 1203844 18-8月 -14 1203862 18-8月 -14
1 17 1203862 18-8月 -14 1225209 18-8月 -14
1 18 1225209 18-8月 -14 1226169 18-8月 -14
1 19 1226169 18-8月 -14 1226187 18-8月 -14
1 20 1226187 18-8月 -14 1246576 18-8月 -14
1 21 1246576 18-8月 -14 1250878 18-8月 -14
1 22 1250878 18-8月 -14 1250896 18-8月 -14
在NETBACKUP服务器上,进入到NBU的安装目录BIN下,执行
Bplist –C oracle –t 4 –R \ 查看ORACLE客户端的备份集
登陆到数据库,查看一下SPFILE文件的位置
记录一下数据库的SID
到ORACLE的路径里,删除SPFILE文件及PFILE文件,然后关闭数据库,再启动数据库会提示找不到参数文件
使用rman 登陆数据库,然后启动数据库。执行恢复命令
run{
allocate channel ch02 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=oracle,NB_ORA_SID=orcl,NB_ORA_SERV=netbackup)";
restore spfile to 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA' from 'bk_u0kpg93u8_s20_p1_t855936968';
release channel ch02;
}
然后再手动创建一下PFILE文件。
登陆数据库select name from v$controlfile;
然后到指定路径下删除所有控制文件。关闭掉数据库后,再启动会报错
ORA-00205 故障原因为控制文件损坏或丢失
运行RMAN恢复控制文件。
还原完数据文件后再RECOVER数据
1、在备份服务器NBU的安装目录/db/altnames下创建No.Restrictions文件
在ORACLETESTA上创建如下目录:
D:\app\Administrator\fast_recovery_area\orcl
D:\app\Administrator\admin\orcl ORCL目录下再创建adump,dpdump.pfile文件夹
E:\orcl
2、在ORACLETEST上创建实例服务,在命令窗口输入oradim -NEW -SID ORCL
3、输入系统环境变量为set ORACLE_SID=orcl 然后使用RMAN登陆到数据库,启动数据库
使用RMAN命令恢复数居库参数文件
run{
allocate channel ch02 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=oracle,NB_ORA_SID=orcl,NB_ORA_SERV=netbackup)";
restore spfile to 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA' from 'bk_u0kpg93u8_s20_p1_t855936968';
release channel ch02;
}
恢复完成后,使用sqlplus / as sysdba登陆到数据库,关闭数据库,然后再启动到nomount状态,查看SPFILE文件位置
重新使用RMAN登陆数据库,然后执行恢复CONTROLFILE命令
run{
allocate channel ch03 type 'sbt_tape'
parms="ENV=(NB_ORA_CLIENT=oracle,NB_ORA_SERV=netbackup)";
restore controlfile from 'bk_u0kpg93u8_s20_p1_t855936968';
release channel ch03;
}
恢复完毕后,再让数据库启动到mount状态
run{
allocate channel ch01 type 'sbt_tape';
SEND 'NB_ORA_SERV=netbackup,NB_ORA_CLIENT=oracle';
restore database;
recover database;
release channel ch01;
}
等待最后结束执行后,再打开一个CMD窗口执行sqlplus / as sysdba登陆到数据库。然后再执行以下命令
recover database until cancel using backup controlfile ;
然后会弹出提示信息,如果要恢复的归档在,可直接敲回车进行恢复,如查没有想直接启动数据库,输入CANCEL敲两下回车即可。
然后再执行alter database open resetlogs;