OGG_linux搭建實驗

lusklusklusk發表於2016-08-30

OGG下載地址

Download--> Middleware-->GoldenGate

http://www.oracle.com/technetwork/middleware/goldengate/downloads/index.html

http://www.oracle.com/technetwork/cn/testcontent/index-100295-zhs.html

 

實驗環境介紹

OS:源和目標端都是RHEL5.4_64

DB:源和目標端都是11.2.0.1.0_64,都是歸檔模式

GoldenGate:源和目標端都是適用於 Linux x86-64 Oracle 11g Oracle GoldenGate 11.2.1.0.1 (86 MB)

DB_NAMEINSTANCE_NAME:源端都是DB51,目標端都是DB52

SYSSYSTEM:源和目標端的密碼都是123456

IP:源端10.98.20.51,目標端10.98.20.52

 

 

linux解除安裝Oracle GoldenGate產品:

1、進入源或目標GG配置目錄,輸入以下命令:

    gg> stop *

    gg> stop mgr

2、刪除Oracle GoldenGate目錄

 

 

實驗步驟

1.  使用oracle使用者把ogg解壓到源端的/u02/ogg,目標端的/u02/ogg2,並在源端的.bash_profile中加上export PATH=$PATH:/u02/ogg,目標端的.bash_profile中加上export PATH=$PATH:/u02/ogg2,當然另外兩個變數LD_LIBRARY_PATHCLASSPATH也一併加上。

2.  源端cd /u02/ogg,目標端cd /u02/ogg2;ggsci> create subdirs再退出ggsci

因為create subdirs需要建立在/u02/ogg/u02/ogg2目錄,所以需要進入該目錄

3.  源庫保證如下

alter database archivelog;

select force_logging from v$database; yes

開啟方式:alter database force logging;

select supplemental_log_data_min from v$database; yes

開啟方式:alter database add supplemental log data;

alter system set recyclebin=off scope=spfile

4.  源庫和目標庫都執行如下,建立OGG使用者和測試表,並增加tns配置

create user ggs identified by ggs default tablespace users temporary tablespace temp;

grant dba to ggs; //建立goldengate管理使用者

conn ggs/ggs

create table demo(id number primary key,ename varchar2(10)); //建立測試表,生產環境不用這這樣建立這樣的測試表

源庫增加tns如下  //ggs@sourcedb要用到

sourcedb =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = DB51)

    )

  )

目標庫增加tns如下    //ggs@targetdb要用到

targetdb =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = DB52)

    )

  )

5.  源端、目標端配置manger程式

cd /u02/oggcd /u02/ogg2

ggsci>edit params mgr

port 7809

6.  源端配置extract捕獲程式buhuoextract傳輸程式chuanshu

捕獲程式buhuo

cd /u02/ogg

ggsci>edit params buhuo輸入如下

EXTRACT buhuo

USERID ggs@sourcedb, PASSWORD ggs

EXTTRAIL ./dirdat/ss

TABLE ggs.*;

ggsci> add extract buhuo,tranlog,begin now

ggsci> add exttrail ./dirdat/ss,extract buhuo, megabytes 5

 

傳輸程式chuanshu

cd /u02/ogg

ggsci>edit params chuanshu輸入如下

EXTRACT chuanshu

PASSTHRU

RMTHOST 10.98.20.52,MGRPORT 7809

RMTTRAIL ./dirdat/dd

TABLE ggs.*;

ggsci> add extract chuanshu,exttrailsource ./dirdat/ss

ggsci> add rmttrail ./dirdat/dd,extract chuanshu,megabytes 5

傳輸程式chuanshu把捕獲程式捕獲存放在源端的/u02/ogg/dirdata/ssXXX檔案存放到目標端10.98.20.52:/u02/ogg2/dirdata/ddXXX

7.  目標端配置replicate複製程式fuzhi

複製程式fuzhi

cd /u02/ogg2

ggsci> dblogin userid ggs@targetdb,password ggs

ggsci> add checkpointtable ggs.ggschkpt

ggsci> add replicat fuzhi,exttrail ./dirdat/dd,checkpointtable ggs.ggschkpt

ggsci> edit params fuzhi輸入如下

replicat fuzhi

userid ggs@targetdb, password ggs

assumetargetdefs

reperror default, discard

discardfile ./dirrpt/poratt.dsc, purge

map ggs.*, target ggs.*;

8.  源庫ggsci執行dblogin userid ggs@sourcedb,password ggs

add trandata ggs.*

9.  開啟源端程式和目標端程式

源端

cd /u02/ogg

ggsci>start mgr

ggsci>start *

ggsci>info all

 

目標端

cd /u02/ogg2

ggsci>start mgr

ggsci>start *

ggsci>info all

上述配置只是配置了dml相關(只要commit後就會同步到目標庫,不管目標庫是否歸檔模式),如果源庫增加一張表,壓根不會同步到目標庫

 

捕獲程式buhuo把資料存放在源端/u02/ogg/dirdata/ssXXX

傳輸程式chuanshu把資料存傳輸到目標端/u02/ogg2/dirdata/ddXXX





DDL的標準配置新增如下

1.  源端執行SQL> GRANT EXECUTE ON utl_file TO ggs;

2.  源和目標都關閉所有程式和服務

ggsci>stop mgr

ggsci>stop *

3.  源端cd /u02/oggsqlplus / as sysdba執行如下

SQL> @marker_setup.sql

SQL> @ddl_setup.sql

SQL> @role_setup.sql

SQL> GRANT GGS_GGSUSER_ROLE to ggs;

SQL> @ddl_enable.sql

SQL> @marker_status.sql

SQL> exit

4.  目標端cd /u02/ogg2sqlplus / as sysdba執行如下

SQL> @marker_setup.sql

SQL> @ddl_setup.sql

5.  源端ggsci下執行edit params buhuo新增如下(必須加,否則就不會捕獲ddl的相關資訊,只會捕獲dml相關資訊)

DDL INCLUDE ALL

6.  源和目標ggsci啟動所有程式和服務

ggsci>start mgr

ggsci>start *

後面新增的表沒有主鍵也可以正常同步到目標庫,且新增使用者及使用者許可權都會自動同步到目標庫;但是以後新建使用者後新使用者的表不會自動同步到目標庫(貌似和windows版本的不一樣),需要重新對源端引數檔案增加TABLE ggs.*;目標端引數檔案新增map schemaname.*, target schemaname.*;

新增配置時分號;不能少

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30126024/viewspace-2124215/,如需轉載,請註明出處,否則將追究法律責任。

相關文章