目 录

1、系统环境描述

2、恢复前数据备份

2.1 在NBU上执行一次完整的备份

2.2 查看ORACLE的备份集

2.2.1在备份客户端上查看备份集

2.2.2在备份服务器netbackup上查看客户端备份集

3、本机恢复方法

3.1丢失SPFILE文件恢复方法

3.2丢失CONTROLFILE文件恢复方法

4、异机恢复方法

4.1在要进行异机恢复的服务器上创建环境

4.2异机恢复SPFILE文件

4.3 异机恢复CONTROLFILE文件

4.4异机恢复数据文件

1、系统环境描述

服务器基本环境列表:服务器列表操作系统版本安装备份软件及版本应用软件IP地址

备份服务器

NetbackupWindows2008R2master/media服务器

ver7.1 build20110203无192.168.0.100

备份客户端

oracleWindows2008R2v7.1客户端ORACLE 11.2.0.3192.168.0.101

异机恢复客户端

oracletestWindows2008R2v7.1客户端ORACLE 11.2.0.3192.168.0.102

ORACLE安装环境介绍:ORACLE_SIDOrcl

ORACLE_BASED:\app\Administrator

ORACLE_HOMED:\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

2、恢复前数据备份

2.1在NBU上执行一次完整的备份

执行备份策略ORACLE对数据库进行一次完全备份

NBU备份hadoop nbu备份oracle数据库_数据库

备份结果成功。

NBU备份hadoop nbu备份oracle数据库_nbu备份本机oracle_02

2.2查看ORACLE的备份集

2.2.1在备份客户端上查看备份集

由于之前测试过很多次,这里只摘取最后一个备份集显示

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

2.2.2在备份服务器netbackup上查看客户端备份集

在NETBACKUP服务器上,进入到NBU的安装目录BIN下,执行

Bplist –C oracle –t 4 –R \  查看ORACLE客户端的备份集

NBU备份hadoop nbu备份oracle数据库_NBU备份hadoop_03

3、本机恢复方法

3.1丢失SPFILE文件恢复方法

登陆到数据库,查看一下SPFILE文件的位置

NBU备份hadoop nbu备份oracle数据库_服务器_04

记录一下数据库的SID

NBU备份hadoop nbu备份oracle数据库_NBU备份hadoop_05

到ORACLE的路径里,删除SPFILE文件及PFILE文件,然后关闭数据库,再启动数据库会提示找不到参数文件

NBU备份hadoop nbu备份oracle数据库_数据库_06

使用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;

}

NBU备份hadoop nbu备份oracle数据库_NBU备份hadoop_07

然后再手动创建一下PFILE文件。

NBU备份hadoop nbu备份oracle数据库_服务器_08

3.2丢失CONTROLFILE文件恢复方法

登陆数据库select name from v$controlfile;

NBU备份hadoop nbu备份oracle数据库_数据库_09

然后到指定路径下删除所有控制文件。关闭掉数据库后,再启动会报错

ORA-00205 故障原因为控制文件损坏或丢失

NBU备份hadoop nbu备份oracle数据库_NBU备份hadoop_10

运行RMAN恢复控制文件。

NBU备份hadoop nbu备份oracle数据库_NBU备份hadoop_11

还原完数据文件后再RECOVER数据

NBU备份hadoop nbu备份oracle数据库_NBU备份hadoop_12

4、异机恢复方法

4.1在要进行异机恢复的服务器上创建环境需要在新的主机ORACLETEST上安装NBU CLIENT及ORACLE数据库版本要与原ORACLE主机一致。

数据库软件安装即可,无需建库。

磁盘分区保持与原ORACLE主机一致

1、在备份服务器NBU的安装目录/db/altnames下创建No.Restrictions文件

NBU备份hadoop nbu备份oracle数据库_数据库_13

在ORACLETESTA上创建如下目录:

D:\app\Administrator\fast_recovery_area\orcl

D:\app\Administrator\admin\orcl ORCL目录下再创建adump,dpdump.pfile文件夹

E:\orcl

NBU备份hadoop nbu备份oracle数据库_数据库_14

NBU备份hadoop nbu备份oracle数据库_nbu备份本机oracle_15

NBU备份hadoop nbu备份oracle数据库_oracle_16

2、在ORACLETEST上创建实例服务,在命令窗口输入oradim -NEW -SID ORCL

NBU备份hadoop nbu备份oracle数据库_nbu备份本机oracle_17

NBU备份hadoop nbu备份oracle数据库_服务器_18

3、输入系统环境变量为set ORACLE_SID=orcl 然后使用RMAN登陆到数据库,启动数据库

NBU备份hadoop nbu备份oracle数据库_服务器_19

4.2异机恢复SPFILE文件

使用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;

}

NBU备份hadoop nbu备份oracle数据库_nbu备份本机oracle_20

恢复完成后,使用sqlplus as sysdba登陆到数据库,关闭数据库,然后再启动到nomount状态,查看SPFILE文件位置

NBU备份hadoop nbu备份oracle数据库_NBU备份hadoop_21

4.3异机恢复CONTROLFILE文件

重新使用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;

}

NBU备份hadoop nbu备份oracle数据库_服务器_22

复完毕后,再让数据库启动到mount状态

NBU备份hadoop nbu备份oracle数据库_oracle_23

4.4异机恢复数据文件

run{

allocate channel ch01 type 'sbt_tape';

SEND 'NB_ORA_SERV=netbackup,NB_ORA_CLIENT=oracle';

restore database;

recover database;

release channel ch01;

}

NBU备份hadoop nbu备份oracle数据库_NBU备份hadoop_24

等待最后结束执行后,再打开一个CMD窗口执行sqlplus / as sysdba登陆到数据库。然后再执行以下命令

recover database until cancel using backup controlfile ;

然后会弹出提示信息,如果要恢复的归档在,可直接敲回车进行恢复,如查没有想直接启动数据库,输入CANCEL敲两下回车即可。

然后再执行alter database open resetlogs;

NBU备份hadoop nbu备份oracle数据库_nbu备份本机oracle_25