测试目的:检测windows下oracle热备文件(含spfile,控制文件,数据文件,归档日志,非rman方式)异机恢复,非原路径下的恢复可用性。

测试环境:windows 2003 R2,ORACLE 11G R2

测试步骤:

1,将原实例的热备文件拷贝到待测试环境中

基于用户控制的oracle热备文件的异机恢复

2,将spfile备份文件拷贝到$ORACLE_HOME/dbs/中,通过该参数文件在sqlplus下创建一份静态参数文件:

基于用户控制的oracle热备文件的异机恢复

3,编辑生成的静态参数文件,采用测试平台适用的参数,并删除spfile文件(已让实例从静态参数文件启动),这里主要修改了一些路经参数:

基于用户控制的oracle热备文件的异机恢复

4,将数据库启动的mount状态,已读取源数据库中数据文件的存储信息,并修改成测试平台数据文件的存储信息,通过以下语句生成批量修改sql:

select 'alter database rename file '''||name||''' to ''E:\hot_backup_2013-12-06\'||substr(name,36)||''' ;' from v$datafile;

基于用户控制的oracle热备文件的异机恢复

5,复制生成的sql语句并执行,检查是否修改成功:

select name from v$datafile;




6,由于重做日志文件无法在这种情况下修改路径,所以必须通过备份控制文件到trace中,然后手动修改重做日志文件地址的方式实现重命名重做日志文件:

alter database backup controlfile to trace;

查看告警日志,定位到trace文件名称:

alter database backup controlfile to trace    
Backup controlfile written to trace file e:\app\administrator\log\diagnostic_dest\diag\rdbms\zstoa\zstoa\trace\zstoa_ora_3520.trc    
Completed: alter database backup controlfile to trace

复制trace中的创建controlfile代码(将"NORESETLOGS”修改为"RESETLOGS"),修改其中的重做日志信息,一定要注意的是编辑格式,多一个空格或单引号写错都会造成创建失败:

   1:CREATE CONTROLFILE REUSE DATABASE "ZSTOA" RESETLOGS FORCE LOGGING ARCHIVELOG
   2:     MAXLOGFILES 16
   3:     MAXLOGMEMBERS 3
   4:     MAXDATAFILES 100
   5:     MAXINSTANCES 8
   6:     MAXLOGHISTORY 292
   7: LOGFILE
   8:GROUP 4 (
   9:'E:\ZSTOA\REDO04_01.LOG',
  10:'E:\ZSTOA\REDO04_02.LOG'
  11:   ) SIZE 200M BLOCKSIZE 512,
  12:GROUP 5 (
  13:'E:\ZSTOA\REDO05_01.LOG',
  14:'E:\ZSTOA\REDO05_02.LOG'
  15:   ) SIZE 200M BLOCKSIZE 512,
  16:GROUP 6 (
  17:'E:\ZSTOA\REDO06_01.LOG',
  18:'E:\ZSTOA\REDO06_02.LOG'
  19:   ) SIZE 200M BLOCKSIZE 512
  20: DATAFILE
  21:'E:\ZSTOA\SYSTEM01.DBF',
  22:'E:\ZSTOA\SYSAUX01.DBF',
  23:'E:\ZSTOA\UNDOTBS01.DBF',
  24:'E:\ZSTOA\USERS01.DBF',
  25:'E:\ZSTOA\TBS_V3XSPACE_01.DBF',
  26:'E:\ZSTOA\TBS_V3XSPACE_02.DBF',
  27:'E:\ZSTOA\TBS_V3XSPACE_03.DBF',
  28:'E:\ZSTOA\UNDOTBS_FILE2'
  29:CHARACTERSET AL32UTF8

7,关闭数据库,启动到nomount模式,删除或重命名之前用的控制文件,执行上面代码创建控制文件:

基于用户控制的oracle热备文件的异机恢复

8,将数据库启动到mount模式

alter database mount;

9,通过归档日志还原数据库,恢复过程中指定归档文件路径

recover database using backup controlfile until cancel

基于用户控制的oracle热备文件的异机恢复

10,恢复完成后,通过resetlogs模式启动数据库:

alter database open resetlogs;

基于用户控制的oracle热备文件的异机恢复



我的博客:www.fanmeng.net.cn