安装并配置goldengate

OS配置

内存

每个进程需要25-55M内存,最大支持5000默认300并发;

SWAP

默认OGG将数据swapdirtmp子目录,大事务很容易将整个磁盘填满,可为其单独分配一个磁盘,由cachemgrcachedirectory选项指定,见注1

磁盘

安装路径需要40M

权限

Extract/replicat/manager进程必须对OGG目录有读写权限

 

安装

解压安装包,运行shell命令调用GGSCI,执行create subdirs

GGSCI (raclinux1.gj.com) 1> create subdirs

Creating subdirectories under current directory /u02/stage_ogg112_ora11

Parameter files            /u02/stage_ogg112_ora11/dirprm: already exists

Report files               /u02/stage_ogg112_ora11/dirrpt: created

Checkpoint files           /u02/stage_ogg112_ora11/dirchk: created

Process status files       /u02/stage_ogg112_ora11/dirpcs: created

SQL script. files           /u02/stage_ogg112_ora11/dirsql: created

Database definitions files /u02/stage_ogg112_ora11/dirdef: created

Extract data files         /u02/stage_ogg112_ora11/dirdat: created

Temporary files            /u02/stage_ogg112_ora11/dirtmp: created

Stdout files               /u02/stage_ogg112_ora11/dirout: created

 

创建数据库用户并赋权限,mgrextract/replicat可共享同一用户

 

如果要复制DDL还需单独创建一个用户http://space.itpub.net/?uid-15480802-action-viewspace-itemid-762694

 

编辑参数文件

编辑manager参数文件 edit params MGR

--唯一不可或缺的只有PORT,但强烈推荐dynamicportlist

PORT 7809

DYNAMICPORTLIST 7810-7820, 7830

AUTOSTART ER t*

AUTORESTART ER t*, RETRIES 4, WAITMINUTES 4

STARTUPVALIDATIONDELAY 5

PURGEOLDEXTRACTS /ogg/dirdat/tt*, USECHECKPOINTS, MINKEEPHOURS 2

默认端口号7809,由manager参数文件的PORT决定;

如果OGG target端安装了防火墙,需要额外的端口接受远端OGG的动态TCP/IP连接,其中每个collector/replicat进程各占一个端口,使用参数dynamicportlist为其分配端口,

collector进程负责查找绑定,如果没有指定dynamicportlist或端口数不足,collector尝试使用7840端口,不可用则递增继续尝试,此行为会延阻远端请求的接受;

 

编辑extract/replicat参数文件

如果有多个instance,可在参数文件中设置

Setenv(ORACLE_HOME = “”)

Setenv(ORACLE_SID = “”)

 

Replicat需创建检查点表

1

DBLOGIN, USERID db_user [, PASSWORD pw [encryption options]]

ADD CHECKPOINTTABLE owner.table

2

Edit params ./GLOBALS

Checkpointtable owner.table

检查点表默认使用异步commit nowait机制,即replicat不必等待操作完毕便可返回;可编辑DBOPTIONS参数使用disablecommitnowait

如果使用checkpoint文件替代检查点表,replicat使用commit wait避免数据库失败导致事务不一致;

 

 

Extract进程有2种模式:

ClassicOGGredo/archive log捕获信息

Integratedextract进程直接与db logmining server交互以接受LCR,相比classic支持更多数据类型

优点:

1 由于使用logmining server访问redo stream,可自动在不同copy间切换

2 faster filtering of tables

3 handle point-in-time recovery and RAC integration more efficiently

4 RMAN自动保留待extract处理的archive log

有两种配置方式--Localsource db mining db为同一个;Downstreammining dbsource db分开存放

 

 

 

配置数据库

完整性约束

禁用target表的trigger和级联约束

Dboptions suppresstriggers:支持1020511R2,会话期间replicat不禁用trigger,但会阻止trigger执行;其他版本则须禁用完整性和触发器约束;

 

延迟约束检查

如果source table的约束为deferrabletarget table必须为deferrable

1 replicat参数文件使用SQLEXEC (alter session set constraint deferred)

2 replicat参数文件配置dboptions deferrefconst

