oracle ogg双向通步,使用ogg的Oracle-Oracle的双向复制
不使用數(shù)據(jù)泵完成Oracle-Oracle的雙向復(fù)制。
操作系統(tǒng):redhat? as?? 4.5
oracle version:10.2.0.1
源端ip:? ??????? 172.17.61.131????????? rhel131
目標(biāo)端ip:172.17.61.132????????? rhel132
目標(biāo):將scott.test1表從源端可以復(fù)制到目標(biāo)端,并且目標(biāo)端的數(shù)據(jù)更改也能同步到源端。
1) 設(shè)置源庫和目標(biāo)庫的ORACLE用戶環(huán)境(源庫、目標(biāo)庫都一樣設(shè)置)
[oracle@rhel131 ~]$ cat .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startupprograms
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/10201
ORA_OGG_HOME=$ORACLE_BASE/ogg11
ORACLE_SID=orcl
PATH=$HOME/bin:$ORACLE_HOME/bin:$ORA_OGG_HOME:$PATH:$ORACLE_HOME/OPatch
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:$ORA_GG_HOME
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATHLD_LIBRARY_PATHORA_OGG_HOME
unset USERNAME
umask 022
2)? 初始化源端數(shù)據(jù)庫(由于是雙向同步,所以兩臺機(jī)器都要設(shè)置)
a)????????開啟歸檔模式
SQL> alter system setlog_archive_dest_1='location=/u01/app/oracle/oradata/orcl/arch' scope=both;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL>alter database add supplemental log data;
SQL>altersystem switch logfile;
SQL>selectsupplemental_log_data_min from v$database;
c)開啟強(qiáng)制日志模式
SQL>alter database forcelogging;
d)為goldengate創(chuàng)建用戶并授權(quán)
SQL> create tablespace tbs_oggdatafile
2?'/u01/app/oracle/oradata/orcl/tbs_ogg01.dbf' size 100m autoextend on;
SQL> create user ogg identified byogg default tablespace tbs_ogg temporary tablespace temp quota unlimited ontbs_ogg;
SQL>grant connect,resource to ogg;
SQL>grant create session,alter session to ogg;
SQL>grant select any dictionary,select any table to ogg;
SQL>grant alter any table to ogg;
SQL>grant flashback any table to ogg;
SQL>grant execute on dbms_flashback to ogg;
SQL>grant insert any table to ogg;
SQL>grant delete any table to ogg;
SQL>grant update any table to ogg;
3)軟件安裝(源端和目標(biāo)端相同的操作)
[oracle@rhel131 ogg11]$ unzipogg112101_fbo_ggs_Linux_x86_ora10g_32bit.zip
[oracle@rhel131 ogg11]$ tar -xvffbo_ggs_Linux_x86_ora10g_32bit.tar
[oracle@rhel131 ogg11]$ ggsci
GGSCI (rhel131) 1>create subdirs
4)? 源端和目標(biāo)端都配置好manager進(jìn)程
在源庫和目標(biāo)庫上配置 GoldenGate 管理進(jìn)程(源庫、目標(biāo)庫都一樣) GGSCI (rhel131) 1>edit params mgr
PORT7809PURGEOLDEXTRACTS/u01/app/oracle/ogg11/dirdat, USECHECKPOINTS, MINKEEPDAYS 10
GGSCI (rhel131) 1>start mgr Manager started.
5)? 源端配置extract進(jìn)程
GGSCI(rhel131) 1> add extract ext1,tranlog,begin now
EXTRACTadded.
GGSCI(rhel131) 2> add rmttrail/u01/app/oracle/ogg11/dirdat/lt, extract ext1
EXTTRAILadded.
這里不能用add exttrail,因?yàn)槭侵苯訉rail文件傳輸?shù)侥康亩恕?/p>
GGSCI(rhel131) 3> edit params ext1
extractext1
TRANLOGOPTIONS EXCLUDEUSER ogg
--加上這個參加是為了避免雙向復(fù)制時目標(biāo)和源重復(fù)復(fù)制數(shù)據(jù)。
setenv(oracle_sid=orcl,nls_lang= AMERICAN_AMERICA.WE8ISO8859P1)
useridogg, password ogg
rmthost172.17.61.132, mgrport 7809
rmttrail/u01/app/oracle/ogg11/dirdat/lt
tablescott.test1;
GGSCI(rhel131) 8>? start extract ext1
SendingSTART request to MANAGER ...
EXTRACTEXT1 starting
GGSCI(rhel131) 9>? info all
Program???? Status?????Group?????? Lag at Chkpt? Time Since Chkpt
MANAGER???? RUNNING
EXTRACT???? RUNNING????EXT1??????? 00:13:28????? 00:00:01
至此源庫的操作已結(jié)束。
6)? 目標(biāo)庫建立checkpoint
GGSCI (rhel132) 1> edit params GLOBALS
GGSCHEMAOGG
CHECKPOINTTABLEogg.checkpoint
GGSCI(rhel132) 2> dblogin userid ogg password ogg
GGSCI(rhel132) 3> add checkpointtable ogg.checkpoint
7)? 目標(biāo)庫建立replicate進(jìn)程
GGSCI(rhel132) 4> add replicat rep1, exttrail ./dirdat/lt, checkpointtableogg.checkpoint
REPLICATadded.
GGSCI(rhel132) 5> edit params rep1
replicatrep1
setenv(oracle_sid=orcl,nls_lang= AMERICAN_AMERICA.WE8ISO8859P1)
useridogg, password ogg
handlecollisions
assumetargetdefs
discardfile./dirrpt/rora_aa.dsc, purge
mapscott.test1, target scott.test1;
~
GGSCI(rhel132) 6> start replicat rep1
GGSCI(rhel132) 7> info all
Program???? Status?????Group?????? Lag at Chkpt? Time Since Chkpt
MANAGER???? RUNNING
REPLICAT??? RUNNING????REP1??????? 00:00:00????? 00:00:02
8)? 測試一下是否能同步過來
SQL>insert into scott.test1
2?values (1);
1row created.
SQL>commit;
目標(biāo)庫同步?jīng)]有問題:
SQL>? select * from test1;
T1
----------
1
下面要進(jìn)行雙向同步的操作:
9)? 在目標(biāo)端配置extract進(jìn)程
GGSCI(rhel132) 8> add extract ext2, tranlog, begin now
EXTRACTadded.
GGSCI(rhel132) 10> add rmttrail /u01/app/oracle/ogg11/dirdat/tl, extract ext2
RMTTRAILadded.
Trail產(chǎn)生的文件名必須要和之前的分開,之前用的是lt,現(xiàn)在是tl
GGSCI(rhel132) 11> edit params ext2
extractext2
TRANLOGOPTIONSEXCLUDEUSER ogg
setenv(oracle_sid=orcl,nls_lang= AMERICAN_AMERICA.WE8ISO8859P1)
useridogg, password ogg
rmthost172.17.61.131, mgrport 7809
rmttrail/u01/app/oracle/ogg11/dirdat/tl
tablescott.test1;
GGSCI(rhel132) 19> info all
Program???? Status?????Group?????? Lag at Chkpt? Time Since Chkpt
MANAGER???? RUNNING
EXTRACT???? RUNNING????EXT2??????? 00:00:00????? 00:00:02
REPLICAT??? RUNNING????REP1??????? 00:00:00????? 00:00:00
10)?????????????源庫建立checkpoint
GGSCI (rhel131) 1> edit params GLOBALS
GGSCHEMAOGG
CHECKPOINTTABLEogg.checkpoint
GGSCI(rhel131) 2> dblogin userid ogg password ogg
GGSCI(rhel131) 3> add checkpointtable ogg.checkpoint
11)?????????????源庫建立replicate進(jìn)程
GGSCI(rhel131) 1> add replicat rep2, exttrail ./dirdat/tl, checkpointtableogg.checkpoint
REPLICATadded.
GGSCI(rhel131) 2> edit params rep2
replicatrep2
setenv(oracle_sid=orcl,nls_lang= AMERICAN_AMERICA.WE8ISO8859P1)
useridogg, password ogg
handlecollisions
assumetargetdefs
discardfile./dirrpt/rora_aa.dsc, purge
mapscott.test1, target scott.test1;
GGSCI(rhel131) 3> start replicat rep2
GGSCI(rhel131) 4> info all
Program???? Status?????Group?????? Lag at Chkpt? Time Since Chkpt
MANAGER???? RUNNING
EXTRACT???? RUNNING????EXT1??????? 00:00:00????? 00:00:08
REPLICAT??? RUNNING????REP2??????? 00:00:00????? 00:00:01
12)?????????????測試一下反向的同步:
目標(biāo)端:
SQL> insertinto test1 values(4);
1 row created.
SQL> commit;
Commitcomplete.
SQL>? select * from test1;
T1
----------
4
4
2
3
1
源端:
SQL>select * from test1;
T1
----------
2
3
1
4
同步成功了!
總結(jié)
以上是生活随笔為你收集整理的oracle ogg双向通步,使用ogg的Oracle-Oracle的双向复制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php向指定文件发送消息,PHP-将文件
- 下一篇: oracle插入时判断重复,Oracle