NBU+ORACLE
RMAN异机恢复
目录
1. 背景概述 1
1.1 目的 1
1.2 方法 1
1.3 数据库备份架构 1
2. 恢复所需资源 2
2.1 主机资源 2
2.2 实施环境 2
3. 数据库恢复步骤 3
3.1 安装配置目标主机 3
3.2 全库恢复 3
3.3 目标主机-nbu恢复配置 3
3.4 备份主机-备份参数文件和控制文件 3
3.5 目标主机-修改参数文件和启动数据库到nomount状态 3
3.6 目标主机-恢复控制文件 4
3.7 目标主机-启动数据库到mount状态 5
3.8 目标主机-restore数据库 5
3.9 目标主机-recover数据库 5
3.10 测试主机-以resetlogs方法打开数据库 11
3.11 测试主机-验证数据 11
4. 恢复结果 14
[if !supportLists]1. [endif]背景概述
[if !supportLists]1.1 [endif]目的
将经分数据库迁移到另外一台相同硬件相同操作系统的主机。
[if !supportLists]1.2 [endif]方法
RMAN异机恢复
[if !supportLists]1.3 [endif]数据库备份架构
[if !supportLists]1. [endif]备份系统采用netbackup
7.5备份软件;
[if !supportLists]2. [endif]备份存放在nbu一体机。
[if !supportLists]2. [endif]恢复所需资源
[if !supportLists]2.1 [endif]主机资源
需要准备恢复数据库的目标主机,最佳做法是恢复目标主机的硬件架构、操作系统版本和备份主机一致。
恢复测试主机信息
角色主机名IP地址操作系统
目标机WEISI-DM2-IBM-P740-0310.48.111.87AIX 6.1
备份主机WEISI-DM2-IBM-P740-0410.48.111.88AIX 6.1
Nbu Server主机nbumaster10.48.111.134Suse 10 sp2
[if !supportLists]2.2 [endif]实施环境
软件版本
Nbu for AIX7.5
Oracle 11g11.1.0.7.8
[if !supportLists]3. [endif]数据库恢复步骤
[if !supportLists]3.1 [endif]安装配置目标主机
因为目标主机Oracle软件完全拷贝备份主机,目标主机与备份主机环境一致,目标主机能与备份主机网络连通。
[if !supportLists]3.2 [endif]全库恢复
利用nbu备份软件,调用原来所备份的数据库,使用数据库恢复工具RMAN,进行ORACLE 数据库系统的全库异机恢复。
[if !supportLists]3.3 [endif]目标主机-nbu恢复配置
因为目标主机与现网的备份主机架构相同,故只需在NBU SERVER上删除对所有客户端的限制,以及(在目标主机安装nbu client后,配置oracle agent,该操作由赛门铁克工程师操作)
如下:
在nbumaster执行如下命令:
1、创建如下文件,删除对所有客户端的限制
/usr/openv/netbackup/db/altnames/No.Restrictions
2、允许客户端仅从特定的客户端还原
/usr/openv/netbackup/db/altnames/WEISI-DM2-IBM-P740-03
说明:WEISI-DM2-IBM-P740-03为允许执行重定向还原的客户端(目标客户端)的名称
向该文件中添加 NetBackup for Oracle 源客户端的名称,即WEISI-DM2-IBM-P740-04。
[if !supportLists]3.4 [endif]备份主机-备份参数文件和控制文件
注意,此时停止nbu侧归档日志的备份,若有备份进程在运行,待归档备份结束后,禁用归档备份策略,
若没有归档备份,则发起备份,备份结束后,禁用归档备份策略
同时,提醒使用人员,减少对数据库的操作
备份参数文件
SQL> create pfile='/home/oracle/pfile_p740_04.ora' from spfile’;
备份控制文件
RMAN> backup current controlfile format ‘/home/oracle/contrl_p740_04.bak';
拷贝参数文件和控制文件到p740-03主机
$ cd /home/oracle/
$ scp pfile_p740_04.ora contrl_p740_04.bkp [email protected]:/home/oracle/
[if !supportLists]3.5 [endif]目标主机-修改参数文件和启动数据库到nomount状态
修改参数文件中control_files路径为实际的裸设备路径,修改后的参数文件如下附件所示:
[if !vml]
[endif]
在目标主机上,以oracle用户登陆数据库,将数据库启动到nomount状态:
$ hostname
WEISI-DM2-IBM-P740-03
$ cd $ORACLE_HOME/dbs
$ pwd
/oracle/db/products/dbs
$ cat initJF.ora
SPFILE='/dev/vx/rdsk/ora_dg/rvdata_jf_spfile'
$ sqlplus / as sysdba
SQL> create spfile='/dev/vx/rdsk/ora_dg/rvdata_jf_spfile' from pfile='/home/oracle/pfile_p740_04.ora';
SQL> startup nomount
[if !supportLists]3.6 [endif]目标主机-恢复控制文件
在目标主机上,执行以下脚本,使用工具rman来恢复数据库的控制文件:
#!/bin/sh
export PATH=/usr/bin:/etc:/usr/sbin:/sbin:/oracle/db/products/bin
export ORACLE_BASE=/oracle/db
export ORACLE_SID=JF
export ORACLE_HOME=/oracle/db/products
HOSTNAME=`hostname`
if [ $HOSTNAME != "WEISI-DM2-IBM-P740-03" ];
then exit;
fi
rman target / <
RUN {
ALLOCATE CHANNEL ch01 TYPE 'sbt_tape';
SEND 'NB_ORA_SERV=nbumaster,NB_ORA_CLIENT=WEISI-DM2-IBM-P740-04';
restore controlfile from '/cntrl_9362_1_853177513';
RELEASE CHANNEL ch01;
}
exit
EOFRMAN
[if !supportLists]3.7 [endif]目标主机-启动数据库到mount状态
在目标主机上,等控制文件恢复完成后,更改数据库到mount状态:
RMAN> alter database mount;
database mounted
[if !supportLists]3.8 [endif]执行restore_jf.sh脚本,restore数据库
[if !vml]
[endif]
[if !supportLists]3.9 [endif]目标主机-recover数据库
[if !supportLists]1、 [endif]P740-03后台执行以下脚本,recover 数据库
nohup ./recover_database_noparallel.sh > ./rmanlog/ recover_database_noparallel.log &
[if !vml]
[endif]
[if !supportLists]2、 [endif]对p740-04数据库在线日志进行切换
[if !vml]
[endif]
[if !supportLists]3、 [endif]在p740-04数据库创建表,插入5行数据,提交
create table test (a number);
Insert into test values(1);
Insert into test values(2);
Insert into test values(3);
Insert into test values(4);
Insert into test values(5);
Commit;
select * from test;
[if !supportLists]4、 [endif]p740-04数据库再次进行在线日志切换
[if !vml]
[endif]
[if !supportLists]5、 [endif]关闭p740-04数据库
$ lsnrctl stop
$ ps -ef | grep LOCAL=NO | grep -v grep | awk '{print $2}' |xargs kill -9
alter system switch logfile;
alter system archive log current;
alter system checkpoint;
archive log list;
shutdown immediate
[if !supportLists]6、 [endif]拷贝归档日志到p740-03主机
cd /archivlog
scp *[email protected]:/archivlog
10、注册归档日志
$ rman target /
catalog start with ‘/archivlog’;
10、再次进行recover恢复
RECOVER DATABASE;
11、若出现如下类似错误,只要确认22638为当前的在线日志,就没有问题,属于正常
RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 22638 and starting SCN of 1551382714
正常,联机日志丢失。
12、重命名在线日志
[if !vml]
[endif]
13、打开数据库
alter database open resetlogs;
14、检查test表数据
Select * from test
15、关闭数据库,然后启动数据库,再关闭数据库
shutdown immediate
startup
shutdown immediate
16、通知业务人员检查数据完整性和启动业务
[if !supportLists]4. [endif]恢复结果
恢复后的数据库启动正常,且验证的数据和备份机的数据是一致,迁移成功。