Windows上NBU异机恢复oracle测试

更新时间:2024-04-01 16:26:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目录

Windows平台下的恢复测试........................................................................................................... 2

1. Oracle数据库恢复测试环境 ........................................................................................... 2 2. 恢复spfile文件 ................................................................................................................ 6 3. 恢复控制文件 ................................................................................................................... 8 4. 恢复数据文件 ................................................................................................................... 9 5. 还原数据库 ..................................................................................................................... 10 6. 检验数据库一致性 ......................................................................................................... 12

Windows平台下的恢复测试

1. Oracle数据库恢复测试环境

操作系统 Windows7 Windows2003 Windows 2003

Windows 7 上安装NBU Master Server端,两个虚拟机上分别为源端和测试端,oracle版本为oracle10g,数据库实例名为test。

整个恢复测试分为数据库的全备,数据库的spfile文件恢复,控制文件controlfile的恢复,恢复数据库和还原数据库。

恢复前准备,做好远数据库端的数据库全备,查询清楚源端数据库的备份集信息,如下图,

主机名 axelpc win2003 win2003test Ip 192.168.10.167 192.168.10.170 192.168.10.196 NBU(7.1) Master server client client Oracle 10g Media server Oracle 源端 Oracle 测试端

查询spfile文件的备份集信息,

查询控制文件的备份集信息,

在测试端安装好oracle 的数据库软件和监听,不需要建立实例;在测试端建立好几个文件路径:E:\\oracle\\product\\10.2.0\\admin\\test下建立adump、bdump、cdump、udump、dpdump和pfile文件夹;在E:\\oracle\\product\\10.2.0下建立oradata和其子目录test文件夹。

用oradim建立实例名前是登录rman会报如下错误,

在命令行输入oradim的指令:oradim –NEW –SID test –STARTSTATUS auto,将会看到计算机的服务进程中增加一个OracleServertest的服务,若没这个服务数据库是登录不了的。

Rman或者sqlplus进去需要先设置数据库实例,在命令行输入如下: set ORACLE_SID=test 然后登录如下,

先sqlplus登录数据库,查看实例状态,再登录rman,如下图所示,

rman 登录后状态为DUMMY,未装载模式如下图所示,

2. 恢复spfile文件

现在一起准备就绪,输入恢复脚本,在脚本中加入从备份集查询到的信息,如下: run{

allocate channel ch01 type 'sbt_tape'; allocate channel ch02 type 'sbt_tape'

parms=\restorespfile release channel ch1; release channel ch2; } 解析:

1.NB_ORA_CLIENT=win2003,NB_ORA_SID=test,NB_ORA_SERV=axelpc 分别是源端主机名,数据库实例名,备份服务器的主机名 2. E:\\oracle\\product\\10.2.0\\db_1\\dbs\\spfiletest.ora 是spfile的文件路径

3.bk_u0ap2bbh9_s10_p1_t841330217

是spfile备份集的句柄,也可在NBU服务端查询,查询指令为:bplist -C test -t 4 –R\\

输出结果如下图,

to

'E:\\oracle\\product\\10.2.0\\db_1\\dbs\\spfiletest.ora'

from

'bk_u0ap2bbh9_s10_p1_t841330217';

恢复成功之后可以看到如下显示,

将恢复成功的spfile文件剪切到E:\\oracle\\product\\10.2.0\\db_1\\database目录下,重新启动数据库

3. 恢复控制文件

Sqlplus进入启动nomount状态: >startup nomount;

然后进入rman下运行如下脚本: run{

allocate channel ch01 type 'sbt_tape'

parms=\restore controlfile from 'cntrl_s6_p1_t841242205'; release channel ch01; }

解析都一样,其中

cntrl_s6_p1_t841242205是控制文件的备份集句柄。

结果显示如下,

4. 恢复数据文件

将数据库开启mount状态:alter database mount; 如下图示,

然后在rman上运行如下脚本: run{

allocate channel ch01 type 'sbt_tape'; allocate channel ch02 type 'sbt_tape'

parms=\restore database; release channel ch01; release channel ch02; }

显示输出如下,

5. 还原数据库

在rman输入如下脚本, run{

allocate channel ch01 type 'sbt_tape'; allocate channel ch02 type 'sbt_tape'

parms=\recover database; release channel ch01; release channel ch02; }

显示rman输出如下,

打开实例,在SQL端输入如下语句打开实例: alter database open resetlogs; 显示如下,

6. 检验数据库一致性

查看两数据库的创建时间

在源端和测试端SQL输入语句: select created from v$database;

显示的创建时间是一致的,结果如下图所示,

查看两个数据库上的控制文件中记录的数据文件SCN号

在数据库mount状态,用SQL查询恢复需要的归档日志序列号,下面语句查询控制文件中记录的数据文件SCN号。在SQL输入语句: select checkpoint_change# from v$datafile; 结果显示如下,

由此可以看出两个数据库的数据文件是一致的,故两个数据库是一致的。至此,Windows下的ORACLE数据库恢复测试完成。

本文来源:https://www.bwwdw.com/article/jujr.html

Top