OGG配置一

GoldenGate主要包含Manager进程、Extract进程、Pump进程、Replicat进程
Manager进程是GoldenGate的控制进程,它主要作用有以下几个方面:启动、监控、重启GoldenGate的其他进程,报告错误及时间,分配数据存储空间,发布阀值报告等。
Extract进程运行在数据库源端,负责从源端数据表或日志中捕获数据。Extract进程利用其内在的checkpoint机制,周期性地检查并记录其读写的位置,通常是写入到本地的trail文件。这种机制是为了保证如果Extract进程终止或者操作系统宕机,我们重启Extract进程后,GoldenGate能够恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据损失。
Pump进程运行在数据库源端,其作用非常简单。如果源端使用了本地trail文件,那么Pump进程就会把Trail文件以数据块的形式通过TCP/IP协议发送到目标端,我们下面的配置都是这种方式。Pump进程本质是Extract进程的一种特殊形式,如果不使用Trail文件,那么Extract进程在抽取完数据后,直接投递到目标端。
与Pump进程相对应的叫Server Collector进程,这个进程不需要引起我们关注,因为在实际操作过程中无需对其进行任何配置,它运行在目标端,任务就是把Extract/Pump进程投递过来的数据块重新组装成Trail文件。
Replicat进程运行在目标端,是数据投递的最后一站,负责读取目标端Trail文件中的内容,并将解析其解析为DML或DDL语句,然后应用到目标数据库中。

1、

添加环境变量
export LIBPATH=$GGATE_HOME:$ORACLE_HOME/lib      ---AIX
注意:添加后需使参数文件生效
HP及LINUX平台下用LD_LIBRARY_PATH替换LIBPATH

GGSCI (localhost.localdomain) 4> create subdirs


alter database force logging;                 --官方文档不是强制 http://t.askmaclean.com/thread-121-1-4.html
Alter databaseadd supplemental log data;
SQL> select NAME,LOG_MODE,FORCE_LOGGING,SUPPLEMENTAL_LOG_DATA_MIN from v$database;

NAME      LOG_MODE     FOR SUPPLEME
--------- ------------ --- --------
MKTDB4    ARCHIVELOG   NO  YES

SQL> show parameter recy    (oracle10g ogg需要禁用,oracle11g ogg不要求)
alter system set recyclebin=off scope=spfile;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
buffer_pool_recycle                  string
db_recycle_cache_size                big integer 0
recyclebin                           string      OFF

CREATE USER GOLDENGATE
  IDENTIFIED BY VALUES '3F482E4566B47269'
  DEFAULT TABLESPACE NEWHC
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;
  -- 4 Roles for GOLDENGATE 
  GRANT CONNECT TO GOLDENGATE;
  GRANT DBA TO GOLDENGATE;
  GRANT GGS_GGSUSER_ROLE TO GOLDENGATE;
  GRANT RESOURCE TO GOLDENGATE;
  ALTER USER GOLDENGATE DEFAULT ROLE ALL;
  -- 4 System Privileges for GOLDENGATE 
  GRANT ALTER SESSION TO GOLDENGATE;
  GRANT CREATE ANY DIRECTORY TO GOLDENGATE;
  GRANT DROP ANY DIRECTORY TO GOLDENGATE;
  GRANT UNLIMITED TABLESPACE TO GOLDENGATE;
  -- 49 Object Privileges for GOLDENGATE 
    GRANT SELECT ON SCOTT.EMP TO GOLDENGATE;
    GRANT EXECUTE ON SYS.DBMS_SESSION TO GOLDENGATE;
    GRANT SELECT ON SYS.ENC$ TO GOLDENGATE;
    GRANT READ, WRITE ON DIRECTORY GGS_DDL_TRACE TO GOLDENGATE WITH GRANT OPTION;
    GRANT EXECUTE ON SYS.UTL_FILE TO GOLDENGATE;
    
2、

添加表级transdata
GGSCI (localhost.localdomain) 4>dblogin userid ogg,password oracle
Successfully logged intodatabase.
GGSCI (localhost.localdomain) 4> add trandata XXX
Logging of supplemental redo dataenabled for table XXX
3、

配置源端进程组
GGSCI (localhost.localdomain) 8> view params mgr

