GOLDENGATE安裝與數據複製流搭建配置_不含DDL抽取版

GOLDENGATE安裝與數據複製流搭建配置

(源庫爲實例,支持ASM,不含DDL抽取版)

1、配置場景


2、OGG軟件安裝

2.1 源端和目標端創建OGG安裝目錄與授權

#mkdir /u01/ogg

#chown –R oracle:oinstall/u01/ogg

#chmod –R 777/u01/ogg

 

2.2 源端和目標端配置環境變量

#su – oracle

[oracle@server1~]$ vi.bash_profile

添加以下內容:

export OGG=/u01/ogg

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/u01/ogg

[oracle@server1~]$ source.bash_profile

2.3 源端和目標端安裝OGG軟件

(1)   將ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip軟件複製到/u01/ogg目錄內

(2)   解壓縮軟件

[oracle@server1 ~]$unzip ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip

[oracle@server1 ~]$tar xvf fbo_ggs_Linux_x64_ora11g_64bit.tar

2.4源端數據庫創建測試表與插入測試數據

(如果是生產環境,此步可以跳過)

(1)   創建測試表TABLE GOLDENGATE.OGG_UPG

create table GOLDENGATE.OGG_UPG

(

pr_id       NUMBER(10)notnull,

t_name      VARCHAR2(20),

sal         NUMBER(10),

insert_time DATE primary key

)

tablespace GOLDENGATE

(2)   創建測試用的sequence

create sequence GOLDENGATE.SEQ_OGG_T01

minvalue1

maxvalue9999999999999999999999999999

startwith1

incrementby1

cache 20;

(3)插入數據

declare

i number:=1;

begin

loop

inser tinto goldengate.OGG_UPGvalues (goldengate.seq_ogg_t01.nextval,'ogg_test1',i,sysdate);

commit;

i:=i+1;

exit when i=10001;

end loop;

end;

/

3、源端數據庫與表配置修改

3.1 開啓數據庫最小級別追加日誌

SQL>alter database add supplemental log data;

SQL>altersystem switch logfile;

SQL>exit

3.2 開啓需要同步表的表級追加日誌

[oracle@server1~]$./ggsci

GGSCI>dbloginuserid goldengate, password goldengate

GGSCI>addtrandata goldengate.ogg_upg

4、OGG源端配置

4.1 創建subdirs

GGSCI>create subdirs

4.2 創建MGR

GGSCI> editparams mgr

Port 7809

dynamicportlist 7800-8000

--autorestart extract *,waitminutes 30,resetminutes 5

lagreporthours 1

laginfominutes 20

lagcriticalminutes 60

purgeoldextracts ./dirdat/tr*,usecheckpoints,minkeepdays 10

GGSCI>start mgr

4.3 創建extract進程

GGSCI>add ext exttr,tranlog, begin now

GGSCI>addexttrail ./dirdat/tr, ext exttr, megabytes 200

GGSCI>editparams exttr

extract exttr

setenv (NLS_LANG = AMERICAN_AMERICA.AL32UTF8)

userid goldengate, password goldengate

REPORT AT 01:59

reportrollover at 02:00

TRANLOGOPTIONS CONVERTUCS2CLOBS

THREADOPTIONS MAXCOMMITPROPAGATIONDELAY 90000 IOLATENCY 100000

tranlogoptions dblogreader

tranlogoptions altarchivelogdest primary instance orcl /u01/archive

discardfile ./dirrpt/exttr.dsc, append, megabytes 1000

gettruncates

--warnlongtrans 2h, checkintervals 3m

exttrail ./dirdat/tr

numfiles 2000

dynamicresolution

TABLEGOLDENGATE.OGG_UPG;

4.4 創建dataPump進程

GGSCI>add extdpetr, exttrailsource ./dirdat/tr

GGSCI>add rmttrail ./dirdat/tr, extdpetr, megabytes 200

GGSCI>edit param dpetr

extract dpetr

setenv (NLS_LANG = AMERICAN_AMERICA.AL32UTF8)

userid goldengate, password goldengate

REPORT AT 01:59

reportrollover at 02:00

rmthost 192.168.1.220, mgrport 7809, compress

rmttrail ./dirdat/tr

dynamicresolution

numfiles 2000

gettruncates

TABLE GOLDENGATE.OGG_UPG;

GGSCI>start param dpetr

5、目標端OGG配置

