工控网首页
>

应用设计

>

数据库同步(Synchronization)机制在收费管理软件中的应用

数据库同步(Synchronization)机制在收费管理软件中的应用

2010/3/18 11:12:00

     在开发拥有多个入出口的高速公路、大中型停车场及城市泊车咪表系统等收费管理软件中,为防止因服务器故障、临时维护、网络中断或不稳定而导致车道或出口车辆长时间的等待,确保收费工作的持续进行,一般要为每个入出口配置本地应用数据库,各入出口数据必须交换共享实时同步。

    数据库同步机制在应用中具有设置简便,正确配置后系统按用户设定的规则自动监视运行、交换更新数据,不必开发服务器端及通信软件,性能稳定可靠等特点,大大简化了应用开发。在层级模型扁平的应用中优势尤其明显,对于多层级的应用也可通过增加层级标志等方式把模型逻辑扁平化。

 

    复制(Replication)简介

    要实现数据库同步功能,首先要了解“复制”的概念。“复制”是在数据库之间对数据和数据库对象进行复制和分发并按预设的时间进行数据同步以确保其一致性的一组技术。使用复制可以将数据分发到不同位置,通过局域网、使用拨号连接、通过 Internet 分发给远程或移动用户。

    在收费管理软件中,可以以管理中心数据库为核心,通过数据库复制功能,在各道口收费站计算机中生成管理中心数据库的一个复本,那么无论是管理中心数据库要下传的插入、删除或更新数据或者是各道口收费站要上传的插入、删除或更新的数据都不必再人工干预,同步机制将自动监视一切数据的变动,把当前数据库的变化发布给其他的数据库,使各数据库的数据始终保持最新状态。

 

    复制的优点

    不同的应用程序对独立性和数据一致性有不同的需求。复制在诸如收费管理等分布式数据环境中是一种良好的解决方案:
· 将数据复制或分发至一个或多个站点。
· 依照调度方式分发数据复本。
· 允许更大的独立性。用户可以在网络连接断开的情况下继续使用本地的数据复本,然后在连接恢复时系统自动对数据库所做的更改更新到其它数据库。
· 允许多个用户和站点进行更改,然后将数据修改合并到一起,潜在地识别和解决冲突。
· 生成需要在联机或脱机环境下使用的数据应用程序。
· 生成用户可以浏览大量数据的 Web 应用程序。
· 提高聚合读取性能。
· 有助于减少因多个用户进行数据修改和查询而引起的冲突,因为数据可以通过网络进行分发,所以可以根据不同商业单位或用户的需求对数据进行分区。
· 复制可用作自定义备用服务器策略的一部分。复制是备用服务器策略的一种选择。它包括日志传送和故障转移群集,它们在服务器失败的情况下提供数据的复本。

 

    复制的类型

    数据库可用的复制类型一般有三种:快照复制(Snapshot)、事务复制(Transaction)和合并复制(Merge)。
快照复制是完全按照数据和数据库对象原本的状态对其进行复制和分发的过程。快照复制不要求对更改进行连续的监视,主要在数据不经常更改、一个时期内允许有已过时的数据复本、站点经常脱接,并且可接受高滞后时间时应用;
事务复制是将数据的初始快照传播到订阅服务器(本地数据库),然后,当发布服务器(中心数据库)上发生数据修改时,捕获个别的事务并传播到订阅服务器。

    合并复制主要在以下情况下使用:多个订阅服务器需要在不同时刻更新数据并将这些更改传播到发布服务器和其它订阅服务器;订阅服务器需要接收数据、脱机更改数据、然后将更改同步到发布服务器和其它订阅服务器;站点独立很重要。合并复制使各站点得以自主工作(联机或脱机),并在预设的时间周期将多个站点上的数据修改合并为一个统一的结果。同步机制在发布服务器和订阅服务器上跟踪对已发布数据的更改。数据在调度时间或请求时在服务器之间进行同步。由于在多个服务器上独立地进行更新(不提交协议),发布服务器或多个订阅服务器可能更新同一数据。于是,合并更新时就可能出现冲突。合并复制包含默认或自定义冲突解决选项,可在配置合并复制功能时加以定义。当冲突发生时,合并代理程序唤醒调用冲突解决程序,决定接受和向其它站点传播哪些数据。

    由于在收费管理软件中,一般要求下传登录的月租卡号、变更的月租卡存款金额以及收费费率变更等数据;同时要求上传汽车通行缴费金额等数据,数据要求双向插入更新与合并,因此在数据库设计开发时一般选用合并复制功能。

 

    复制模型

    复制模型主要包含下列对象:发布服务器、分发服务器、订阅服务器、发布、项目和订阅。

    发布服务器(Distribution Server):发布服务器是提供数据以便复制到其它服务器的服务器。发布服务器可以具有一个或多个发布,每个发布代表一组逻辑相关的数据。除了指定其中哪些数据需要复制之外,发布服务器还检测事务复制期间发生更改的数据并维护有关此站点上所有发布的信息。

    分发服务器:分发服务器是作为分发数据库宿主并存储历史数据或事务以及源数据的服务器。分发服务器的角色根据执行的复制类型而不同。远程分发服务器是独立于发布服务器并配置为复制的分发服务器的服务器。本地分发服务器是既配置为复制的发布服务器又配置为复制的分发服务器的服务器。

    订阅服务器(Subscription Server):订阅服务器是接收复制数据的服务器。订阅服务器订阅的是发布而不是发布中分离的项目;并且订阅服务器只订阅其需要的发布,而不是发布服务器上所有可用的发布。根据复制的类型和所选择的复制选项,订阅服务器还可以将数据更改传播回发布服务器或将数据重新发布到其它订阅服务器。

    发布(Distribution):发布是一个数据库中的一个或多个项目的集合。这种多个项目的分组使得指定逻辑相关的一组数据和数据库对象一起复制变得更容易。

    项目:项目是指定要复制的数据表、数据分区或数据库对象。项目根据应用需要可以是完整的表、某几列(使用垂直筛选)、某几行(使用水平筛选)、存储过程或视图定义、存储过程的执行、视图、索引视图或用户定义函数。

    订阅(Subscription):订阅是对数据或数据库对象的复本的请求。订阅定义将接收的发布和接收的时间、地点。订阅的同步或数据分发可以由发布服务器(在发布服务器端向订阅服务器强制订阅)或订阅服务器(在订阅服务器端向发布服务器请求订阅)请求。发布还支持强制订阅和请求订阅的混合。

 

    复制的工作机制

    合并复制是由快照代理程序和合并代理程序实现的。快照代理程序准备快照文件,其中包含已发布表的架构和数据,然后将这些文件存储在快照文件夹中,并在发布数据库中插入同步作业。快照代理程序还创建复制特定的存储过程、触发器和系统表。

    合并复制代理程序将保存在发布数据库表中的初始快照作业应用到订阅服务器上。该代理程序也合并那些创建初始快照之后在发布服务器或订阅服务器上发生的增量数据更改,并根据配置的规则或者使用创建的自定义冲突解决程序协调冲突。

 


    在合并复制中分发服务器的角色非常有限,所以在本地(即在与发布服务器所在的同一台服务器上)实现分发服务器是很常见的。在合并复制过程中根本不使用分发代理程序,分发服务器上的分发数据库存储有关合并复制的历史信息和杂项信息。复制的工作机制如图1所示:

 

    同步数据

    同步处理数据是指在初始快照已经设置应用于订阅服务器之后,数据在发布服务器和订阅服务器之间传播的过程。当对某个订阅进行同步处理时,发生的过程会有所不同,这取决于使用的复制类型以及此订阅是否标记为重新初始化。对于快照发布,同步处理数据意味着在订阅服务器

投诉建议

提交

查看更多评论
其他资讯

查看更多

助力企业恢复“战斗状态”:MyMRO我的万物集·固安捷升级开工场景方案

车规MOSFET技术确保功率开关管的可靠性和强电流处理能力

未来十年, 化工企业应如何提高资源效率及减少运营中的碳足迹?

2023年制造业“开门红”,抢滩大湾区市场锁定DMP工博会

2023钢铁展洽会4月全新起航 将在日照触发更多商机