这节我们将复制环境构建的稍稍复杂一点,这次不再做两台数据库间的复制了,再加进来一个新的数据库,三个数据库间同步数据。
一、 需求描述
设定条件如下:
- 数据库 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.
|