实现双向复制,就是将现有的单向复制的源端和目标端分别看作是新的目标端和源端,再在新的源端上配置extract抽取进程和extract复制进程,在新目标端配置一个replicat应用进程。可是参考http://blog.csdn.net/u010587433/article/details/41862299再配置一次。不过这次就比较省事多。
1.同样要添加辅助日志、强制写日志、关闭回收站和开启归档
<pre name="code" class="sql"><pre name="code" class="sql">SQL> alterdatabase add supplemental log data;
SQL> alterdatabase force logging;
SQL> alter system set recyclebin=off scope=spfile;
SQL> alter system set log_archive_dest_1='location=/u01/archivelog';
SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
2.为双向支持DDL,新的源端执行相应脚本(对/ogg目录下执行下面脚本)
SQL>@marker_setup
SQL>@ddl_setup
SQL>@role_setup
SQL>grant GGS_GGSUSER_ROLE to ogg;
SQL>@ddl_enable
SQL>@ddl_pin
如果某项脚本执行错误,需要重新执行时,先要执行清除的脚本:
@ddl_remove
@marker_remove
3.ogg配置
新的源端配置抽取进程
<pre name="code" class="sql"><span style="font-size:10px;">GGSCI (db1) 1> DBLOGIN USERID ogg, PASSWORD ogg
GGSCI (db1) 2> ADD TRANDATA scott.*
GGSCI (db1) 3> edit params extscott
EXTRACT EXTSCOTT
SETENV(NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORDogg
TRANLOGOPTIONSEXCLUDEUSER ogg --双向复制的配置关键
EXTTRAIL ./dirdat/aa</span>
<span style="font-size:10px;">DDL INCLUDE ALL --双向支持DDL
TABLE scott.*;
GGSCI (db1)11> ADD EXTRACT EXTSCOTT, TRANLOG,BEGIN NOW
EXTRACT added.
GGSCI (db1)12> ADD EXTTRAIL ./dirdat/aa, EXTRACT EXTSCOTT, MEGABYTES 5
EXTTRAIL added.</span>
新的源端配置复制进程
<span style="font-size:10px;">GGSCI (db1) 15> EDIT PARAMS PUMSCOTT
EXTRACT PUMSCOTT
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
PASSTHRU
RMTHOST db, MGRPORT 7809
RMTTRAIL ./dirdat/pa
TABLE scott.*;
GGSCI (db1) 16> ADD EXTRACT PUMSCOTT, EXTTRAILSOURCE ./dirdat/aa
EXTRACT added.
GGSCI (db1) 17> ADD RMTTRAIL ./dirdat/pa, EXTRACT PUMSCOTT, MEGABYTES 5
RMTTRAIL added.</span>
新的目标端配置checkpoint
GGSCI (db) 1> EDIT PARAMS ./GLOBALS
CHECKPOINTTABLE ogg.ggschkpt
GGSCI (db) 1> exit
GGSCI (db) 1> DBLOGIN USERID ogg, PASSWORD ogg
Successfully logged into database.
GGSCI (db) 2> ADD CHECKPOINTTABLE
新的目标端配置应用进程
GGSCI (db) 4> EDIT PARAM REPSCOTT
REPLICAT REPSCOTT
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ogg, PASSWORD ogg
HANDLECOLLISIONS
ASSUMETARGETDEFS
DISCARDFILE ./dirrpt/RORA_aa.DSC, PURGE
MAP scott.*, TARGET scott.*;
GGSCI (db) 5> ADD REPLICAT REPSCOTT, EXTTRAIL ./dirdat/pa
开启以上三个进程,查看状态
GGSCI (db) 6> info all
4.验证双向同步。
在新的目标端新建表、插入数据、删除数据、修改表结构、TRUNCATE操作和删除表分别验证成功