/ 中存储网

IBM TSM 5.5下跨机恢复Oracle数据库的详细步骤

2015-03-18 13:07:02 来源:中存储网

IBM TSM 5.5下跨机恢复Oracle数据库,通过TSM备份软件,将A机的数据库恢复到B机器上。

实验环境:

A机上运行Oracle 10.2.0.4,使用TSM for database 5.5.1对oracle进行了full db备份,包含了归档日志。

B机上安装了Oracle 10.2.0.4代码。希望将A的数据库恢复到B上,因为A机硬件出现了问题。安装TSM for database 5.5.1,使用相同的tsm nodename,例如为dpo。

恢复步骤:

1、无spfile,无控制文件,最典型的就是不能启动数据库

2、利用TSM的备份首先恢复spfile。

使用此命令可以查看TSM备份空间里的oracle控制文件名称
dsmadmc> select node_name,ll_name from backups where node_name=’dpo’

凡是C开头的即时控制文件,可以找到数字最高的文件(最近)文件做恢复;

3、进入rman命令行

rman target /

Rman> shutdown immediate;

Rman> startup nomount;

Rman> set dbid=1367687269

注:dbid可以从A机v$database视图中发现

Rman> run {

Allocate channel d1 type ‘stb_tape’ parms ’ENV=(TDPO_OPTFILE=/usr/Tivoli/tsm/client/api/bin64/tdpo.opt)’ ;

SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE sbt_tape TO ‘%F’;

Restore spfile from ‘c-xxxxxx’;

}

RMAN> shutdown immediate;

Rman> quit

4、当spfile恢复后,用此spfile重新启动

5、如果是在新的机器上做1级恢复,则可能因为目录结构的缺失报错。

主要是2个主目录在$ORACLE_HOME下需要补充完整

5.1 主目录/u01/app/admin下的instance/Xdump

$cd /u01/app/admin

$ mkdir –pinstance_name/adumpinstance_name/bdumpinstance_name/cdumpinstance_name/udump

5.2另一个主目录是datafile所在目录

/u01/app/oracle/dbs/下的

$ mkdirinstance_name

(Av$datafile视图中可以查询)select name from v$datafile;

6、现在恢复控制文件

Rman> startup nomount;

Rman> run {

Allocate channel d1 type ‘stb_tape’ parms ’ENV=(TDPO_OPTFILE=/usr/Tivoli/tsm/client/api/bin64/tdpo.opt)’ ;

Rman> restore controlfile from ‘cxxxxxxxxxxxxxx’

Rman> }

Rman> quit

7、恢复控制文件后,shudown,然后重新到nomount状态还原数据库数据文件

Sql> startup nomount;

还原数据文件

Rman> run {

Allocate channel d1 type ‘stb_tape’ parms ’ENV=(TDPO_OPTFILE=/usr/Tivoli/tsm/client/api/bin64/tdpo.opt)’ ;

Restore database;

Release channel d1;

}

8、恢复数据库

Rman> run {

Allocate channel d1 type ‘stb_tape’ parms ’ENV=(TDPO_OPTFILE=/usr/Tivoli/tsm/client/api/bin64/tdpo.opt)’ ;

recover database;

Release channel d1;

}

Rman> quit

(恢复的时候会报RMAN-06054,media recovery……unkown log…thread 1 sequence 33….)

9、需要resetlog

Sql> recover database using backup controlfile until cancel;

Prompt的时候再输入:cancel

Sql> alter database open resetlogs;

(如果使用备份的controlfile恢复则一定要做resetlogs一步)

B机Oracle恢复完成,可以正常使用了。