推广 热搜: APP  存储  企业存储  设备  闪存  交换机  华为  联想  oracle  思科 

  • 匿名
点击 405回答 0 2015-09-30 00:00

NetBackup将Oracle数据库恢复到其它服务器

已关闭 悬赏分:0
NetBackup将Oracle数据库恢复到其它服务器

一、前提

>

假设备份已成功(不使用rman catalog)。假设要将数据库恢复到new_host的不同文件系统/data上。以oracle8i语法为例,Oracle9无svrmgrl,需用sqlplus “/ as sysdba”。

>

二、步骤

>

1. 在new_host上创建dba组和与old_host相同的Oracle用户。将/data的可写权限给Oracle用户。确定new_host上有足够的硬盘空间存放新的datafile及archive log file。

>

2. 修改.profile文件中相关的Oracle环境变量,ORACLE_SID保持与old_host中一致。

>

3. 安装与old_host相同版本的Oracle数据库软件,不创建数据库。

>

4. 将old_host中$ORACLE_HOME/dbs下的initSID.ora文件拷至new_host的$ORACLE_HOME/dbs下。如果initSID.ora中有ifile=’xxx.ora’,则将xxx.ora也进行拷贝。Oracle9也可能用spinitSID.ora。

>

5. 创建initSID.ora(及xxx.ora)中所用到的目录。通常所需建立的目录为background_dump_dest、core_dump_dest、user_dump_dest、log_archive_dest。常见结构为:

>

$ORACLE_BASE /admin /SID /bdump /cdump /udump

>

6. 在new_host上安装和配置NetBackup client和Oracle Agent。注意在NetBackup Server的/usr/openv/netbackup/db/altnames目录下touch No.Restrictions(允许异机恢复)。

>

7. 从原机copy或从磁带异机恢复standard方式备份的最新的control file到new_host的/data目录下。

>

8. 修改initSID.ora(及xxx.ora),如果是OPS,将OPS相关的参数去掉:

>

(1) control_files = (“/data/controlfile_name”

>

(2) log_archive_dest=”/data/arch”

>

(3) sort_area_size=20000000

>

如果sort_area_size不够大,恢复archive_log时可能出现ora-1220

>

9. svrmgrl>; startup mount

>

10. svrmgrl>; select file# from v$datafile,记录file#

>

11. svrmgrl>; select * from v$logfile,记录log文件的目录。注意保证该目录存在并且为oracle用户可写。

>

12. 运行恢复脚本:

>

rman nocatalog target / cmdfile restore.rcv msglog restore.log

>

附一:restore.rcv脚本:

>

connect target /

>

run {

>

allocate channel t1 type ‘sbt_tape’ parms=”ENV=(NB_ORA_CLIENT=old_host)”;

>

set newname for datafile 1 to ‘/data/datafile_1.dbf’;

>

set newname for datafile 2 to ‘/data/datafile_2.dbf’;

>

>

restore database;

>

switch datafile all;

>

recover database;

>

sql ‘alter database open resetlogs’;

>

}

>

(如果恢复到与原机相同的位置,不需要set newname和switch datafile)

>

(RMAN在restore database 时只会将数据文件恢复回来;recover database时,才会restore所需的增量备份和archive log。)

>

附二:trouble shooting

>

1. 如果确认全部archive log都已用完,而recover仍提示需下一个archive log,或alter database open resetlogs时提示datafile1 need recover,可采用以下步骤:

>

svrmgrl >; connect internal;

>

svrmgrl >; recover database using backup controlfile until cancel;

>

根据提示,输入

>

cancel <回车>;

>

svrmgrl >; alter database open resetlogs;

>

附三:恢复到历史点

>

如果不是恢复到最新,而是恢复到某一时刻,rman脚本如下:

>

connect target /

>

run {

>

allocate channel t1 type ‘sbt_tape’ parms=”ENV=(NB_ORA_CLIENT=old_host)”;

>

set until time “to_date(’06/30/02 13:00:00′,’MM/DD/YY HH24:MI:SS’)”

>

restore database;

>

recover database;

>

sql ‘alter database open resetlogs’;

>

}

反对 0举报 0 收藏 0
网站首页  |  物流配送  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  RSS订阅  |  违规举报  |  京ICP备14047533号-2
Processed in 0.019 second(s), 7 queries, Memory 1.17 M