使用DBMS_FILE_TRANSFER配置DATA GURAD和克隆数据库

使用DBMS_FILE_TRANSFER配置DATA GURAD和克隆数据库

通常我们配置DATA GUARD,都需要对主库进行备份,再把备份的备份集复制到备库端进行配置。但是当数据库非常大时,尤其是数据库采用ASM作为存储方案时,如果没有足够的空间用于存放备份集,这样显然就无法通过常规的方式来配置STANDBY。利用DBMS_FILE_TRANSFER则可以方便地将主库的数据文件直接传递至备库的ASM磁盘组,这样再也不需要使用中间存储存放备份文件。下面简单介绍一下通过DBMS_FILE_TRANSFER配置基于ASM存储方案的DATA GUARD和克隆数据库的方法。

一、在备用数据库端创建好ASM磁盘组和一个中间数据库。
首先必须要在备用数据库端配置好ASM实例,创建好ASM磁盘组,并且ASM磁盘组的名字最好是和主库一样的。当然,名字不一样也可以,那就需要一些额外的设置。另外由于DBMS_FILE_TRANSFER远程传输是基于DB LINK的,因此需要在备用库端创建一个中间数据库,这个中间数据库的主要作用便是用于DB LINK传输数据文件。假定我们创建的ASM磁盘组叫DATA,中间数据库名字叫transfer。
二、在备用库的中间数据库上创建一个到主库的DB LINK。做之前需要配置好到主库的TNS。

SQL>create database link lnk_pri connect to system identified by password using ‘primary’;

三、在主库端创建到数据文件目录的directory。

SQL> create or replace directory pri_dir as ‘+DATA/TEST/datafile’;

四、在备库端创建好备库的相应目录,比如bdump,udump等目录,另外在备库的ASM实例中创建备库的数据文件、控制文件等目录。

SQL> alter diskgroup DATA add directory ‘+DATA/TEST/’;
SQL> alter diskgroup DATA add directory ‘+DATA/TEST/DATAFILE’;
SQL> alter diskgroup DATA add directory ‘+DATA/TEST/CRONTROLFILE’;
SQL> alter diskgroup DATA add directory ‘+DATA/TEST/TEMPFILE’;

五、在备库的中间数据库上创建好两个DIRECTORY,用于存放传递过来的数据文件和控制文件。

SQL> create or replace directory stb_dir as ‘+DATA/TEST/datafile’;
SQL> create or replace directory stb_ctl_dir as ‘+DATA/TEST/controlfile’;

六、在中间数据库开始传输数据文件。
由于是在线配置STANDBY,在传输数据文件之前,必须先在主库把相应的表空间置于恢复模式,然后利用dbms_file_transfer进行数据文件的传输,最后再把相应的表空间置为正常状态:

SQL> conn sys/password@lnk_pri as sysdba
SQL> alter tablespace system begin backup;
SQL> conn /as sysdba
SQL>begin
dbms_file_transfer.get_file(
source_directory_object => ‘ pri_dir ‘,
source_file_name => ‘ system.286.650339101′,
destination_directory_object => ‘ stb_dir ‘,
destination_file_name => ‘ system01.dbf ‘,
source_database => ‘lnk_pri’);
end;
/
SQL> conn sys/password@lnk_pri as sysdba
SQL> alter tablespace system end backup;

这样依次对主库的每个数据文件进行处理传递后,主库上的数据文件都会传递至备库的ASM磁盘组上。
七、 传输备库的控制文件。
首先在主库端生成备库的控制文件:

SQL> alter database create standby controlfile as ‘+DATA/TEST/datafilefile/standby.ctl’;

如果是克隆数据库的话,那么生成一个普通备份控制文件即可:

SQL> alter database backup controlfile to ‘+DATA/TEST/datafilefile/standby.ctl’;

然后传输控制文件:

SQL>begin
dbms_file_transfer.get_file(
source_directory_object => ‘ pri_dir ‘,
source_file_name => ‘ standby.ctl’,
destination_directory_object => ‘ stb_ctl_dir ‘,
destination_file_name => ‘ control01.ctl ‘,
source_database => ‘lnk_pri’);
end;
/

八、 配置备用库。

首先配置好备库的参数文件,并且配置好主库和备库的TNS,接下就可以配置备用库了:
启动备库至mount状态

SQL > startup nomount
SQL > alter database mount standby database;

如果是配置克隆数据库的话,则直接将数据库MOUNT就行:

SQL > alter database mount;

执行RMAN的catalog命令,以使控制文件能够识别传输过来的数据文件:

RMAN> catalog start with ‘+DATA/TEST/DATAFILE’;

然后将这些数据文件转换为备库的数据文件:

RMAN >switch database to copy;

如果是配置DATA GUARD的话,则可以将备库置为恢复模式:

SQL > alter database recover managed standby database disconnect from session;

如果是配置克隆数据库的话,那么直接恢复数据库并打开:

SQL >recover database until cancel;
SQL >alter database open resetlogs;

这样DATA GUARD和克隆数据库就配置完成了。最后可以把中间操作创建的directory,DB LINK和中间数据库删除掉。



Link URL: http://lamph.512j.com/b/./?action=show&id=25

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

转载于:http://blog.itpub.net/644227/viewspace-331058/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值