ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 异机恢复案例(目录不一致)

异机恢复案例(目录不一致)

原创 Linux操作系统 作者:313558251 时间:2010-07-21 20:30:09 0 删除 编辑

环境概述:

 

6号机为生产库,AIX5.3,oracle9i

ORACLE_HOME=/u01/prod/proddb/

7号机为备份机,AIX5.3,oracle9i

ORACLE_HOME=/u03/prod/proddb/

 

 

6.7号机为HA双机结构,备份过程,7号机由客户协调脱离HA。

 

 

 

测试经过:

将生产库数据由6号机备出来,再恢复到7号机。

 

 

 

 

 

 

 

 

 

一:6号备份过程。

操作3小时

 

Database全备,备份目标目录/backup

脚本----hot.sh,hot.sh.out,

 

操作记录:

 

备份脚本在9i执行时候出现oracle本身自带bug,在全备脚本+上diskratio=0后恢复正常

修改控制文件自动备份,并指定备份目标目录/backup

将备份的文件FTP到7号机,存放在7号机的/backup目录下。

 

二:7号恢复过程。

操作时间5小时,手动操作

由于ORACLE_HOME采用目录转接的方法进行目录不一致恢复。

1.  7号机采用原有的init.ora启动到nomount

RMAN > startup nomount;

-----------------------------------------------------------

2.恢复控制文件

RMAN >restore controlfile from '/u03/prod/test/c-89683826-20100720-01';

 

3.将生产数据库对应的文件目录,将其恢复到7号机的文件路径

 

在生产库6号机下对datafile进行查询

 

SQL > select name from v$datafile;

 

根据结果编写下面的rman  路径修改文本

 

run

{

set newname for datafile '/u01/prod/proddata/system01.dbf' to

'/u03/prod/proddata/system01.dbf';

set newname for datafile '/u01/prod/proddata/system02.dbf' to

'/u03/prod/proddata/system02.dbf';

set newname for datafile '/u01/prod/proddata/system03.dbf' to

'/u03/prod/proddata/system03.dbf';

set newname for datafile '/u01/prod/proddata/system04.dbf' to

'/u03/prod/proddata/system04.dbf';

set newname for datafile '/u01/prod/proddata/system05.dbf' to

'/u03/prod/proddata/system05.dbf';

set newname for datafile '/u01/prod/proddata/system06.dbf' to

'/u03/prod/proddata/system06.dbf';

set newname for datafile '/u01/prod/proddata/system07.dbf' to

'/u03/prod/proddata/system07.dbf';

set newname for datafile '/u01/prod/proddata/system08.dbf' to

'/u03/prod/proddata/system08.dbf';

set newname for datafile '/u01/prod/proddata/system09.dbf' to

'/u03/prod/proddata/system09.dbf';

set newname for datafile '/u01/prod/proddata/system10.dbf' to

'/u03/prod/proddata/system10.dbf';

set newname for datafile '/u01/prod/proddata/system11.dbf' to

'/u03/prod/proddata/system11.dbf';

set newname for datafile '/u01/prod/proddata/undo01.dbf' to

'/u03/prod/proddata/undo01.dbf';

set newname for datafile '/u01/prod/proddata/a_archive01.dbf' to

'/u03/prod/proddata/a_archive01.dbf';

set newname for datafile '/u01/prod/proddata/a_int01.dbf' to

'/u03/prod/proddata/a_int01.dbf';

set newname for datafile '/u01/prod/proddata/a_media01.dbf' to

'/u03/prod/proddata/a_media01.dbf';

set newname for datafile '/u01/prod/proddata/a_nolog01.dbf' to

'/u03/prod/proddata/a_nolog01.dbf';

set newname for datafile '/u01/prod/proddata/a_queue01.dbf' to

'/u03/prod/proddata/a_queue01.dbf';

set newname for datafile '/u01/prod/proddata/a_queue02.dbf' to

'/u03/prod/proddata/a_queue02.dbf';

set newname for datafile '/u01/prod/proddata/a_ref01.dbf' to

'/u03/prod/proddata/a_ref01.dbf';

set newname for datafile '/u01/prod/proddata/a_ref02.dbf' to

'/u03/prod/proddata/a_ref02.dbf';

set newname for datafile '/u01/prod/proddata/a_summ01.dbf' to

'/u03/prod/proddata/a_summ01.dbf';

set newname for datafile '/u01/prod/proddata/a_txn_data01.dbf' to

'/u03/prod/proddata/a_txn_data01.dbf';

set newname for datafile '/u01/prod/proddata/a_txn_data02.dbf' to

'/u03/prod/proddata/a_txn_data02.dbf';

set newname for datafile '/u01/prod/proddata/a_txn_data03.dbf' to

'/u03/prod/proddata/a_txn_data03.dbf';

set newname for datafile '/u01/prod/proddata/a_txn_ind01.dbf' to

'/u03/prod/proddata/a_txn_ind01.dbf';

set newname for datafile '/u01/prod/proddata/a_txn_ind02.dbf' to

'/u03/prod/proddata/a_txn_ind02.dbf';

set newname for datafile '/u01/prod/proddata/a_txn_ind03.dbf' to

'/u03/prod/proddata/a_txn_ind03.dbf';

set newname for datafile '/u01/prod/proddata/a_txn_ind04.dbf' to

'/u03/prod/proddata/a_txn_ind04.dbf';

set newname for datafile '/u01/prod/proddata/a_txn_ind05.dbf' to

'/u03/prod/proddata/a_txn_ind05.dbf';

set newname for datafile '/u01/prod/proddata/ctxd01.dbf' to

'/u03/prod/proddata/ctxd01.dbf';

set newname for datafile '/u01/prod/proddata/odm.dbf' to

'/u03/prod/proddata/odm.dbf';

set newname for datafile '/u01/prod/proddata/olap.dbf' to

'/u03/prod/proddata/olap.dbf';

set newname for datafile '/u01/prod/proddata/owad01.dbf' to

'/u03/prod/proddata/owad01.dbf';

set newname for datafile '/u01/prod/proddata/porta01.dbf' to

'/u03/prod/proddata/porta01.dbf';

set newname for datafile '/u01/prod/proddata/xzrpt.dbf' to

'/u03/prod/proddata/xzrpt.dbf';

restore database;

switch datafile all;

}

