日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle ogg双向通步,使用ogg的Oracle-Oracle的双向复制

發布時間:2025/5/22 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle ogg双向通步,使用ogg的Oracle-Oracle的双向复制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不使用數據泵完成Oracle-Oracle的雙向復制。

操作系統:redhat? as?? 4.5

oracle version:10.2.0.1

源端ip:? ??????? 172.17.61.131????????? rhel131

目標端ip:172.17.61.132????????? rhel132

目標:將scott.test1表從源端可以復制到目標端,并且目標端的數據更改也能同步到源端。

1) 設置源庫和目標庫的ORACLE用戶環境(源庫、目標庫都一樣設置)

[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)? 初始化源端數據庫(由于是雙向同步,所以兩臺機器都要設置)

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)開啟強制日志模式

SQL>alter database forcelogging;

d)為goldengate創建用戶并授權

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)軟件安裝(源端和目標端相同的操作)

[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)? 源端和目標端都配置好manager進程

在源庫和目標庫上配置 GoldenGate 管理進程(源庫、目標庫都一樣) GGSCI (rhel131) 1>edit params mgr

PORT7809PURGEOLDEXTRACTS/u01/app/oracle/ogg11/dirdat, USECHECKPOINTS, MINKEEPDAYS 10

GGSCI (rhel131) 1>start mgr Manager started.

5)? 源端配置extract進程

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,因為是直接將trail文件傳輸到目的端。

GGSCI(rhel131) 3> edit params ext1

extractext1

TRANLOGOPTIONS EXCLUDEUSER ogg

--加上這個參加是為了避免雙向復制時目標和源重復復制數據。

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

至此源庫的操作已結束。

6)? 目標庫建立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)? 目標庫建立replicate進程

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;

目標庫同步沒有問題:

SQL>? select * from test1;

T1

----------

1

下面要進行雙向同步的操作:

9)? 在目標端配置extract進程

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產生的文件名必須要和之前的分開,之前用的是lt,現在是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進程

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)?????????????測試一下反向的同步:

目標端:

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

同步成功了!

總結

以上是生活随笔為你收集整理的oracle ogg双向通步,使用ogg的Oracle-Oracle的双向复制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。