配置replicat克服由transient 主键duplicate导致的完整性错误:

Update item set code = 2 where code =1 ;

Update item set code = 3 where code =2 ;

Update item set code = 4 where code =3 ;

--code为主键列,replicat执行第一条语句会遭遇ORA-00001,默认不处理即replicat abend

Pre11202replicat配置handletpkuupdate,同时将target table的约束改为deferrable initially immediate,否则依照handcollisions/reperror定义的规则处理出现的错误

11202replicat默认使用oracle workspace manager自动处理此问题,有2点要求:1 replicat数据库用户赋予dbms_xstream_gg.enable_tdup_workspace()2 target表不能有deferrable约束

如果使用workspace,会忽略handlecollisions/reperror,如果使用batchsql,遭遇错误时会退出grouped transaction改为正常模式执行,如果继续发生ora-00001则回滚此事务;

Workspace不支持一条sql同时包含transient PK duplicateout-of-line column update,例如LOB/XMLType

 

确保行唯一性

除非使用了keycols,否则按如下顺序定位行

主键;第一个unique key(所含列不能为invisible index);将所有列组建为pseudo key

 

配置logging properties

开启DB supplemental log

开启schema supplemental log:用于DDL replication,执行add schematrandata schema

开启table supplemental logadd trandata table [, COLS columns] [, NOKEY]

如果target 表没有pk/uk则可能存在重复行,为限制更新行数可使用dboptions limitrows

 

字符集转换

使用setenv设置NLS_LANG参数:SETENV (NLS_LANG = NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET)

查看global设置:

Sqlplus执行如下命令

SHOW PARAMETER NLS_LANGUAGE

SHOW PARAMETER NLS_TERRITORY

SELECT name, value$ from SYS.PROPS$ WHERE name = 'NLS_CHARACTERSET';

SHOW PARAMETER NLS_LENGTH_SEMANTICS

GGSCI查看view report查看NLS_LANG相应设置

 

设置fetch选项

部分update操作需要extractsource db获取额外行数据

默认OGG使用闪回查询获取一致性读,也可强制其从表直接读取最新数据fetchoptions nousesnapshot

Stats extract , reportfetch—显示extract fetch信息,可配置statoptions reportfetch将其作为默认选项

 

特殊数据类型

TIMESTAMP

Oracle会将TIMESTAMP WITH LOCAL TIME ZONE转换为数据库的本地时区,如果source/target db时区不同则会出现数据不一致;

为此可设置repicat参数文件,在USERID后添加:SQLEXEC "ALTER SESSION SET TIME_ZONE = value of source_timezone"

LOB

RepliatLOB写入target db时会导致碎片,为减少IO可使用LOB缓存机制,即先将数据缓存到buffer,等后者写满一次性刷入磁盘;

可通过dboptionslobwritesize/disablelobcaching设置;

如果clob存储了binary数据,将NLS_LANGUAGE/NLS_LANG设置为相同值;

Integrated captureredo log读取lobs,而update只记录改动部分的数据,为强制记录整个lob数据,配置extract参数tranlogoptionsfetchpartiallob选项;

Unused列:默认不支持,可配置extractdboptions选项allowunusedcolumn将其捕获

Redo/archive log位于不同路径:配置extracttranlogoptions选项

Truncate操作:单一的truncate table可通过gettruncats参数;其他诸如alter table truncate partition则须配置DDL

Sequence:使用OGG DDL

 

 

1

CACHEMGR {

[, CACHESIZE ] 

[, CACHEDIRECTORY [] [, ...]]

[, CACHEPAGEOUTSIZE ]

}

实际耗用的cachesize可通过report报告中的process vm avail from OS查看

cachedirectory默认为安装目录的dirtmp

CACHEMGR virtual memory values (may have been adjusted)

CACHESIZE: 1G

CACHEPAGEOUTSIZE (normal): 4M

PROCESS VM AVAIL FROM OS (min): 1.79G

CACHESIZEMAX (strict force to disk): 1.58G

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15480802/viewspace-762721/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15480802/viewspace-762721/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值