本发明涉及数据同步,具体为一种在受限网络条件下数据同步方法。
背景技术:
1、数据库的同步是在日常工作中常见的工作需求,它需要多台服务器在某时段内保持数据的一致性。
2、现有技术中,如数据管理方与数据使用方隶属于两套独立系统。数据使用方需要保持起自身数据库与管理方数据库一致以保证数据的准确性。
3、但是,由于数据库国产化要求、网络安全要求、全过程可追溯等要求,现有方案不能满足在网络、数据库选型等条件;常见的数据同步多使用诸如订阅binlog数据库日志实现增量更新,亦或者是使用mysqldump命令导出所有数据,再借由scp传输到目标服务器进行全量更新。或者是使用市面上现成的数据库管理软件如dbsyncer kettle等。对于使用命令行导出导入数据的方案,由于数据库类型不同,sql语句不同。强行执行会报错。对于额外部署系统的方案,因为在假设中网络不能直接联通,需要增加中转服务器来实现服务器交流,额外部署系统需要在中转服务器上再部署数据库,在数据发送与接受方各部署一套系统,增加运维成本与难度。
技术实现思路
1、本发明的目的在于提供一种在受限网络条件下数据同步方法,以解决上述背景技术中提出的在网络不能直接连通,无法通过ssh直接访问数据库服务器的前提下,借助javaspring完成mysql数据库与达梦数据库之间的数据同步的问题。
2、为实现上述目的,本发明提供如下技术方案:一种在受限网络条件下数据同步方法,包括数据管理、维护方内网区域,互联网区以及数据使用方内网区域,所述方法包括以下步骤:
3、在数据管理方设置一台服务器,并使用mysql作为数据库;在维护方内网区域设置一台服务器,使用达梦数据库作为数据库;在互联网区配置一台中转服务器;
4、数据管理方根据时间导出增量更新的csv数据文件存放至指定目录,中转服务器定时与管理方数据同步数据文件夹,数据使用方内网区域定时与中转服务器同步数据文件夹。
5、优选的,中转服务器对内网区域单向开放用于ssh链接的22端口。
6、优选的,还包括数据推送,数据推送的具体操作包括:
7、每一个数据表会存一个csv文件,同时为了保证csv文件不重名,命名格式为“数据表名-本次任务执行时间的时间戳”;
8、所有的执行时间均使用任务开始的时间,以确保不会因为在执行导出的时候数据变化而使得下一次导出数据产生缺漏;
9、rsnyc命令不在流程执行后立刻进行,在服务器设置定时任务定时同步数据导入流程。
10、优选的,数据导入流程的具体操作包括:
11、服务器会定时执行ransyc命令与中转服务器的文件保持一致;
12、需要严格按照时间戳从小到大排序以及筛选文件,因为对同一数据表修改而产生的数据文件可能会有两份,需要按照时间的先后顺序执行导入以保证数据的一致性;
13、导入的逻辑是用唯一主键id与数据库资料进行比对,如果存在相同id则修改不然则插入;
14、日志记录是文件级记录,会记录每个文件的导入时间,导入状态,如果有出错溯源,手动重新导入,取最新导入数据时可以去最大的导入时间戳。
15、与现有技术相比,本发明的有益效果是:
16、本发明提出的在受限网络条件下数据同步方法,通过数据管理方根据时间导出增量更新的csv数据文件存放至指定目录。中转服务器定时与管理方数据同步数据文件夹。数据使用方再定时与中转服务器同步数据文件夹;解决了在网络不能直接连通,无法通过ssh直接访问数据库服务器的前提下,借助java spring完成mysql数据库与达梦数据库之间的数据同步,同时完成日志记录。
1.一种在受限网络条件下数据同步方法,包括数据管理、维护方内网区域,互联网区以及数据使用方内网区域,其特征在于:所述方法包括以下步骤:
2.根据权利要求1所述的一种在受限网络条件下数据同步方法,其特征在于:中转服务器对内网区域单向开放用于ssh链接的22端口。
3.根据权利要求1所述的一种在受限网络条件下数据同步方法,其特征在于:还包括数据推送,数据推送的具体操作包括:
4.根据权利要求3所述的一种在受限网络条件下数据同步方法,其特征在于:数据导入流程的具体操作包括: