NBU+ORACLE RMAN异机恢复

 

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]恢复结果

        恢复后的数据库启动正常,且验证的数据和备份机的数据是一致,迁移成功。

你可能感兴趣的:(NBU+ORACLE RMAN异机恢复)