- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库复制及同步技术基础研究
数据库复制及同步技术基础研究
摘 要:现今的数据库和同步和复制管理手段,经过多年的行业催生和应用衍变,已经变得五花八门,各个数据库内部形成了自己的同步管理系统,数据之间也有大量的数据同步范本,本文主要针对于嵌入式数据同步,异地多服务器同步和受限管理的数据服务器端等不对等差异性数据同步进行简要阐述和研究。
关键词:数据同步;嵌入式数据;异地数据库复制
中图分类号:TN305 文献标识码:A 文章编号:1674-7712 (2013) 22-0000-01
一、概述
同步复制是指在一个或多个节点上进行数据备份,包括中心数据库服务器数据复制及移动终端中保存数据库的复制。通过同步技术来实现消除中心数据库和其他连接设备上的由于更新或实时性产生的数据不一致性。其目的是保存数据各个节点上的完整和一致性。
二、嵌入式数据库与服务器端同步
SQLite,作为一个成熟完善并且功能齐全的轻量级关系型数据库,被大量的使用在嵌入式设备中,作为移动设备的数据库,通常在数据同步时有两种情况:
(一)实时数据更新,这种数据一般体现在实时性要求高的应用中,如监控或者游戏等。
(二)用户可以离线操作,在重新上线后将离线操作的数据进行统一提交上传。
一般情况下,实际上所谓的实时更新是在很短的时间内提交数据并且变更相关项目,以SQLite和SQL Server进行数据同步为例:这两个数不同类型的数据库,如果反生强行进行数据迁移,双方无法直接访问对方的数据表,可以使用通讯协议的方式进行转换提交。在同步客户端,主要考虑更新监测模块、传输模块、功能管理模块。
1.更新监测模块
变更监视模块把移动数据库所做的变更操作(I NSERT,UPDATE,DELETE)记录下来,并作为元数据保存起来,作为同步的依据。保存的信息要足够让同步模块能够做到准确的同步。在SQLite中,有个SOLire3 update hook()接口函数,它在每次发生I NSERT、UPDATE、DELETE操作的时候都会被执行,代码如下:SQLite3 uPdat e h00k(db,uodate―hook,(VOid丰)db)。但在管理同步数据时,也有很多关于同步的元数据需要存放和管理,更新数据时元数据也会发生更新,触发接口函数,形成死循环,解决方案是以“SYn一”开头的表名都做本同步系统使用的表,如果是同步元数据表,就不用记录。通过SQLite3的回调函数,数据更改的信息得以记录在元数据表中,作为之后与同步服务器更新的依据。
2.传输模块
可以采用TCP、UDP传输层协议和HTTP等应用层协议,也可以自己定义协议,协议要有足够的能力可以与同步服务器通信来实现同步数据的上传下载。网络通信模块同时也要提供安全传输的功能,能够加密解密数据。通过分析已有的资料分析,选择HTTP协议。考虑到网络的断接性,需要克服同步粒度大的问题,采用每次同步的行不超过一个N值的方法,则数据传输的总次数L=M/N(M为数据更新的条数,N为每次传输N行),N的值可以根据实际情况调整,要考虑的因素包括网络的稳定性、带宽的价格、网络的速度、移动终端的性能、同步服务器的性能等。网络通信在客户端可以调用HTTP客户端类库Curl来实现。
3.功能管理模块
每个同步都是一次同步会话。会话的流程和步骤,错误的处理,都需要有充分的考虑和定义。系统中考虑会话的逻辑关系为:(1)用户程序通过修改(包括INSERT、UPDATE和DELETE)客户端数据库中的数据项;(2)客户端同步模块获取修改的元数据;(3)客户端同步模块将修改的元数据存入数据库中;(4)同步模块根据数据库中的元数据获取要同步的数据;(5)客户端同步模块通过网络将数据上传至服务器同步服务模块。
(三)服务器模块的同步分析
同步服务器要连接终端和中心数据库,在两者问除了交换信息外还要处理多客户端连接的并发,同步冲突的处理等任务。如果系统负载比较大,可能还有多服务器均衡负载的需求。同步服务器包含三个部分:终端连接响应模块、数据库连接模块和系统同步会话逻辑处理模块。同步服务器要处理来自多个终端的连接,并确保每个终端都不必知晓别的终端的同步而独立的执行,也就是说,每个终端的同步信息不能混淆,更不能相互影响。这是个比较底层的功能,使用现有的软件上的技术,往往就具web容器。数据库连接模块系统设计的一个目标就是能够与多种数据同步的冲突处理节点上的数据源与目的数据同步时,可能发生数据冲突。同步冲突是分布式数据系统非常常见的现象,在移动数据库同步系统中,用户可以通过制定以主数据库数据为主,或者以移动设备上的嵌入式数据库数据为主,来解决主数据库与嵌入式数据库两者之间的数据同步过程中的冲突
文档评论(0)