这节我们将复制环境构建的稍稍复杂一点,这次不再做两台数据库间的复制了,再加进来一个新的数据库,三个数据库间同步数据。

一、 需求描述

设定条件如下:

  • 数据库 sid : jssweb ,jssstr 和jssbak
  • 复制jssweb数据库中schema:member下的usr_user到jssstr数据库中的member下,并更名为users;
  • 复制jssweb数据库中schema:member下的dt_tbl1、dt_tbl2和dt_tmp三表到jssbak数据库中的schema:member下;
  • 全部 源库本地捕获 ,单向同步。
  • 同步 DML/ DDL 操作

二、 准备工作

与前面章节相同,不再重复了。

三、 创建队列和数据库链

首先在JSSWEB操作,创建队列表和连接到jssstr数据库的dblink:

    SQL>  conn strmadmin/strmadmin

    Connected.

    JSSWEB>  set sqlprompt "JSSWEB> "

    JSSWEB>  exec dbms_streams_adm.set_up_queue();

    PL/SQL procedure successfully completed.

    JSSWEB>  create database link jssstr connect to strmadmin identified by strmadmin using ¨jssstr_172.25.13.231¨;

    Database link created.

    JSSWEB>  select sysdate from dual@jssstr;

    SYSDATE

    --------------

    24-3 月 -09

JSSSTR 端操作,创建队列表和连接到test08数据库的dblink:

    SQL>  conn strmadmin/strmadmin

    Connected.

    JSSSTR>  set sqlprompt "JSSSTR> "

    JSSSTR>  exec dbms_streams_adm.set_up_queue();

    PL/SQL procedure successfully completed.

    JSSSTR>  create database link jssbak connect to strmadmin identified by strmadmin using ¨jssbak_172.25.13.227¨;

    Database link created.

    JSSSTR>  select sysdate from dual@jssbak;

    SYSDATE

    ------------

    24-MAR-09

最后在JSSBAK端操作,创建队列表和连接到jssweb数据库的dblink(为了后面执行impdp)

    SQL>  set sqlprompt "JSSBAK> "

    JSSBAK>  conn strmadmin/strmadmin

    Connected.

    JSSBAK>  exec dbms_streams_adm.set_up_queue;

    PL/SQL procedure successfully completed.

    JSSBAK>  create database link jssweb connect to strmadmin identified by strmadmin using ¨jssweb_172.25.13.229¨;

    Database link created.

    JSSBAK>  select sysdate from dual@jssweb;

    SYSDATE

    ------------

    24-MAR-09

由于JSSBAK为新建库,因此我们创建一个新的用户和表空间,用来存放复制的数据:

    JSSBAK>  create tablespace webdata datafile ¨ /data/ oracle/ oradata/jss bak / webdata01.ora¨ size 200m;

    Tablespace created.

    JSSBAK>  create user member identified by member default tablespace webdata quota unlimited on webdata;

    User created.

    JSSBAK>  grant connect,resource to member;

    Grant succeeded.

    JSSBAK>  revoke unlimited tablespace from member;

    Revoke succeeded.