[发明专利]一种基于日志的异构多源数据库同步方法无效
| 申请号: | 201110287814.4 | 申请日: | 2011-09-26 |
| 公开(公告)号: | CN102346775A | 公开(公告)日: | 2012-02-08 |
| 发明(设计)人: | 董阳;董斌;李德逸;王伟信;孙学磊 | 申请(专利权)人: | 苏州博远容天信息科技有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 楼高潮 |
| 地址: | 215000 江苏省苏州*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 日志 异构多源 数据库 同步 方法 | ||
技术领域
本发明属于数据库同步领域,具体涉及一种基于日志的异构多源数据库同步方法。
背景技术
目前在数据库同步领域,同类数据库之间的数据同步有着比较完善的方法,如SQL Server 的数据复制、发布。
异构数据库之间的数据同步也有着较多的方式,如异构数据库数据的统合中间件、异构数据库基于SQL的数据同步等相关方法,但都不太完善,存在着一些问题。
具体问题包括:
1、对源数据库有读取数据操作,影响了源数据库的性能;
2、需要在目标数据库建立中间表,影响了目标数据库的完整性;
3、只能对单个异构源数据库和目标数据库之间同步,不能对异构的多源数据库与单一目标数据库同步。
而数据同步是不能对源数据库有任何性能和结构有任何影响的,否则会对源数据库的管理造成极大的困扰。
而异构多源数据库的同步是目前信息化集成、解决信息孤岛等集成化项目中迫切需要的一种数据库同步接口方式。
在数据库同步领域,一直在寻求相应解决的方法,是当前重要的研发课题之一。
发明内容
为克服现有技术中不足,本发明旨在提供一种基于日志的异构多源数据库同步方法,该方法以使得数据能够在多源数据库与目标数据库之间同步,能够跨越数据库异构的障碍,并且对源数据库没有任何性能和结构方面的影响。
为实现上述技术目的,为达到上述技术效果,本发明通过以下具体的技术方案实现:
一种基于日志的异构多源数据库同步发放,包括以下步骤:
步骤1)源数据读取,在源数据库端根据源数据库的日志文件,提取源数据库的操作,反向生成数据操作的SQL执行脚本。
在源数据库端通过源数据库的内置系统函数::fn_dblog读取SQL的日志文件,将事先作为参数配置好的需要同步数据的表名称作为查询条件得到要同步表的所有日志,并将“LOP_INSERT_ROWS”、“LOP_DELETE_ROWS”和“LOP_UPDATE_ROWS”三个参数作为条件筛选对同步表进行新增、删除、修改进行操作的语句,最后得到二进制的行数据,如“01220E02025200E7F2C01F29A03004500E20200”。
通过DBCC log ( {dbid |dbname}, [, type={0 |1 }]对二进制的行数据进行分析,先取定长字段,根据表结构指定长度,忽略不定长字段和其他不支持以及不需要考虑的字段,循环变长字段列表读取数据,就此得到行数据的对应格式,字段类型、字段名称、占用列数、变长和列对应字段的内容,对该内容进行拼接,得到相应增加、删除、修改的SQL执行脚本。
然后根据作为参数配置好的需要同步数据的表名称,从二进制的行数据中获取该表的表结构,成为SQL附属脚本。
步骤2:SQL脚本传递;
SQL执行脚本生成,传递完成信号,目的数据库端从源数据库端获取SQL执行脚本;然后对该脚本标注获取的源数据库的数据库类型、版本、IP地址、数据库名称、并将SQL附属脚本也作为标记,最后将该SQL执行脚本及其附属标记存入临时表。
源数据库端与目标数据库端SQL脚本传递的间隔时间,是由根据业务需要及网络现状,事先配置好的传输间隔参数SENDTIME来确定。
步骤3:数据冲突处理;
源数据库与目标数据库数据类型不同,SQL执行脚本不能通用,需要转换格式,进行处理;多源数据库同时对目标数据库的目标表同步数据,会有数据冲突,需要进行序列处理。
读取临时表数据,将源数据库SQL执行脚本,根据SQL附属脚本,按目标数据库的数据类型进行转换,转换表结构的字段类型,转换列对应字段的数据内容的存储格式,根据以上转换将SQL执行脚本按对应的方式进行相应的转换,生成可在目标数据库顺利执行的SQL语句,用目标数据库的SQL分析命令进行语句检查,检查通过,存入转换后的SQL执行脚本,进入下一步,否则,重新转换SQL执行脚本,直到读取临时表结束;
将临时表中同一目标表的数据按在源数据库中执行时间进行排序,删除不同的源数据库中重复的SQL执行脚本,按照预设置的处理逻辑对SQL执行脚本进行优化。
优化方式,将多条数据插入语句合并为一条数据批量插入语句;将多条数据删除语句合并为一条数据删除语句;将多条对同一主键的行数据修改语句合并为一条数据修改语句;在数据批量插入语句后增加nologging选项,使其执行时,提高执行速度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州博远容天信息科技有限公司,未经苏州博远容天信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110287814.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种对注册表文件进行整理的方法及装置
- 下一篇:一种数据存储和数据恢复方法





