前言:
oracle数据库每个公司都在备份,但是有以下几个问题每个dba能够很快的回答吗?
1、备份是否有效?
2、数据库逻辑故障了,恢复需要多长时间?
3、生产系统硬盘坏了,恢复又需要多长时间?
因此每个月或者每个季度应该对生产系统进行测试恢复一遍,虽然oracle的rman也提供了恢复的预览功能,
但是出于习惯还是每个季度进行一次手工恢复;
环境说明:
1、数据库版本11.2.0.3
2、操作系统版本AIX6.1
3、数据量估算700G
4、备份方式network的集中备份
准备工作:
一、准备环境,需要参数文件、密码文件、各种文件路径、并设置权限、且需要相应的磁盘空间
a)参数文件的传输 scp initPIP.ora root@192.168.199.43:/oracle/ID1/112_64/dbs
b)根据参数文件创建相应的目录
sapides:oraid1 318> mkdir -p /oracle/PIP/origlogA/cntrl/
sapides:oraid1 319> mkdir -p /oracle/PIP/origlogB/cntrl
sapides:oraid1 320> mkdir -p /oracle/PIP/sapdata1/cntrl
sapides:oraid1 321> mkdir -p /oracle/PIP/oraarch/PIParch
sapides:oraid1 322> mkdir -p /oracle/PIP/saptrace/audit
c)创建相应数据文件的目录
mkdir -p /oracle/PIP/sapdata4/undo_3/
mkdir -p /oracle/PIP/sapdata4/undo_2/
mkdir -p /oracle/PIP/sapdata4/sr3usr_1/
mkdir -p /oracle/PIP/sapdata4/sr3db_3/
mkdir -p /oracle/PIP/sapdata4/sr3db_2/
mkdir -p /oracle/PIP/sapdata4/sr3db_18/
mkdir -p /oracle/PIP/sapdata4/sr3db_17/
mkdir -p /oracle/PIP/sapdata4/sr3db_16/
mkdir -p /oracle/PIP/sapdata4/sr3db_15/
mkdir -p /oracle/PIP/sapdata4/sr3db_14/
mkdir -p /oracle/PIP/sapdata4/sr3db_13/
mkdir -p /oracle/PIP/sapdata4/sr3db_12/
mkdir -p /oracle/PIP/sapdata4/sr3db_11/
二、进行数据库的恢复
a)进行控制文件的恢复
启动数据库到nomount状态
进行控制文件的恢复,脚本:
查找network上面的备份信息脚本,根据脚本查找可以恢复的控制文件的信息
nsrinfo -s bkserver01 -n oracle joeonepip> C:\nsrinfo.txt
运行脚本进行控制文件的恢复,恢复完毕后启动到mount状态,然后进行数据库的restore和recover操作;
run{
allocate channel ch1 device TYPE 'SBT_TAPE';
SEND DEVICE TYPE 'SBT_TAPE' 'NSR_ENV=(NSR_SERVER=bkserver01,NSR_CLIENT=joeonepip)';
set DBID=1579788476;
restore controlfile from 'PIP_CONTROL_73467_1_20140312';
release channel ch1;
sql 'alter database mount';
allocate channel ch2 device TYPE 'SBT_TAPE';
allocate channel ch3 device TYPE 'SBT_TAPE';
allocate channel ch4 device TYPE 'SBT_TAPE';
allocate channel ch5 device TYPE 'SBT_TAPE';
SEND DEVICE TYPE 'SBT_TAPE' 'NSR_ENV=(NSR_SERVER=bkserver01,NSR_CLIENT=joeonepip)';
set DBID=1579788476;
restore database;
recover database;
release channel ch2;
release channel ch3;
release channel ch4;
release channel ch5;
}
三、打开数据库
因为恢复在异机是以不完全恢复的方式进行的,所以打开的时候需要resetlogs的方式进行打开;
脚本:alter database open resetlogs;