执行

-----------------------------------------------------------

4. 在6号机上的plsql下,执行

SQL > select member from v$logfile;

 

在7号机上的plsql下根据6号机的查询结果,修改联机日志和名称,目的是防止在Open resetlogs时报错

SQL > alter database rename file '/u01/prod/proddata/log01a.dbf' to

'/u03/prod/proddata/log01a.dbf';

 

SQL > alter database rename file '/u01/prod/proddata/log01b.dbf' to

'/u03/prod/proddata/log01b.dbf';

 

SQL > alter database rename file '/u01/prod/proddata/log02a.dbf' to

'/u03/prod/proddata/log02a.dbf';

 

SQL > alter database rename file '/u01/prod/proddata/log02b.dbf' to

'/u03/prod/proddata/log02b.dbf';

 

-------------------------------

5.在rman下

RMAN > list backup of archivelog all;

 

根据sequence以及thread指定恢复到thread 1 sequence 21857

(只有一组在线联机重做日志)

RMAN > run {

 set until sequence 21857 thread 1;

 recover database;}

或者回到RMAN直接执行

RMAN > recover database;

 

6.后续操作:

 

重建临时表空间

 

SQL > create temporary tablespace temp1 temfile '/u03/prod/proddata/temp1’ size 100m;

 

SQL > alter database default temporary tablespace temp1;

 

SQL > drop database temp including contents and datafiles;

7.全备份7号机数据

Run{

allocate channel c1 device type disk format ‘/backup/oracle/df_%U’;

allocate channel c2 device type disk format ‘/backup/oracle/df_%U’;

backup database diskratio=0;

backup archivelog all;

}

 

 

 

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

上一篇: 调优报告
请登录后发表评论 登录
全部评论

注册时间:2009-12-27

  • 博文量
    6
  • 访问量
    126854