微信号:dellemc_tech

介绍:为戴尔易安信客户提供技术支持服务,为广大IT行业用户分享技术文章与行业信息。

Networker的Oracle异机恢复

2016-12-02 17:06 EMC中文技术社区

    目前支持的NMDA 版本有NMDA 1.5 / 1.6 / 8.2 / 9.0 及以上 (NMDA 1.2于2016年3月底已经过保)。关于恢复请参考NMDA 8.2-SP1- NMDA Admin Guide (302-001-217 REV 01),以下提到的页码也是针对此文档的。关于Oracle恢复,一般都需要在DBA的协助下进行。在9.0以前,NMDA客户端有一个recover功能(右键客户端->recover),会根据需求一步步生成一个RMAN恢复脚本。注意: 只是生成脚本,具体执行还是得到目标客户端,运行RMAN。9.0新的版本可以直接在界面上恢复到本机或者duplicate到异机了。传统的方式是DBA直接准备一个RMAN脚本,区别只是在RMAN脚本中加上send或者parms参数将相应的NW信息填上。


准备工作以及具体步骤:


1. 先在NMC里面创建一个基本的异机客户机配置,名字是需要跑恢复脚本的目标主机名,“基本的”意思是存储集这栏saveset只需要写一个非RMAN文件名,比如可以写ALL或者/etc/hosts(随便写一个),然后在别名里面注意加上长短名; 具体请参考:P161 - Performing NMDA data restore and recovery

2. 在异机(目标端)的hosts文件里面也要加上源端的主机名和Networker服务器主机名条目,然后重启Networker nsrexecd服务生效。注意: 恢复过程中碰到的问题多是由域名解析造成的,所以可以先创建一个异机的普通文件备份测试一下恢复,通过后再去做Oracle的,这样就容易多了。

 

比如这里有一个域名解析问题:

nsradmin -p nsrexecd

>p type:nsrla

结果输出中看到的并不是当前的本机名,而是另一个名字。原因是目标端以前改过服务器名。


解决办法:


nsr_shutdown 关闭服务

mv /nsr/res/nsrladb /nsr/res/nsrladb 重命名nsrladb

/etc/init.d/networker start

nsrorara -i 手动注册NMDA Oracle模块 (重新注册NMDA Oracle 向导选项)

 

Oracle准备rman恢复脚本,一般都是这个格式,可以加上debug选项以及各种retry参数:

run {

allocate channel t1 type ’SBT_TAPE’;

allocate channel t2 type ’SBT_TAPE’;

send 'NSR_ENV=(NSR_SERVER=mars.emc.com,NSR_CLIENT=server1.emc.com,NSR_DEBUG_LEVEL=5, NSR_DIAGNOSTIC_DEST=/nsr/apps/logs)';

restore database;

recover database;

release channel t1;

release channel t2;

}

 

具体各种参数可以参考P355 Common NMDA parameters,debug日志(同时包含了backup的)一般命名格式为:    

nsrdasv_Oracle_2016_10_27.xx.xx.log

总的schedule nsrdasv执行日志

libnsrora_Oracle_2016_10_27.19_31_31.xx.log

每个channel都有一个debug日志

msglog

RMAN的输出,需要设置NSR_RMAN_ARGUMENTS参数,在向导高级选项页或者nmda_oracle.cfg配置文件

 

然后Oracle异机恢复的大致步骤:


1. 取得源数据库dbid (如何取得dbid请咨询DBA)

2. 在异机,启动数据库到nomount阶段,如果启动提示没有spfile,可以直接拿一个spfile模板来修改启动(如何创建一个空的spfile,请咨询DBA)

sqlplus / as sysdba

sqlplus>startup nomount;

3. 恢复控制文件

rman target /

rman>set dbid=&dbid;

rman>allocate channel t1 type ‘SBT’;

rman>send 'NSR_ENV=(NSR_SERVER=&servername, NSR_CLIENT=&clientname,NSR_DATA_VOLUME_POOL=&poolname)';

rman>restore controlfile from autobackup;  (这个是从最新的备份恢复,或者也可以指定具体一个备份集restore controlfile from 'c-xxxx-xxxxxx')

4. mount 数据库

sqlplus>alter database mount;

5. 恢复数据文件

rman>restore datafile;

6. 所有的脚本在allocate channel都要类似指定NMDA参数,比如send 'NSR_ENV=(NSR_SERVER=&servername, NSR_CLIENT=&clientname,NSR_DATA_VOLUME_POOL=&poolname)';

7. recover 数据库,这一步比较容易出错,一般都是缺少最新的归档日志,需要DBA协助再开Networker Case

rman>recover database;

8. 打开数据库

sqlplus>alter database open  resetlogs;

 


更多精彩内容,请点击阅读原文”进行查看!

如何每天都能收到如此精彩的文章?

①点击右上角点击查看官方账号”→点击关注

②长按并识别下图中的二维码,直接访问EMC中文支持论坛


 
戴尔易安信技术支持 更多文章 VNX单块硬盘更换演示 VNX 25-Drive(磁盘驱动器)更换演示 VNX 15-Drive(磁盘驱动器)更换演示 Unity 2.5英寸磁盘驱动器更换演示 Unity 3.5英寸磁盘驱动器更换演示
猜您喜欢 几个功能强大的分辨率测试网站 精通型程序员的特点 只需五步,完美利用命令行工具创建LinuxMac系统下的网站备份 程序员这样优化简历,一投制胜 阿里云肖力:下一家独角兽公司将诞生于安全SaaS领域