已索引
注意事项与步骤
- 复制 target 的密码文件到 auxiliary 正确位置并正确命名。
- 如果是同主机复制,target 和 auxiliary 的归档保存路径不能冲突(比如都是默认值 $ORACLE_HOME/dbs/arch*),需要使用 FRA 或者配置不同的路径。
- 将主库的 pfile 传输到 auxiliary 正确位置并正确命名。
- 修改 auxiliary 的 pfile,根据参数文件创建目录。
- 在 target 需要有归档日志,如果没有,做几次日志切换以生成归档日志。
auxiliary 需要静态注册,连接 auxiliary 时使用静态服务名,连接target时使用自动注册的服务名即可,tnsnames不是必须的。
SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (GLOBAL_DBNAME=demo) (ORACLE_HOME=/data/oracle/app/oracle/product/11.2.0/dbhome_1) (SID_NAME=demo) ) )
连接 target 和 auxiliary,开始复制:
I. 如果不是用来做 standby database,redo size 可以不跟目标保持一致。 II. 复制操作会自动生成spfile。
duplicate 脚本范例
"Push" method based on image copies
run{
ALLOCATE CHANNEL pri1 DEVICE TYPE DISK;
ALLOCATE CHANNEL pri2 DEVICE TYPE DISK;
ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;
ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK;
SET NEWNAME FOR DATABASE TO '/data/app/db/oradata/demo/%b';
DUPLICATE TARGET DATABASE TO demo
FROM ACTIVE DATABASE
NOFILENAMECHECK
logfile
group 1 ('/data/app/db/oradata/demo/redo01a.log') SIZE 50M REUSE,
group 2 ('/data/app/db/oradata/demo/redo02a.log') SIZE 50M REUSE,
group 3 ('/data/app/db/oradata/demo/redo03a.log') SIZE 50M REUSE;
}
"Pull" method based on image copies (12 and higher)
run{
ALLOCATE CHANNEL pri1 DEVICE TYPE DISK;
ALLOCATE CHANNEL pri2 DEVICE TYPE DISK;
ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;
ALLOCATE AUXILIARY CHANNEL aux2 DEVICE TYPE DISK;
SET NEWNAME FOR DATABASE TO '/data/app/db/oradata/demo/%b';
DUPLICATE TARGET DATABASE TO demo
FROM ACTIVE DATABASE
NOFILENAMECHECK
USING COMPRESSED BACKUPSET
SECTION SIZE 200M
logfile
group 1 ('/data/app/db/oradata/demo/redo01a.log') SIZE 50M REUSE,
group 2 ('/data/app/db/oradata/demo/redo02a.log') SIZE 50M REUSE,
group 3 ('/data/app/db/oradata/demo/redo03a.log') SIZE 50M REUSE;
}
在DUPLICATE命令之前使用了 SET ENCRYPTION 命令,也会自动的启用基于备份集的在线复制。