DG搭建之巧用RMAN进行主备库数据迁移

        我们在搭建DG(data guard)的时候,你的数据时如何从主库到达备库的?使用热备的方式么?再用scp命令拷贝过去?啊!那你就OUT了!告诉你一个秘密,我使用rman工具就可以完成备库数据文件和控制文件的创建。参数文件、tnsname文件、监听配置、密码文件、数据库软件的安装,这些统统略过,让我们就来看看如何让rman备份一份用来建立standby(备库)的备份集或者是镜像,再甚至是压缩的备份集。还能给rman一个时间段完成这个备份任务,不必急于立刻完成备份任务。这样就可以让rman慢慢做的同时,oracle处理事务的速度还不会受到很大影响(据说这是oracle 10g的新功能呦!)
    
       一切以事实为依据,来看看我做的实验吧:

standby 备库安装和主库一样版本的OS(操作系统),oracle软件,可以不建库,后面用rman+手工的方式建立,配好参数文件,密码文件,监听文件,net service name(tnsname.ora中的配置)。

步骤1)接下来使用rman备份,用来制作standby 的数据文件和控制文件,在主库上操作:
rman target sys/oracle
RMAN> backup    [as compressed backupset压缩成备份集] [backupset备份集形式] [不写就是默认值为copy,即镜像拷贝形式] full format = '/u01/db_backup/rman_backup/oracledb%U.bkp'  [duration 8:00 [partial如果没有备份完,不会报错,剩下的任务被cancel掉了] minimize load filesperset 1八个小时内,以负载最小的方式备份,每个数据文件备份到一个备份片中] database include current controlfile for standby;一并备份现在使用的控制文件。不用再担心,rman一起启动,别的事物就被阻塞了的现象出现了。因为rman合理分配这八个小时的,把负载分担在一段时间内。

来整理下:
这里用了backupset子句,和duration子句。
backupset子句有三种形式:
1.copy镜像备份,就好像热汤面一样,整碗面都被复制了一份保存起来,和原来的一模一样;
2.as backupset备份集形式,就好像是热汤面捞干的,汤汤水水都不要了,只要干货,使用空间少了,备份了那些数据文件里,有内容的oblock(oracle 块);
3.as compressed backupset这个就是压缩的备份集,更好理解了,就是一碗热汤面,被做成了方便面,不仅捞干的,还脱水,做成了方便面,使用空间更小,而且备份时间反而比copy,和backupset速度快了,这是oracle在算法上下了很大功夫,既节省了空间,又节省了时间,我们为什么不用呢。哈。好东西嘢!
duration子句呢:
1.duration 8:00:八个小时内备份完就可以;
2.partial:如果没有备份完,不会报错,剩下的任务被cancel掉了;
3.minimize load filesperset 1:以负载最小的方式备份,每个数据文件备份到一个备份片中,load也可以被替换成time,以消耗时间最少为代价来进行备份任务;
format:给一个文件名;
include current controlfile for standby:做一个包含现在使用的控制文件的备份,并且这个备份是专为standby使用的。

上面说了那么多,其实我就用了下面的命令:
RMAN> backup as compressed backupset full format = '/u01/db_backup/rman_backup/oracledb%U.bkp' duration 8:00 partial minimize load filesperset 1database include current controlfile for standby;

步骤2)主库nfs方式共享rman_backup目录,在备库用nfs方式 mount到同样的目录上。(nfs共享会吧?不多说了,不会的查查命令啥的!不多说了)

步骤3)备库挂在这个同样的目录:
sql>satrtup nomount;
root:#mount 192.168.0.9:/u01/db_backup/rman_backup/  /u01/db_backup/rman_backup/
cd /u01/db_backup/rman_backup/
****************************************************************************************
注意挂载目录和本地目录一定要完全相同,否则rman recover时找不到目录
**************
**************************************************************************

步骤4)进入rman使用命令创建standby
pri和std都是tnsname.ora文件里,指定好的net service name
rman target sys/oracle@pri auxiliary sys/oracle@std
用rman命令复制一个standby:
rman>duplicate target database for standby nofilenamecheck;

步骤5)加好standby日志组:
alter database add standby LOGFILE GROUP 9 '/opt/oracle/oradata/test1/standbyredo09.log' size 50m;
alter database add standby LOGFILE GROUP 10 '/opt/oracle/oradata/test1/standbyredo10.log' size 50m;
组的个数应该比online redo log组多一组(这个我也是看其他人写的)。

步骤6)备库:还原备库,使数据与主库同步命令如下:
alter database recover managed standby database disconnect from session;
步骤7)观察两遍的alert_.log 文件,看看是否应用了日志,并且在主库切换日志,看两边是否同步了归档日志以确定备库是否建立成功。

主库不停机搭建DG就轻松实现了!\(^o^)/ 欧也!

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

转载于:http://blog.itpub.net/22782896/viewspace-662217/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值