扫一扫
关注微信公众号

『Oracle复制技术系列白皮书』Oracle数据库复制软件白皮书(二)
2007-10-12   51cto

DDS系统结构

模块化的系统结构

DDS采用模块化设计,每个模块完成单独的功能,多个模块互相配合工作。这样的设计保证DDS有很好的可扩展性,功能可以做到并发处理,单独的模块维护和升级也不会影响整个软件。模块之间有并发和自我监控机制,即使有部分进程实效,也不会导致工作停止。
物理结构上,DDS包括内存进程和磁盘存储两个部分。内存进程包括后台进程和共享内存区;磁盘存储部分包括日志文件和缓存文件。

后台进程

DDS有多组后台进程,每组包括一个或多个相同的进程,进程间通过共享内存区和磁盘缓存交换数据和消息,互相配合工作,启动多个同名的进程表示进行并发处理。源端和目的端在进程的功能和名称上有较大区别,源端主要做日志的分析和传输,目的端则负责交易的接收和装载。
源端主要进程:
Ø DDS_PMONS负责建立共享内存、信号灯、消息队列,监控系统其它进程的状态,重起异常退出进程并报告状态;
Ø DDS_PMSGS负责收集其它所有进程报告的各种错误信息,将错误信息存放到日志文件 msg.log中;
Ø DDS_PRECVS负责接收界面发送来的管理命令并执行;
Ø DDS_PTRACK负责跟踪数据库redo log动态增量信息;
Ø DDS_PMERGE负责将DDS_PTRACK 输出的增量信息进行过滤、合成;
Ø DDS_PCOMM负责将DDS_PMERGE 输出的信息发送到目标端;
Ø DDS_PCLEAN负责将 DDS_PMERGEDDS_PCOMM没有成功处理的数据包提交进行处理;
""
1DDS源端体系结构
PTRACK跟踪到redo log增量信息,将其写入共享内存,并通知 PMERGE 进行处理,PTRACK同时将此数据包写入缓存目录$DDS_DATA/track中,以便后续进程没有成功处理或系统其它异常情况时,这些数据能够恢复并重新进行处理。
PMERGE收到PTRACKPCLEAN的通知,将收到的数据包进行各种必要的处理,生成处理后的数据包,将新数据包写入共享内存,并通知PCOMM 进行处理。
PCOMM 收到PMERGEPCLEAN的通知,将收到的数据包发送到目标端系统,如果发送不成功(目标系统未启动、网络故障),将数据包写入缓存目录 $DDS_DATA/comm中。
PCLEAN清道夫进程,负责将缓存中未处理的数据包提出并请求PMERGE PCOMM重新进行处理。
目的端主要进程:
Ø DDS_PMONT负责建立共享内存、信号灯、消息队列,监控系统其它进程的状态,重起异常退出进程并报告状态;
Ø DDS_PMSGT负责收集其它所有进程报告的各种错误信息,将错误信息存放到日志文件msg.log中;
Ø DDS_PRECVT负责接收界面发送来的管理命令并执行,接收增量数据包,装载历史数据;
Ø DDS_PSCHED负责调度待装载事务并通知装载进程开始工作;
Ø DDS_PPUT负责装载增量信息到数据库中;
Ø DDS_PRID统一负责所有并行装载进程的rowid存取;
PRECVT 接收由源系统发送的增量数据包后,通知PSCHED调度进程进行处理;接收界面发送过来的各种命令,处理后发送结果返回到界面;接收历史数据,并启动数据库导入工具将历史数据导入到数据库中。
PSCHED在收到 PRECVT的通知后,查询是否有数据包等待装载,如果有,则将数据包装载到共享内存中,将数据包分成事务列表,启动不同的PPUT装载进程进行操作。
PPUT在收到PSCHED的装载通知后,在共享内存事务控制表中选择一个合适的事务,将此事务在目标中数据库重演再现。
""
PRECVT 接收由源系统发送的增量数据包后,通知PSCHED调度进程进行处理;接收界面发送过来的各种命令,处理后发送结果返回到界面;接收历史数据,并启动数据库导入工具将历史数据导入到数据库中。
PSCHED在收到 PRECVT的通知后,查询是否有数据包等待装载,如果有,则将数据包装载到共享内存中,将数据包分成事务列表,启动不同的PPUT装载进程进行操作。
PPUT在收到PSCHED的装载通知后,在共享内存事务控制表中选择一个合适的事务,将此事务在目标中数据库重演再现。

热词搜索:

上一篇:『Oracle复制技术系列白皮书』Oracle数据库复制软件白皮书(一)
下一篇:『Oracle复制技术系列白皮书』Oracle数据库复制软件白皮书(三)

分享到: 收藏