注册 | 登录 忘记密码? 51cto首页 | 博客 | 论坛 | 招聘
热点文章 CCNA教材推荐
 帮助

『Oracle复制技术系列白皮书』Oracle数据库复制软件白皮书(二)


2007-09-05 16:33:25
 标签:复制 容灾   [推送到技术圈]

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://replication.blog.51cto.com/222909/41179

『Oracle复制技术系列白皮书』Oracle数据库复制软件白皮书(二)

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的装载通知后,在共享内存事务控制表中选择一个合适的事务,将此事务在目标中数据库重演再现。
 
 
 

本文出自 “推广数据库复制应用” 博客,请务必保留此出处http://replication.blog.51cto.com/222909/41179





    文章评论
 
 

发表评论

昵   称:
验证码:  点击图片可刷新验证码  博客过2级,无需填写验证码
内   容: