mysql与MongoDB数据同步的方法及其系统的制作方法

文档序号:9687572阅读:680来源:国知局
mysql与MongoDB数据同步的方法及其系统的制作方法
【技术领域】
[000?]本发明涉及一种my sql与MongoDB数据同步的方法,特别是涉及一种能实现上述方法的系统。
【背景技术】
[0002]mysql是现有的一个关系型数据库管理系统。MongoDB是目前IT行业常用的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。
[0003]因此,有必要针对mysql研发一种将mysql里面的数据同步到MongoDB数据库的方法,以便进行整合、开发。

【发明内容】

[0004]有鉴于此,本发明的目的在于提供一种mysql与MongoDB数据同步的方法。
[0005 ]本发明还提供一种my sql与MongoDB数据同步的系统。
[0006]为了达成上述目的,本发明的解决方案是:
[0007]一种mysql与MongoDB数据同步的方法,通过以下步骤实现:
[0008]1)、在开发机上搭建开发环境;
[0009]2)、在A服务器上安装mysql数据库,并将数据库引擎设置为INN0DB,启动数据库;
[0010]3)、在B服务器上安装MongoDB数据库;
[0011 ] 4)、在开发机上,打开Ec 1 ipse,新建一个工程,配置好依赖jar包;
[0012]5)、在开发机上新建一个类,在类里面编写数据同步代码,步骤如下:
[0013]5.1)、在开发机上调用OpenRepl icator,读取A服务器上mysql的binlog日志文件,如果读取失败,则启动A服务器mysql并联网成功,联网成功之后执行步骤5.2;如果读取binlog日志文件成功,则执行步骤5.2 ;
[0014]5.2)、在开发机上定义计数器11,11 = 1;
[0015]5.3)、开发机读取A服务器上的第η行binlog,将赋值给字符串S1;
[0016]5.4)、如果S1为空,则同步结束,如果不为空,进一步判断S1是否包含insert\update关键字,如果包含则执行步骤5.5,否则n = n+l,执行步骤5.3 ;
[0017]5.5),开发机将S1转为MongoDB可执行的字符串S2 ;
[0018]5.6)、开发机调用MongoDB JDBC驱动,连接MongoDB,如果连接失败,则启动B服务器MongoDB数据库并联网成功,如果联网成功则执行步骤5.7 ;
[0019]5.7)、调用MongoDB驱动,在MongoDB上执行S2语句,如果失败,则同步结束;如果成功,贝>Jn = n+l,并执行步骤5.3。
[0020]一种mysql与MongoDB数据同步的系统,采用如如前所述的方法。
[0021 ]采用上述方案后,本发明的my sq 1与MongoDB数据同步的方法具有以下有益效果:本发明的目的是让开发人员能够将将my sql数据同步到MongoDB。软件开发时直接从MongoDB取数据,从而发挥my sq 1与MongoDB这两者的优势
[0022]本发明的mysql与MongoDB数据同步的系统也具有以上有益效果。
【附图说明】
[0023]图1为本发明的mysql与MongoDB数据同步的方法的流程框图。
【具体实施方式】
[0024]为了进一步解释本发明的技术方案,下面通过具体实施例来对本发明进行详细阐述。
[0025]实施例一
[0026]如图1所示,本发明的mysql与MongoDB数据同步的方法主要通过以下步骤实现:
[0027]1)、在开发机上搭建开发环境;
[0028]2)、在A服务器上安装mysql数据库,并将数据库引擎设置为INN0DB,启动数据库;其中,INN0DB或InnoDB是MySQL的数据库引擎之一,为MySQL AB发布binary的标准之一。
[0029]3)、在B服务器上安装MongoDB数据库;
[0030]4)、在开发机上,打开Eclipse,新建一个工程,配置好依赖jar包;其中,jar包就是已经写好的一些类,将这些类进行打包,就可以将这些jar包引入项目中,然后就可以直接使用这些jar包中的类和属性。
[0031]5)、在开发机上新建一个类,在类里面编写数据同步代码,详细步骤如下:
[0032]5.1)、在开发机上调用OpenReplicator,读取A服务器上mysql的binlog日志文件,如果读取失败,则启动A服务器mysql并联网成功,联网成功之后执行步骤5.2;如果读取binlog日志文件成功,则执行步骤5.2;其中,0pen Repl icator是一个用Java编写的MySQLbinlog分析程序。
[0033]5.2)、在开发机上定义计数器η,n = l;
[0034]5.3)、开发机读取A服务器上的第η行binlog,将赋值给字符串SI;
[0035]5.4)、如果S1为空,则同步结束,如果不为空,进一步判断S1是否包含insert\update这两个关键字。如果包含则执行步骤5.5,否则n = n+l,执行步骤5.3 ;
[0036]5.5),开发机将S1转为MongoDB可执行的字符串S2 ;
[0037]5.6)、开发机调用MongoDB JDBC驱动,连接MongoDB,如果连接失败,则启动B服务器MongoDB数据库并联网成功,如果联网成功则执行步骤5.7 ;
[0038]5.7)、调用MongoDB驱动,在MongoDB上执行S2语句,如果失败,则同步结束;如果成功,贝>Jn = n+l,并执行步骤5.3。
[0039 ]本发明的my s q 1与MongoDB数据同步的系统,能实现如前所述的方法。
[0040]实施例二
[0041]本发明经测试通过后,即可部署到生产环境,进入实际应用阶段。
[0042]l、Mysql数据库为企业已经在运行中的数据库。
[0043]2、MongoDB数据库为企业将来大数据分析用到的No SQL数据库集。
[0044]3、同步程序服务器为本专利中提到的程序部署环境,该服务器与My sql和MongoDB通过TCP/IP协议通信。操作系统为Cent0S6.6。
[0045]部署实施过程:
[0046]3.1、在同步程序服务器安装JDK。
[0047]3.2、将本发明开发的程序拷贝到/11817100&1/1:01^1311/目录下。
[0048]3.3、在系统定时器设定定时任务,每秒调用一次该程序。
[0049 ] 3.4、启动定时任务,观察MongoDB数据库。数据已经同步过来。同步成功。
[0050]上述实施例和附图并非限定本发明的产品形态和式样,任何所属技术领域的普通技术人员对其所做的适当变化或修饰,皆应视为不脱离本发明的专利范畴。
【主权项】
1.一种mysql与MongoDB数据同步的方法,其特征在于,通过以下步骤实现: 1)、在开发机上搭建开发环境; 2)、在A服务器上安装mysql数据库,并将数据库弓I擎设置为INN0DB,启动数据库; 3)、在B服务器上安装MongoDB数据库; 4)、在开发机上,打开Ec1 ipse,新建一个工程,配置好依赖jar包; 5)、在开发机上新建一个类,在类里面编写数据同步代码,步骤如下: 5.1)、在开发机上调用OpenReplicator,读取A服务器上mysql的binlog日志文件,如果读取失败,则启动A服务器mysql并联网成功,联网成功之后执行步骤5.2 ;如果读取binlog日志文件成功,则执行步骤5.2 ; 5.2)、在开发机上定义计数器η,n=l; 5.3)、开发机读取A服务器上的第η行binlog,将赋值给字符串SI; 5.4)、如果S1为空,则同步结束,如果不为空,进一步判断S1是否包含insert\update关键字,如果包含则执行步骤5.5,否则n = n+l,执行步骤5.3 ; 5.5)、开发机将S1转为MongoDB可执行的字符串S2; 5.6)、开发机调用MongoDBJDBC驱动,连接MongoDB,如果连接失败,则启动B服务器MongoDB数据库并联网成功,如果联网成功则执行步骤5.7 ; 5.7)、调用MongoDB驱动,在MongoDB上执行S2语句,如果失败,则同步结束;如果成功,贝11]1 = 11+1,并执行步骤5.3。2.—种mysql与MongoDB数据同步的系统,其特征在于:采用如如权利要求1所述的方法。
【专利摘要】本发明公开一种mysql与MongoDB数据同步的方法,在开发机上调用OpenReplicator,读取A服务器上日志文件,失败则启动A服务器mysql并联网成功,成功则执行步骤5.2;5.2)、在开发机上定义计数器n;5.3)、开发机读取A服务器上的第n行binlog,将赋值给字符串S1;5.4)、S1为空则同步结束,不为空判断S1是否包含insert\update关键字,包含则执行步骤5.5,否则n=n+1,执行步骤5.3;MongoDB上执行S2语句,失败则同步结束;成功则n=n+1并执行步骤5.3。本发明还公开一种采用上述方法的系统。本发明可发挥mysql与MongoDB这两者的优势。
【IPC分类】G06F17/30
【公开号】CN105447111
【申请号】CN201510779001
【发明人】姚俊峰, 阙锦龙, 文燕, 柴满林, 胡子豪
【申请人】铜陵有色金属集团股份有限公司金冠铜业分公司, 厦门大学
【公开日】2016年3月30日
【申请日】2015年11月13日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1