port 7809
DYNAMICPORTLIST 7840-7914
purgeoldextracts  ./dirdat/*, usecheckpoints, minkeepdays 7
userid goldengate, password Ipwg63fgR
purgeddlhistory minkeepdays 3, maxkeepdays 3
purgemarkerhistory minkeepdays 3, maxkeepdays 3


PORT:指定服务监听端口;默认端口为7809
DYNAMICPORTLIST:动态端口:可以制定最大256个可用端口的动态列表,当指定的端口不可用时,管理进程将会从列表中选择一个可用的端口,源端和目标段的Collector、Replicat、GGSCI进程通信也会使用这些端口;
COMMENT:注释行,也可以用--来代替;
AUTOSTART:指定在管理进程启动时自动启动哪些进程; --AUTOSTART ER *   
AUTORESTART:自动重启参数设置:本处设置表示每3分钟尝试重新启动所有EXTRACT进程,共尝试5次;--AUTORESTART EXTRACT *,RETRIES 5,WAITMINUTES 3
PURGEOLDEXTRACTS:定期清理trail文件设置:本处设置表示对于超过7天的trail文件进行删除。
LAGREPORT、LAGINFO、LAGCRITICAL:
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 45
定义数据延迟的预警机制:本处设置表示MGR进程每隔1小时检查EXTRACT的延迟情况,如果超过了30分钟就把延迟作为信息记录到错误日志中,如果延迟超过了45分钟,则把它作为警告写到错误日志中。

start mgr
info all
4、

配置抽取进程:
GGSCI(NDSCDB1) 12> add extract EXTNEW,tranlog,begin now
EXTRACTadded.
GGSCI(NDSCDB1) 14> add exttrail ./dirdat/ne,extract EXTNEW,megabytes 100
EXTTRAILadded.
Megabytes:指定队列大小,本处设置表示100M。

GGSCI (localhost.localdomain) 10> view params EXTNEW

extract extnew
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
SETENV(ORACLE_HOME = "/u01/oracle/oracle/product/10.2.0/db_1")
setenv (ORACLE_SID = "mktdb4")
userid goldengate, password Ipwg63fgR
REPORT AT 01:59
reportrollover at 02:00
TRANLOGOPTIONS CONVERTUCS2CLOBS                                     --传输CLOB必须参数
discardfile  ./dirrpt/extnew.dsc,append,megabytes 10
warnlongtrans 2h, checkinterval 3m

---ddl
ddl include mapped OPTYPE alter OBJTYPE 'table' exclude mapped instr 'move TABLESPACE' include mapped optype truncate objtype 'table' include mapped OPTYPE alter OBJTYPE 'index'
ddloptions addtrandata,nocrossrename,REPORT
DBOPTIONS ALLOWUNUSEDCOLUMN
exttrail ./dirdat/ne
numfiles 8000
dynamicresolution

--table
TABLE NEWHC.CHAMPION_BUSINITEM_PUSH;
TABLE NEWHC.CHAMPION_KEYWORD_PUSH;


配置DDL双向复制需要
TRANLOGOPTIONS EXCLUDEUSER goldengate  
IGNOREREPLICATES

添加传输进程,配置参数
GGSCI(NDSCDB1) 2> add extract DPENEW,exttrailsource ./dirdat/ne
EXTRACTadded.
GGSCI(NDSCDB1) 3> add rmttrail /oracle/gg/dirdat/ne, EXTRACT DPENEW
RMTTRAILadded.
GGSCI (localhost.localdomain) 12> view params DPENEW

extract dpenew
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK  )
setenv (ORACLR_SID = "mktdb4")
passthru
REPORT AT 01:59
reportrollover at 02:00
rmthost 192.168.44.131, mgrport 7809, compress
rmttrail  /oracle/gg/dirdat/ne
dynamicresolution
numfiles 8000
--ddl
table GOLDENGATE.GGS_MARKER;
--table
TABLE NEWHC.CHAMPION_BUSINITEM_PUSH;
TABLE NEWHC.CHAMPION_KEYWORD_PUSH;


抽取进程和传输进程其实都是EXTRACT进程,也可以配置在一个进程完成这两个功能,但是当网络传输有问题时,这样抽取也就不能继续运行了,所以推荐分开配置为两个进程;
EXTRACT进程参数配置说明:
SETENV:配置系统环境变量
USERID/ PASSWORD:指定OGG连接数据库的用户名和密码
TABLE:定义需复制的表,后面需以;结尾
TABLEEXCLUDE:定义需要排除的表,如果在TABLE参数中使用了通配符,可以使用该参数指定排除掉得表。

GETUPDATEAFTERS|IGNOREUPDATEAFTERS:
是否在队列中写入后影像,缺省复制
GETUPDATEBEFORES| IGNOREUPDATEBEFORES:
是否在队列中写入前影像,缺省不复制
GETUPDATES|IGNOREUPDATES:
是否复制UPDATE操作,缺省复制
GETDELETES|IGNOREDELETES:
是否复制DELETE操作,缺省复制
GETINSERTS|IGNOREINSERTS:
是否复制INSERT操作,缺省复制
GETTRUNCATES|IGNORETRUNDATES:
是否复制TRUNCATE操作,缺省不复制;

RMTHOST:指定目标系统及其GoldengateManager进程的端口号,还用于定义是否使用压缩进行传输,本例中的compress为压缩传输;
RMTTRAIL:指定写入到目标断的哪个队列;
EXTTRAIL:指定写入到本地的哪个队列;
SQLEXEC:在extract进程运行时首先运行一个SQL语句;
PASSTHRU:禁止extract进程与数据库交互,适用于Data Pump传输进程;
REPORT:定义自动定时报告;
STATOPTIONS:定义每次使用stat时统计数字是否需要重置;
REPORTCOUNT:报告已经处理的记录条数统计数字;
TLTRACE:打开对于数据库日志的跟踪日志;
DISCARDFILE:定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;
DBOPTIONS:指定对于某种特定数据库所需要的特殊参数;
TRANLOGOPTIONS:指定在解析数据库日志时所需要的特殊参数,例如:对于裸设备,可能需要加入以下参数 rawdeviceoggset 0
WARNLONGTRANS:指定对于超过一定时间的长交易可以在gsserr.log里面写入警告信息,本处配置为每隔3分钟检查一次场交易,对于超过2小时的进行警告;
5、

配置目标数据库
create user ogg identified by oracle default tablespace DATA_OL;
grant connect,resource,unlimited tablespace to ogg;
grant execute on utl_file to ogg;
grant select any dictionary,select any table to ogg;
grant alter any table to ogg;
grant flashback any table to ogg;
grant execute on DBMS_FLASHBACK to ogg;
grant insert any table to ogg;
grant delete any table to ogg;
grant update any table to ogg;

添加checkpoint表

EDIT PARAMS ./GLOBALS

GGSCHEMA ogg 
CHECKPOINTTABLE ogg.checkpoint

退出 ll
 ll GLOBALS 
 DBLOGIN USERID ogg, PASSWORD Welcome1
 ADD CHECKPOINTTABLE
 add checkpointtable ogg.checkpoint
6、

配置目标端进程组
配置复制进程

add replicat repl exttrail ./dirdat/ne,begin now,checkpointtable ogg.chkpoint 
GGSCI (trade3) 2> view params REPNEW

replicat repnew
setenv ( NLS_LANG = AMERICAN_AMERICA.ZHS16GBK )
setenv (ORACLE_SID = "mktdb4")
userid goldengate, password Ipwg63fgR
sqlexec "Alter session set constraints=deferred"
REPORT AT 01:59
reportrollover at 02:00
discardrollover on friday
reperror default,discard
 
--ddl
Ddl include mapped
ddloptions  report
DDLERROR DEFAULT abend
 
discardfile ./dirrpt/repnew.dsc,append, megabytes 10
assumetargetdefs
allownoopupdates
dynamicresolution
numfiles 3000
insertappend
batchsql
HANDLECOLLISIONS
maxtransops 5000
--grouptrans 5000
map NEWHC.CHAMPION_BUSINITEM_PUSH, target cxk.CHAMPION_BUSINITEM_PUSH;
map NEWHC.CHAMPION_KEYWORD_PUSH, target  cxk.CHAMPION_KEYWORD_PUSH;
map NEWHC.SEND_ADDRESS, target  cxk.SEND_ADDRESS;
map NEWHC.BUSIN_ASSIGN_PROVIDER, target cxk.BUSIN_ASSIGN_PROVIDER;


REPLICAT进程参数配置说明:
ASSUMETARGETDEFS:假定两端数据结构一致使用此参数;
SOURCEDEFS:假定两端数据结构不一致,使用此参数指定源端的数据结构定义文件,该文件需要由GlodenGate工具产生。
MAP:用于指定源端与目标端表的映射关系;
MAPEXCLUDE:用于使用在MAP中使用*匹配时排除掉指定的表;
REPERROR:定义出错以后进程的响应,一般可以定义为两种:
ABEND,即一旦出现错误即停止复制,此为缺省配置;
DISCARD,出现错误后继续复制,只是把错误的数据放到discard文件中。
DISCARDFILE:定义discardfile文件位置,如果处理中油记录出错会写入到此文件中;
SQLEXEC:在进程运行时首先运行一个SQL语句;
GROUPTRANSOPS:将小交易合并成一个大的交易进行提交,减少提交次数,降低系统IO消耗。
MAXTRANSOPS:将大交易拆分,每XX条记录提交一次。

start EXTNEW
start DPENEW

start REPNEW







你可能感兴趣的:(OGG配置一)