管理进程只参与进程管理和监控,本身并不承担数据复制的任务。
【Extract 进程】
Extract 有时被称为 Capture,通常翻译为捕获进程或抽取进程。Extract 运行在
数据库源端,负责从源端数据表或者日志中捕获数据。
按照其所处的阶段不同,Extract 的作用可以按照时间来划分。
初始数据装载阶段:在初始数据装载阶段,Extract 进程直接从源端的数据表中
抽取数据。
同步变化捕获阶段:初始数据同步完成以后,Extract 进程负责捕获源端数据的
变化(DML 和 DDL)。
Extract 进程利用其内在的 checkpoint 机制,周期性地检查并记录其读写的位
置,通常是写入到一个本地的 trail 文件。这种机制是为了保证如果 Extract 进程
终止或者操作系统宕机,重新启动 Extract 进程后,GoldenGate 能够恢复到以前
的状态,从上一个断点处继续往下运行,而不会有任何数据损失。
日常运行时,由于 GoldenGate 解析日志速度非常快,一般是读取在线日志。但
是当处于运维等各种原因将 GoldenGate 停止一段时间后,重启 Extract 进程再继续
复制时,有可能当时对应的日志已经进入归档,这时 Extract 就会根据数据库中的相
应参数以及自身参数文件配置去对应位置查找归档日志,因此一般
建议为源数据库保留一段时间归档日志,避免 Extract 进程停止后找不到对应日
志无法重启。
【Pump 进程】
Pump 进程运行在数据库源端,Extract 进程在抽取到数据变化后,可以直接将
数据变化通过网络发送给目标主机,也可以先将数据变化缓存到本地硬盘,也就是
Trail 文件。
使用 pump 进程的好处是将 Extract 进程的日志解析和数据传输两个任务分
开,一旦网络出现中断只会影响 pump 和数据传输,不会影响主 Extract 和日志解析。
【Trail 文件】
为了更有效、更安全地把数据库事务信息从源端投递到目标端,GoldenGate
引进 trail 文件的概念。前面提到 Extract 抽取完数据以后 GoldenGate 会将抽取的
事务信息转化为一种 GoldenGate 专有格式的文件,然后 Pump 负责把源端的 trail
文件投递到目标端,所以源、目标两端都会存在这种文件,源端存放的 trail 文件
叫本地 trail 文件,目标端存放的 trail 文件叫远程 trail 文件。
【Replicat 进程】
Replicat 进程,通常也把它叫做复制进程。运行在目标端,是数据传递的最
后一站,负责读取目标端 trail 文件中的内容,并将其解析为 DML 或 DDL 语句,
然后应用到目标数据库中。
和 Extract 进程一样,Replicat 也有其内部的 checkpoint 机制,保证进程重新启
评论