DP异机恢复-20131204

    今天必须记住这个历史的时刻,工作3年多了,今天头一次遇到数据库需要恢复的情况,早上9点的时候,一个开发的人过来说培训的库访问不了,我赶紧看了看,发现ssh登陆失败,但是可以ping通,随后根据管理网地址登陆到ILO口上看下机器的文本界面,发现没有命了提示符了,随后果断将机器重启,焦急的等待了10分钟,发现pv无法访问,从报错日志看,基本可以确定是raid卡坏掉了,由于这是一台hp的机器,还好机器再保,赶紧联系厂商的人去修,得到的答案是下午1点才可以到现场。考虑到还有那么多人等着使用系统,随后通知领导,让领导去协调用户,其实就是安慰下用户。为了节省时间,我赶紧将数据库恢复到另一台机器上(DP从磁盘恢复)。
1 配置监听和sys密码文件(都是为dp链接时使用)
2 构造pfile文件,启动到nomount
3 恢复ctl文件
找到restore中要恢复的库,然后开始配置,随后就遇到了一个报错:
 
bb
这个错误的原因很明显,就是说host找不到呗,当然找不到了,主机都down了,以前都是从在dp上从rac到rac的恢复测试,这个单机恢复我也没害怕,虽然这次有点紧张,但还是平静了一下,想了想,这种情况dp肯定是可以恢复的,随后我开始先配置options选项,让dp先知道我是异机恢复,就不要去尝试连接主机了,就这样,就这么简单,问题就解决了。以下是配置:
 
bb
这里红色的部分就是client了,也就是异机恢复的那个主机名,这里我是主机名,但一定要是在备份服务器的hosts文件里写好,而且还得和备份服务器有连接,然后下面是异机os的信息,之后最重要的就是settings那,也就是下面sys那了,这里是刚才创建口令文件的密码。基本所有的信息都是异机的信息,也就是目标机器的信息。
随后在回到source选择restore:
 
bb
然后就next,之后就restore了。
由于我是hp的机器,所有dp会将ctl文件恢复到var下,如下:
$ pwd
/var/opt/omni/tmp
$ ll
total 16
-rw-rw-rw-   1 orazkf     oinstall       380 Dec  4 13:10 ob2_dpmctl_restore_5160_d08b.dma--在ctl正在恢复时,可以看到有这个文件,内容大概就是restore的信息,还有一会会产生的ctl的名字。待dp那restore完毕后,在看就可以看到ctl啦。
$ ll
total 19552
-rw-r-----   1 1000       oinstall   10010624 Dec  2 22:12 ctrl_ORCL1.dbf
$ file ctrl_ORCL1.dbf
ctrl_ORCL1.dbf: awk program text

$ rman target /

Recovery Manager: Release 11.1.0.6.0 - Production on Wed Dec 4 13:27:26 2013

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: ZKFT1 (not mounted)

RMAN> restore controlfile from '/var/opt/omni/tmp/ctrl_ORCL1.dbf';

接下来就是恢复datafile:


$ sqlplus / as sysdba


SQL> alter database mount;

Database altered.

在rman中执行以下命令:
run {
 allocate channel 'dev_0' type 'sbt_tape'
parms 'SBT_LIBRARY=/opt/omni/lib/libob2oracle8_64bit.so,ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=ORCL1,OB2BARLIST=ORCL1)';
 send device type 'sbt_tape' 'OB2BARHOSTNAME=原库主机名';
restore database from tag 'TAG20131202T220019';---这里tag是通过list backup来看到的。
 release channel 'dev_0';
}

恢复归档文件:
RMAN> list backup of archivelog all summary completed after "to_date('2013-12-02 22:00:00','yyyy-mm-dd hh24:mi:ss')";

List of Backups
===============
Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
8370    B  A  A SBT_TAPE    02-DEC-13       1       1       NO         TAG20131202T220901
8371    B  A  A SBT_TAPE    02-DEC-13       1       1       NO         TAG20131202T220901
8372    B  A  A SBT_TAPE    02-DEC-13       1       1       NO         TAG20131202T220901

 run {
 allocate channel 'dev_0' type 'sbt_tape'
 parms 'SBT_LIBRARY=/opt/omni/lib/libob2oracle8_64bit.so,ENV=(OB2BARTYPE=Oracle8,OB2APPNAME=ORCL1,OB2BARLIST=ORCL1)';
  send device type 'sbt_tape' 'OB2BARHOSTNAME=原库主机名';
 restore archivelog time between "to_date('2013-12-02 22:00:00','YYYY-MM-DD HH24:MI:SS')" and "to_date('2013-12-03 12:30:00','YYYY-MM-DD HH24:MI:SS')";
  release channel 'dev_0';     
 }
为了减少篇幅,我之类就写了一个通道,其实可以多分配几个的。

然后到sql窗口执行:
sql>recover database using backup controlfile;
sql>alter database open resetlogs;

随后更改应用服务器上链接db的信息,最后将应用拉起来。

最后说下感受:
 工作这么久,一直认为恢复离自己好远,因为在第一家公司工作的时候根本就没有恢复过,连测试都没有过,现在在第二家公司,数据变得重要了,偶尔还做个恢复测试,但那种心情,真是毫无压力,以前做过一次帮用户找数据的恢复,当时是nbu,恢复到solaris的机器上,相对心情也不错,感觉不到救火的心情,但这次真的不一样了,n多n多的用户再等着你解决。不过遇到问题的时候,真的,心有点慌呀。看来还是救火救的少呀。

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24500180/viewspace-1062197/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24500180/viewspace-1062197/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值