rman duplicate

2 篇文章 0 订阅


11gR2利用active rman duplicate,源端归档模式下不停机复制一套新环境。
以testa复制到testb为例,具体步骤如下:

1.源端库TESTA打开归档模式
SYS@testa> archive log list;
Database log mode        No Archive Mode
Automatic archival        Disabled
Archive destination        USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     71587
Current log sequence        71589

SYS@testa> alter system set db_recovery_file_dest_size=10G scope=spfile;

System altered.

SYS@testa> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 2071830528 bytes
Fixed Size                  2160776 bytes
Variable Size             973080440 bytes
Database Buffers         1073741824 bytes
Redo Buffers               22847488 bytes
Database mounted.

SYS@testa> alter database archivelog;

Database altered.

SYS@testa> alter database open;

Database altered.

SYS@testa> select Log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

如果是刚打开归档模式,最好手工切换日志一下。
SYS@testa>alter system switch logfile;


2.在源端TESTA生成pfile文件,传至目标端TESTB。
SQL> create pfile='$HOME/testa/inittestb.ora' from spfile;

File created.

machine:testa > cd $HOME/testa
machine:testa > sed 's/testa/testb/g' inittesta.ora >inittestb.ora

向inittestb.ora中添加转换数据文件,redo文件路径的参数:
文件系统到文件系统:
*.db_file_name_convert=('/oracle/data01/oradata/testa/','/oracle/data01/oradata/testb/')
*.log_file_name_convert=('/oracle/data01/oradata/testa/','/oracle/data01/oradata/testb/')

ASM到ASM,只要加卷名,而且不加“/”,如下:
*.db_file_name_convert=('+DATA_TESTA_MDG','+DATA_TESTB_MDG')
*.log_file_name_convert=('+DATA_TESTA_MDG','+DATA_TESTB_MDG','+FRA_TESTA_MDG','+FRA_TESTB_MDG')

文件系统到ASM:
*.db_file_name_convert=('/oracle/data01/oradata/testa/','+DATA_TESTB_MDG')
*.log_file_name_convert=('/oracle/data01/oradata/testa/','+DATA_TESTB_MDG')

将initd1pacms.ora拷贝到目标端的$ORACLE_HOME/dbs下.

3.配置监听,tnsnames.ora,密码文件:

修改密码文件,源端和目标到都要执行:
$ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=test1234  force=y

配置Tnsnames.ora文件,源端和目标到都要添加:
testb>echo "testa=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=vip)(Port=1526))(CONNECT_DATA=(SID=testa)))" >>$ORACLE_HOME/network/admin/tnsnames.ora
testb>echo "testb=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=vip)(Port=1526))(CONNECT_DATA=(SID=testb)))" >>$ORACLE_HOME/network/admin/tnsnames.ora

> tnsping testa

4.目标端TESTB编辑rman.sh脚本复制:
Rman.sh如下:
#!/bin/bash
#rman active duplicate###
rman << EOF
connect target sys/paic1234@testa
connect AUXILIARY sys/paic1234@testb
RUN
{
  allocate auxiliary channel c1 device type disk;
  allocate auxiliary channel c2 device type disk;
  allocate auxiliary channel c3 device type disk;
  allocate auxiliary channel c4 device type disk;
  allocate channel d1 device type disk;
  allocate channel d2 device type disk;
  allocate channel d3 device type disk;
  allocate channel d4 device type disk; 
  DUPLICATE TARGET DATABASE
      TO testb
      FROM ACTIVE DATABASE;
}
EOF

开始复制,复制时需要注意是否使用nofilenamecheck参数,如果两个实例相关数据目录结构完全相同,则需要指定,否则会报错。
DUPLICATE TARGET DATABASE  TO testb  FROM ACTIVE DATABASE nofilenamecheck;


后台发起:nohup sh ./rman.sh >duplicate.log 2>&1 &
附rman duplicate的日志如下:
 

报错总结:
如果处理时报错:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 12/21/2016 09:49:50
RMAN-05501: aborting duplication of target database
RMAN-05541: no archived logs found in target database


出现这种错误很可能是你刚刚将主数据库切换为归档模式然后紧接着就利用RMAN的duplicate创建standby数据库导致的。原因就在于主数据库切换为归档模式之后还未发生过切换,手动在主数据库上切换一次就可以了
SYS>alter system switch logfile;



报这个错,可能是listener.ora文件配置的ORACLE_HOME路径不对
cnsz081129:testa > rman

Recovery Manager: Release 11.2.0.4.0 - Production on Wed Dec 28 15:58:31 2016

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

RMAN> connect AUXILIARY sys/test1234@testb

RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-04006: error from auxiliary database: ORA-01017: invalid username/password; logon denied

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值