ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用DBMS_FILE_TRANSFER配置DATA GURAD和克隆数据库

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

原创 Linux操作系统 作者:stziyan 时间:2008-06-03 15:57:35 0 删除 编辑

使用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:

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

请登录后发表评论 登录
全部评论

注册时间:2008-02-23

  • 博文量
    23
  • 访问量
    41600