5.1 創建subdirs

GGSCI>create subdirs

5.2 創建MGR

GGSCI> edit params mgr

Port 7809

dynamicportlist 7800-8000

autorestart replicat *,waitminutes 5,resetminutes 5

lagreporthours 1

laginfominutes 20

lagcriticalminutes 60

purgeoldextracts ./dirdat/tr*,usecheckpoints,minkeepdays 10

GGSCI>start mgr

5.3 創建replicat進程

GGSCI>dblogin userid goldengate, password goldengate

GGSCI>add checkpointtable goldengate.checkpoint_reptr_01

GGSCI>add replicat reptr, exttrail ./dirdat/tr, checkpointtablegoldengate.checkpoint_reptr_01

GGSCI>edit params reptr

replicat reptr

setenv (NLS_LANG = AMERICAN_AMERICA.AL32UTF8)

userid goldengate, password goldengate

sqlexec "Alter session set constraints=deferred"

REPORT AT 01:59

reportrollover at 02:00

discardrollover on friday

--handlecollisions

reperror default,abend

discardfile ./dirrpt/reptr.dsc,append, megabytes 1000

assumetargetdefs

checksequencevalue

allownoopupdates

dynamicresolution

numfiles 2000

GETTRUNCATES

batchsql BATCHESPERQUEUE 100, OPSPERBATCH 8000

grouptransops 10000

maxtransops 10000

MAP GOLDENGATE.OGG_UPG, TARGET GOLDENGATE.OGG_UPG;

創建完replicat進程後,千萬不要啓動

6、數據初始化

6.1 停用源端數據庫的JOB

Sql>alter system set job_queue_processes=0 scope=both;

--先關閉job隊列,防止後續的job再啓動.

Sql>alter system set aq_tm_processes=0 scope=both;

--關閉高級隊列

Sql>select count(*) from dba_jobs_running;

--查看系統是否存在有job正在執行,如果還有JOB在運行,則進行Kill操作

 

6.2 停止前端系統應用

(防止有事務啓動後,在取SCN時還未結束,由於GOLDENGATE抽取進程,只會抽取在extract進程啓動之後開始的事務,該點很重要。)

6.3 殺掉所有事務

(1)查詢還在執行的事務

   select * from gv$transaction;

(2)kill 當前正在執行的事務的session

6.4 停掉listener

 $lsnrctl stop

(防止新的連接連上來創建新事務操作表數據)

6.5 查詢源端數據庫的當前SCN號

SQL> selectdbms_flashback.get_system_change_number from dual;

記錄下SCN號:2553440

6.6 導出數據

$expdpsystem/XXX directory=expdp_dir dumpfile=tableXXX.dmp filesize=30G logfile=expdp_XXXX.log flashback_scn=2553440 tables=GOLDENGATE.OGG_UPG

6.7 恢復源端數據庫的JOB參數

Sql>alter system set job_queue_processes=20 scope=both;

--根據實際值進行恢復.

Sql>alter system set aq_tm_processes=1 scope=both;

6.8 目標端數據庫導入數據

$imppdp system/XXX directory=expdp_dir dumpfile=tableXXX.dmp logfile=impdp_XXXX.log

7、啓動目標端的replicat進程

GGSCI> startreptr,aftercsn 2553440

8、驗證OGG能正常同步數據

8.1 在目標數據庫中查詢GOLDENGATE.OGG_UPG表數據量

SQL> select count(*) from goldengate.ogg_upg;

 

  COUNT(*)

----------

     10000

8.2 在源端數據庫上的GOLDENGATE.OGG_UPG表中再插入一萬行數據

declare

i number:=1;

begin

loop

insertinto goldengate.OGG_UPGvalues (goldengate.seq_ogg_t01.nextval,'ogg_test1',i,sysdate);

commit;

i:=i+1;

exitwhen i=10001;

end loop;

end;

/

8.2 在目標數據庫上查GOLDENGATE.OGG_UPG表數據是否增長

SQL> select count(*) from goldengate.ogg_upg;

 

  COUNT(*)

----------

     20000

配置成功,並可以正常同步。

 

 

本文作者:黎俊傑(網名:踩點),從事”系統架構、操作系統、存儲設備、數據庫、中間件、應用程序“六個層面系統性的性能優化工作

歡迎加入 系統性能優化專業羣,共同探討性能優化技術。羣號:258187244
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章