已索引

注意事项与步骤

  1. 复制 target 的密码文件到 auxiliary 正确位置并正确命名。
  2. 如果是同主机复制,target 和 auxiliary 的归档保存路径不能冲突(比如都是默认值 $ORACLE_HOME/dbs/arch*),需要使用 FRA 或者配置不同的路径。
  3. 将主库的 pfile 传输到 auxiliary 正确位置并正确命名。
  4. 修改 auxiliary 的 pfile,根据参数文件创建目录。
  5. 在 target 需要有归档日志,如果没有,做几次日志切换以生成归档日志。
  6. 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)
         )
       )
    
  7. 连接 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 命令,也会自动的启用基于备份集的在线复制。

-- By 许望(RHCA、OCM、VCP)
最后修改:2024 年 02 月 06 日 04 : 26 PM
如果觉得我的文章对你有用,请随意赞赏