OGG 部署

来源:这里教程网 时间:2026-03-03 16:08:53 作者:

1、环境

项目 源环境 目标环境
        操作系统      deepin server enterprise amd64 15.2         deepin server enterprise amd64 16
        数据库及版本         ORACLE 11.2.0.4.0         ORACLE 11.2.0.4.0
        数据库字符集         AMERICAN_AMERICA.AL32UTF8         AMERICAN_AMERICA.ZHS16GBK
        Goldengate用户         ogg         ogg
        Goldengate 版本         11.2.1.0.3         11.2.1.0.3

2.搭建步骤:

a、创建OGG安装目录

两台服务器都需要做同样的操作。

mkdir /saic/ogg
chown -R ogg:oinstall /saic/ogg

b、 上传OGG安装介质 将OGG安装文件上传到两台服务器,并解压。

unzip ogg112103_fbo_ggs_Linux_x64_ora11g_64bit.zip
tar -xvf fbo_ggs_Linux_x64_ora11g_64bit.tar -C /saic/ogg

 c、建立OGG表空间,创建OGG用户并授权。

SQL> create tablespace ogg datafile '/ora_data/ora_data_file/transit/ogg01.dbf' size 10G autoextend on;
SQL> create user ogg identified by ogg default tablespace ogg;
SQL> grant dba to ogg ;

d、 源端数据库及系统配置

检查源端数据库是否为归档模式,若为非归档模式,将其改为归档模式
SQL>archive log list;
检查源端数据库附加日志是否打开
SQL>select supplemental_log_data_min,force_logging from v$database;
将数据库附加日志打开
SQL>alter database add supplemental log data;
切换日志以使附加日志生效:
SQL>alter system archive log current; 
开启force logging模式
SQL>alter database force logging;

e、创建OGG的管理目录在正式配置OGG之前,首先需要创建OGG的管理目录,源端和目标端都需要创建 

$./ggsci
GGSCI (localhost) 1> create subdirs

f、 OGG进程配置

配置源端:
MGR进程
GGSCI (localhost) 1>edit param mgr
PORT 7812
DYNAMICPORTLIST  7840-7860
USERID ogg, PASSWORD ogg
PURGEOLDEXTRACTS ./dirdat/*,USECHECKPOINTS,minkeepdays 5
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 7
创建GLOBALS参数文件并添加CHECKPOINTTABLE,进入GGSCI命令行,执行
添加CHECKPOINTTABLE(该步骤主要是为了双库同步所需,如果是单向同步的可以考虑不在源端增加检查点表,单向同步不执行)
GGSCI (localhost) 2> dblogin userid OGG, password ogg
GGSCI (localhost) 3> add checkpointtable ogg.GGSCHKPT
添加抽取进程
GGSCI (localhost) 1> dblogin userid ogg, password ogg
GGSCI (localhost) 2> add extract EXT_32 , tranlog , begin now
GGSCI (localhost) 3> add exttrail ./dirdat/EA,extract EXT_32 ,megabytes 1024
编辑抽取进程参数文件
GGSCI (localhost) 4> edit params EXT_32 
EXTRACT ext32
SETENV(NLS_LANG="AMERICAN_AMERICA.AL32UTF8")
SETENV(ORACLE_HOME = "/u01/app/oracle/product/11.2.0/dbhome_1")
SETENV(ORACLE_SID = "transit")
USERID ogg, PASSWORD ogg_0403
REPORTCOUNT EVERY 30 MINUTES, RATE
DISCARDFILE ./dirrpt/ext32.dsc,APPEND, MEGABYTES 1024
DISCARDROLLOVER AT 3:00
WARNLONGTRANS 2h, CHECKINTERVAL 10m
EXTTRAIL ./dirdat/EA
DYNAMICRESOLUTION
DBOPTIONS  ALLOWUNUSEDCOLUMN
FETCHOPTIONS NOUSESNAPSHOT
TRANLOGOPTIONS  CONVERTUCS2CLOBS
NOCOMPRESSDELETES
cachemgr cachesize 800MB
Table ogg.test ;
添加表的附加日志
GGSCI (localhost) 5> add trandata ogg.test
添加投递进程
GGSCI (localhost) 10> add extract pum_32,exttrailsource ./dirdat/EA   --要指定本地从哪里抽取数据 
GGSCI (localhost) 11> add rmttrail ./dirdat/PA,extract pum_32,megabytes 1024  --还要指定你这个抽取的队列放到目标端那个位置,传输的队列以PK 开头,
GGSCI (localhost) 12> alter pum_32,begin now
编辑投递进程的参数文件
GGSCI (localhost) 12> edit param pum_32
extract pum_32
passthru
rmthost 13.1.6.32, mgrport 7812, COMPRESS
rmttrail ./dirdat/PA
DYNAMICRESOLUTION
TABLE ogg.test;
配置目标端:
添加mgr进程
进入GGSCI命令行执行
GGSCI (localhost) 1> edit param mgr
PORT 7812
DYNAMICPORTLIST  7840-7860
USERID ogg, PASSWORD ogg
PURGEOLDEXTRACTS ./dirdat/*,USECHECKPOINTS,minkeepdays 5
AUTORESTART REPLICAT *, RETRIES 5, WAITMINUTES 7
GGSCI (localhost) 2> start mgr 
创建GLOBALS参数文件并添加CHECKPOINTTABLE
GGSCI (localhost) 3> dblogin USERID ogg,password ogg
GGSCI (localhost) 4> add checkpointtable ogg.GGSCHKPT
添加入库进程,应用目标端放队列的文件
GGSCI (localhost) 5> add replicat rep_1,exttrail ./dirdat/PA, checkpointtable ogg.GGSCHKPT
新增加的复制进程必须要修改具体的时间点启动,如当前时间点或者指定的时间点队列
GGSCI (localhost) 6> alter rep_1,begin now
编辑入库进程参数文件
GGSCI (localhost) 7> edit param rep_1
Replicat rep_1
SETENV(NLS_LANG="AMERICAN_AMERICA.AL32UTF8") 
USERID ogg, PASSWORD ogg
assumetargetdefs
discardfile ./dirrpt/rep_1.dsc,PURGE,MEGABYTES 1024
DISCARDROLLOVER AT 02:30
ALLOWNOOPUPDATES
HANDLECOLLISIONS
DBOPTIONS LOBWRITESIZE 1048576                    
map ogg.test , target ogg.test;
目标端建表并且初始化数据.
CREATE TABLE test(
   id varchar2(10),
   name varchar2(100),
   constraint pk_id primary key(id)
   );
insert into test values ('1','aaa');
commit;

相关推荐