使用RMAN Duplicate方法搭建异名数据库实验

本文介绍了Oracle RMAN工具的基本概念,包括target、catalog和auxiliary等关键组件的作用。详细展示了如何在Oracle 10g R2环境下进行数据库备份,并强调了独立备份归档日志的重要性。同时,还探讨了网络配置对于跨数据库备份的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[img]http://dl2.iteye.com/upload/attachment/0096/7301/7ac5edf9-4284-303e-830f-747ee341da76.jpg[/img]
Oracle RMAN工具工作环境一共有三个数据库源对象:target、catalog和auxiliary。

target就是进行备份操作的源数据库,我们进行备份还原的对象都是在这个库上进行。默认情况下,备份集合信息是保存在controlfile,catalog是一个可选数据库,备份元数据可以单独放在catalog数据库中保存。auxiliary是作为辅助操作进行的,一些与备份还原相关的操作,都可以利用auxiliary上完成。

1、环境介绍



我们选择Oracle 10gR2进行测试,Linux环境主机。



SQL> select * from v$version;

BANNER

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

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE 10.2.0.1.0 Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 – Production



2、Target数据库备份



当前数据库没有选择catalog,采用controlfile进行备份文件。数据库实例名称为oratest,作为数据源。此时备份信息如下:



RMAN> list backup;



List of Backup Sets

===================

BS Key Type LV Size Device Type Elapsed Time Completion Time

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

13 Full 595.90M DISK 00:00:30 05-MAR-14

BP Key: 13 Status: AVAILABLE Compressed: NO Tag: TAG20140305T111526

Piece Name: /u01/app/oracle/flash_recovery_area/ORATEST/backupset/2014_03_05/o1_mf_nnndf_TAG20140305T111526_9kf5pgf2_.bkp



(篇幅原因,有省略……)

BS Key Size Device Type Elapsed Time Completion Time

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

15 15.07M DISK 00:00:02 05-MAR-14

BP Key: 15 Status: AVAILABLE Compressed: NO Tag: TAG20140305T112405

Piece Name: /u01/app/oracle/flash_recovery_area/ORATEST/backupset/2014_03_05/o1_mf_annnn_TAG20140305T112405_9kf66ppv_.bkp



List of Archived Logs in backup set 15

Thrd Seq Low SCN Low Time Next SCN Next Time

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

1 2 576174 04-MAR-14 578638 05-MAR-14

1 3 578638 05-MAR-14 578643 05-MAR-14

1 4 578643 05-MAR-14 578677 05-MAR-14



BS Key Type LV Size Device Type Elapsed Time Completion Time

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

16 Full 6.80M DISK 00:00:01 05-MAR-14

BP Key: 16 Status: AVAILABLE Compressed: NO Tag: TAG20140305T112407

Piece Name: /u01/app/oracle/flash_recovery_area/ORATEST/autobackup/2014_03_05/o1_mf_s_841404247_9kf66qvs_.bkp

Control File Included: Ckp SCN: 578684 Ckp time: 05-MAR-14

SPFILE Included: Modification time: 05-MAR-14



注意:在备份过程中,一定要有一个单独的backup archivelog all的过程,将归档日志作为单独备份集合保存。如果不进行这个操作,在进行duplicate过程中会出现错误。



RMAN> backup archivelog all;



Starting backup at 05-MAR-14

(篇幅原因,有省略……)

Starting Control File and SPFILE Autobackup at 05-MAR-14

piece handle=/u01/app/oracle/flash_recovery_area/ORATEST/autobackup/2014_03_05/o1_mf_s_841404247_9kf66qvs_.bkp comment=NONE

Finished Control File and SPFILE Autobackup at 05-MAR-14



在进行duplicate操作过程中,target数据库最好维持mount状态!



3、网络配置



无论是在本机还是异地进行duplicate构建,保证target和auxiliary互联是重要的。所以在TNS连接方面,要进行配置过程。

Oracle Net配置三个文件,listener.ora、tnsnames.ora和sqlnet.ora。起码要保证tnsnames.ora的互联配置。



[oracle@SimpleLinuxUp admin]$ cat tnsnames.ora

# tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.



ORATEST = --target

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = oratest)

)

)



ORAAUX = --目标auxiliary

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = oraaux)

)

)



一些文献(包括官方MOS文章)都推荐额外进行listener.ora的配置,将两个服务作为静态注册注册进监听程序listener。这样做的基础是这样的:在进行duplicate过程中,如果我们是从target端进行操作,就需要通过auxiliary端的监听器访问auxiliary。而此时auxiliary只有一个实例对象,虽然可以动态注册,但是注册状态是blocked。



Service "oraaux" has 1 instance(s).

Instance "oraaux", status BLOCKED, has 1 handler(s) for this service...



从9i到11g,Blocked状态是不允许进行远程连入的。当我们试图通过监听器连入的时候,是会报错。



MAN> connect auxiliary sys/oracle@oraaux



RMAN-00571: =============================

RMAN-00569: ========= ERROR MESSAGE STACK FOLLOWS =====

RMAN-00571: ============================

RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections



解决方法有两个:一个就是放弃使用动态注册方法,就需要手工修改listener.ora文件。也就是为什么很多网络同仁文章中推荐这个步骤。另一种方法就是从auxiliary端进行duplicate操作,这样使用/匿名登录是没有问题的。第二种方法的缺点是一些时候需要将备份集合传递到auxiliary所在服务器目录中。

笔者本次就选取第二种方法进行实验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值