使用RMAN进行异机恢复

今天参考了DAVE(链接:http://blog.csdn.net/tianlesoftware/article/details/5749932)的笔记,也做了一次异机恢复实验,中间遇到了一些问题,特记录:

遇到的问题:

                  1、在备份时未采用DAVE的脚本,在复制数据库的时候,导致出现RMAN-06023 : no backup or copy of datafile found to restore,遇到这种情况是由于:在做RMAN 异机恢复的时候,先备份的数据文件,然后备份的控制文件,但在备份控制文件时没有切当前归档,所以备份的控制文件不是最新的,我的解决办法是,重新备份了一下控制文件,然后再恢复,就能找到了。

                 2、不细心,辅助库的不目录建的不全,不能生成数据文件。

                 3、中间还自作聪明,想从10.2.01直接复制到11.2.01,在复制过程中无报错,在打开数据库时,提示需要升级。

步骤:

目标库信息:
ORACLE_BASE: /oracle/app/oracle
ORACLE_HOME: /oracle/app/oracle/product/10.2.0/db_2
ORACLE_SID:orcl
IP: 192.168.1.222
辅助库信息:
ORACLE_BASE: /oracle/app/oracle
ORACLE_HOME: /oracle/app/oracle/product/10.2.0/db_1
ORACLE_SID:tony
IP: 192.168.1.220


我们以实例名相同的为例,实例名不同也一样,在pfile里修改对应参数就可以了。
步骤如下:
(1)构建辅助数据库目录结构
(2)创建pfile,并复制到辅助数据库,修改相关内容
(3)创建辅助实例口令文件
(4)RMAN 备份源库
(5)添加配置监听
(6)将源库备份文件拷贝到辅助库相同位置
(7)用pfile文件,将辅助数据库启动到nomount 状态
(8)执行RMAN duplicate命令复制数据库
(9)创建spfile文件
(10)在磁带上恢复备份
(11)使用DBNEWID程序生成新的DBID

1、辅助库
mkdir -p /oracle/app/oracle/admin/tony/{a,b,c,u,dp}dump
mkdir -p /oracle/app/oracle/oradata/tony/

2、目标库
createp pfile='/oracle/backup/inittony.ora' from pfile

scp /oracle/backup/inittony.ora 192.168.58.220:$ORACLE_HOME/dbs/

orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=54525952
orcl.__streams_pool_size=0
*.audit_file_dest='/oracle/app/oracle/admin/tony/adump'
*.background_dump_dest='/oracle/app/oracle/admin/tony/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/oracle/app/oracle/oradata/tony/control01.ctl','/oracle/app/oracle/oradata/tony/control02.ctl','/oracle/app/oracle/oradata/tony/control03.ctl'#Restore Controlfile
*.core_dump_dest='/oracle/app/oracle/admin/tony/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='orcl'
*.db_recovery_file_dest='/oracle/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=6341787648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.job_queue_processes=10
*.log_archive_dest_1=''
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=60817408
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=188743680
*.sga_target=183500800
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/oracle/app/oracle/admin/tony/udump'

db_file_name_convert = ('/oracle/app/oracle/oradata/orcl','/oracle/app/oracle/oradata/tony')
log_file_name_convert = ('/oracle/app/oracle/oradata/orcl','/oracle/app/oracle/oradata/tony')

3、辅助库创建口令文件
orapwd file=$ORACLE_HOME/dbs/orapwtony password=tony


4、目标库RMAN备份数据库

RUN {
allocate channel c1 type disk;
allocate channel c2 type disk;
BACKUP FORMAT '/oracle/backup/orcl_%U_%T' skip inaccessible filesperset 5  DATABASE TAG orcl_hot_db_bk;
sql 'alter system archive log current';
BACKUP FORMAT '/oracle/backup/arch_%U_%T' skip inaccessible filesperset 5 ARCHIVELOG ALL DELETE INPUT;
backup current controlfile tag='bak_ctlfile' format='/oracle/backup/ctl_file_%U_%T';
backup spfile tag='spfile' format='/oracle/backup/ORCL_spfile_%U_%T';
release channel c2;
release channel c1;
}

(5)两边添加配置监听
通过NETMGR添加,并测试连接正常


(6)将源库备份文件拷贝到辅助库相同位置

[root@oracle10g ~]# more /etc/exports
/oracle/backup (rw,sync)
mkdir -p /oracle/backup
chmod -R 777 /oracle/backup/

[root@oracle~]# mount  -t nfs -o rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,vers=3,timeo=600,actimeo=0 192.168.58.222:/oracle/backup /oracle/backup

[root@oracle~]#
[root@oracle~]# ls /oracle/backup
archivelog                                               inittony.ora
ctl_123_1_20130727_821871179.bkp                         log
FULLBACKUP_ORCL_1348585705_121_1_20130727_821871118.bkp  spfile_124_1_20130727_821871181.bkp

(7)用pfile文件,将辅助数据库启动到nomount 状态
startup nomount pfile=?/dbs/inittony.ora

(8)目标库执行RMAN duplicate命令复制数据库
connect auxiliary sys/tony@tony;
duplicate target database to tony

(9)辅助库创建spfile文件
create spfile from pfile=?/dbs/inittony.ora
shutdown immediate;
startup

(10)辅助库使用DBNEWID程序生成新的DBID

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值