ogg同步数据量大延迟高(详解OGG工作原理)
OGG 是一种基于日志的结构化数据复制软件
OGG 能够实现大量交易数据的实时捕捉,变换和投递,实现源数据库与目标数据库的数据同步,保持最少10ms的数据延迟。
工作原理
相关组件
1.Manager
负责OGG 整体的监控和管理
(1).Trail文件的生成和删除
(2).定期监控进程,负责进程的启动/停止
2.Extract(Capture)
(1).从redo 或 archive log获得DB变更信息,取得主键或唯一键的变更前后的值
(2).以一定间隔读取REDO日志,获取变更信息
参数EOFDELAY or EOFDELAYCSECS 设置。 默认1s,最小10ms
(3).当满足下列条件时,输出到本地或远程Trail文件
- Extract的缓冲区写满
- 设置参数FLUSHSECS or FLUSHCSECS来指定间隔。 默认1s,最小10ms
3.Extract(Pump)
将本地的Trail队列发送至目标端Collector
发送间隔,满足以下任一条件:
(1).缓存写满时
Pump的RMHOST参数(TCPBUFSIZE选项),可指定缓存尺寸,默认30000bytes
(2).参数指定
FLUSHSECS or FLUSHCSECS. 默认1s,最小10ms
4.Collector
从Extract pump向Collector发送,输出至Trail文件
5.Replicat
从Trail文件生成SQL语句在目标DB执行。
初始数据同步
1.利用数据库功能
RMAN,expdp/impdp
2.利用OGG功能
设置初始化属性的捕获和复制进程。建议小数据库使用。
限制
1.未支持的数据类型
ANYDATA,BFILE,TIMEZONE_ABBR,URITYPE,ANYDATASET,BINARY_INTEGER,TIMEZONE_REGION,UROWID,ANYTYPE,MLSLABEL,PLS_INTEGER
2.DML未支持的对象
压缩表,外部表,REF,别名,不输出日志的DML
3.未支持的DDL
对系统表/系统视图的DDL
使用Recycle Bin
4.不支持的对象名
以下字符和中文不可用于对象名:
& * ? : ; , . 空格
5.字符集
目标DB的字符集必须是源DB字符集的超集
6.其他
(1).sequence 双向复制时不能使用sequence,单向使用sequence的cache时,源和目标不同步
(2)目标DB需要删除Trigger。
后面小编会分享更多关于运维方面的干货,感兴趣的朋友走一波关注哩~
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com