本文是原创文章,转载请注明出处
本文的标题,高度模仿白总的《DBA的思想天空--感悟oracle数据库本质》,嘿嘿。
本文说一下自己对OGG的理解,很可能存在不正确的地方,欢迎各位批评指正。
1.OGG是数据同步软件,或者说是逻辑复制软件,其竞争对手有IBM CDC,DELL shareplex,DSG,DDS等等。
2.OGG软件是需要安装在操作系统上的,Oracle DB软件没有自带OGG软件(至少目前是这样的)
3.OGG软件有三大进程(说四大进程也行):
三大进程:源头抽取进程、源头传输进程、目的端应用进程(即:复制进程)
四大进程:源头抽取进程、源头传输进程、目的端server进程(负责在目的端写入trail文件)、目的端应用进程(即:复制进程)
4.OGG软件有两种trail file
源头的trail file:由源头抽取进程写入。
目的端的trail file: 源头传输进程传输到目的端,由目的端的server 进程写入目的端操作系统的指定路径下。
5.OGG软件中三大进程都有自己的checkpoint(即:检查点,用来记录每种进程读取到什么位置了,写入到什么位置了)
源头抽取进程:有读取检查点 和写入检查点
源头传输进程:有读取检查点 和写入检查点
目的端应用进程:有读取检查点
6.OGG软件三大进程处理trail file的过程:
源头抽取进程:读取oracle redo log(假设源头数据库是oracle),结合抽取进程的参数文件,将redo log中的内容变为OGG自有格式的文件(即:trail file),并写入到源头操作系统的指定路径下
源头传输进程:读取“源头抽取进程写入的trail file”,结合传输进程的参数文件,发送需要同步的数据到目的端,在目的端是由server 进程负责写入。
目的端应用进程:读取目的端操作系统的指定路径下的trail file,结合应用进程的参数文件,形成sql语句,在目的端db上执行这些sql语句。