OGG同步序列配置
讓GG支持序列同步的配置:
源端:
在設置支持DDL同步后,進入OGG目錄,以SYS用戶登錄數據庫:
sqlplus "/as sysdba"
執(zhí)行 sequence腳本:
SQL>@sequence.sql
輸入gg的DDL同步用戶,即之前創(chuàng)建的ggt,完成后,授權:
GRANT EXECUTE on ggt.updateSequence TO ggt; GRANT EXECUTE on ggt.updateSequence TO gg_test;?????
目標端:
sqlplus "/as sysdba"
執(zhí)行 sequence腳本:
SQL>@sequence.sql
輸入gg的DDL同步用戶,即之前創(chuàng)建的ggt,完成后,授權:
GRANT EXECUTE on ggt.replicateSequence TO ggt;
GRANT EXECUTE on ggt.replicateSequence TO gg_test;
?
回到源端:
EDIT PARAMS ./GLOBALS
加入:
GGSCHEMA ggt??? --目標端最好也這樣做,但官方沒說
然后exit,再ggsci登錄才生效? --這步不做該GLOBALS參數是不能生效!
設置抽取進程,傳輸進程和復制進程分別加入紅色部分:
抽取進程:
extract e003
SETENV (ORACLE_HOME = "/opt/app/oracle/product/11.2.0/dbhome_1")
USERID ggt3, PASSWORD ggt3
exttrail /gglog/dirdat/e003/ex
tranlogoptions altarchivelogdest instance molarac1 +ORAFRA/MOLARAC/ARCHIVELOG,altarchivelogdest instance molarac2 +ORAFRA/MOLARAC/AR
CHIVELOG
TRANLOGOPTIONS ASMUSER?sys@ASM, ASMPASSWORD 1qazWSX654
EOFDELAYCSECS 1
FLUSHCSECS 10
DDL INCLUDE ALL objname gg_test3.*
dynamicresolution
SEQUENCE gg_test3.seq3;
table gg_test3.*;
?
傳輸進程:
extract p003
rmthost 10.0.31.100, mgrport 7809
passthru
FLUSHCSECS 10
EOFDELAYCSECS 10
rmttrail /gglog/dirdat/r003/re?????
SEQUENCE gg_test3.seq3;
table gg_test3.*;
?
復制進程:
replicat r003
SETENV (ORACLE_HOME = "/opt/app/oracle/product/11.2.0.2/dbhome_1")
userid ggt3, password ggt3
handlecollisions
discardfile /gglog/dirrpt/rep003.dsc,append, megabytes 10
EOFDELAYCSECS 10
assumetargetdefs???????????????????????
dynamicresolution
DDL INCLUDE ALL objname gg_test3.*
map gg_test3.*,? target gg_test3.*;
map gg_test3.seq3, target gg_test3.seq3;
注:紅色部分是測試一個序列同步的設置,一般情況下可用通配符表示,例如:SEQUENCE gg_test3.*
?
源端創(chuàng)建序列:
create sequence seq3
?minvalue 1
?maxvalue 999999999999999999999999999
?start with 1
?increment by 1
?nocache?
?order;
這里只能用nocache方式,如果用cache方式,兩端的預分配會不一致,例如默認源端取號是1-20,目標端取號會是21-40,而order與noorder都可以同步,但為了避免rac沖突問題,推薦用order
?
然后進入GGSCI模式:
GGSCI (oracle03) 1> DBLOGIN userid ggt3,password ggt3
Successfully logged into database.
GGSCI (oracle03) 2> FLUSH SEQUENCE gg_test3.seq3
Successfully flushed 1 sequence(s) GG_TEST3.SEQ3
?
測試:
源端:
SQL> select seq3.nextval from dual;
?? NEXTVAL
----------
???????? 2
1 row selected.
SQL>?
SQL> select seq3.nextval from dual;
?? NEXTVAL
----------
???????? 3
1 row selected.
SQL> select seq3.nextval from dual;
?? NEXTVAL
----------
???????? 4
1 row selected.
SQL> select seq3.nextval from dual;
?? NEXTVAL
----------
???????? 5
1 row selected.
?
目標端:
SQL> select seq3.nextval from dual;
?? NEXTVAL
----------
???????? 6
至此,序列同步完成!
總結
- 上一篇: goldengate源端意外宕机,传输进
- 下一篇: OGG重复记录导致复制进程挂起