数据同步方法、装置、计算机设备及存储介质与流程

文档序号:18475375发布日期:2019-08-20 20:57阅读:153来源:国知局
本申请涉及数据处理
技术领域
:,尤其涉及一种数据同步方法、装置、计算机设备及存储介质。
背景技术
::数据库可以理解为一种数据文件柜,用于存储各种电子数据文件,用户可以对数据文件中的数据进行新增、截取、更新、删除等操作,现在几乎所有的应用都离不开数据库的支持。目前用户均会采用各种类型的数据库进行数据存储,比如pg、mysql、oracle等类型的数据库,有时候用户为了节约成本,需要将存在各种类型的数据库中的数据进行迁移以实现同步,由于数据库的类型较多给数据迁移带来了困难,同时在迁移的过程中也会影响数据库的正常使用。因此,有必要提供一种数据同步方法以解决上述问题。技术实现要素:本申请提供了一种数据同步方法、装置、计算机设备及存储介质,以提高数据库之间的数据同步效率。第一方面,本申请提供了一种数据同步方法,所述方法包括:获取源数据库的日志操作文件以及所述源数据库对应的数据库类型;根据数据库类型与文件解析规则之间预设的对应关系,确定所述源数据库的数据库类型对应的文件解析规则;根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件;获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件;将所述sql文件上传至云服务器以使所述云服务器将所述sql文件发送至所述目标数据库进行执行。第二方面,本申请还提供了一种数据同步装置,所述装置包括:文件获取单元,用于获取源数据库的日志操作文件以及所述源数据库对应的数据库类型;规则确定单元,用于根据数据库类型与文件解析规则之间预设的对应关系,确定所述源数据库的数据库类型对应的文件解析规则;文件解析单元,用于根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件;文件生成单元,用于获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件;文件上传单元,用于将所述sql文件上传至云服务器以使所述云服务器将所述sql文件发送至所述目标数据库进行执行。第三方面,本申请还提供了一种计算机设备,所述计算机设备包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如上述的数据同步方法。第四方面,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现如上述的数据同步方法。本申请公开了一种数据同步方法、装置、设备及存储介质,通过获取源数据库的日志操作文件以及对应的数据库类型;并确定所述源数据库的数据库类型对应的文件解析规则,用于对所述日志操作文件进行解析以得到解析文件;获取目标数据库的数据库类型,根据所述数据库类型和所述解析文件生成sql文件;将所述sql文件上传至云服务器以使所述云服务器在所述目标数据库处于空闲状态时将所述sql文件发送至所述目标数据库进行执行,进而完成源数据库和目标数据库之间的数据同步。该方法可以提高数据库之间的数据同步效率,同时又避免了影响数据库的正常使用。附图说明为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请的实施例提供的数据同步方法的应用场景示意图;图2是本申请的实施例提供的一种数据同步方法的示意流程图;图3是图2中的数据同步方法的子步骤示意流程图;图4是图2中的数据同步方法的子步骤示意流程图;图5是本申请的实施例提供的另一种数据同步方法的示意流程图;图6为本申请的实施例提供的一种数据同步装置的示意性框图;图7为本申请的实施例提供的另一种数据同步装置的示意性框图;图8为本申请的实施例提供的一种计算机设备的结构示意性框图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。本申请的实施例提供了一种数据同步方法、装置、计算机设备及存储介质。其中,所述数据同步方法可以应用于服务器中,用于实现数据库之间的数据同步,该服务器可以为独立的服务器,也可以为服务器集群。下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。请参阅图1,图1是本申请实施例提供的数据同步方法的应用场景示意图。如图1所示,该应用场景包括服务器1、云服务器、数据库a1、数据库a2、数据库a3和数据库b,数据库a1、数据库a2和数据库a3为源数据库,数据库b为目标数据库。当然可以包括更多的源数据库或者目标数据库。本申请提供的数据同步方法均可应用于服务器1中,通过云服务器实现将数据库a1、数据库a2或数据库a3的数据同步至数据库b中。其中,数据库a1、数据库a2和数据库a3为不同类型的数据库,比如数据库a1、数据库a2和数据库a3对应的类型分别为:pg、mysql和oracle类型,当然也可以相同类型的数据库或者为其他类型的数据库。需要说明的是,图1中的应用场景并不构成对该数据同步方法所适用的场景的限定,只是为了便于理解,给出一个具体场景示例,以下将结合该应用场景对该数据同步方法进行详细介绍。在一个实施例中,服务器1具体实现以下步骤:获取源数据库的日志操作文件以及所述源数据库对应的数据库类型;根据数据库类型与文件解析规则之间预设的对应关系,确定所述源数据库的数据库类型对应的文件解析规则;根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件;获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件;将所述sql文件上传至云服务器,以使所述云服务器将所述sql文件发送至所述目标数据库进行执行,完成数据库之间的数据同步。例如,服务器1通过执行上述数据同步方法实现将源数据库中的数据同步至目标数据库中,其中源数据库比如为不同类型的数据库a1、数据库a2或数据库a3,目标数据库比如为数据库b,服务器1借助云服务器通过上述数据同步方法实现将数据库a1、数据库a2或数据库a3的数据同步至数据库b,由此提高了数据同步效率以及数据库的工作效率。在一个实施例中,服务器1具体用于实现以下步骤:获取源数据库的日志操作文件以及所述源数据库对应的数据库类型;根据数据库类型与文件解析规则之间预设的对应关系,确定所述源数据库的数据库类型对应的文件解析规则;根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件;获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件;将所述sql文件上传至云服务器,以使所述云服务器在监控到所述目标服务器处于空闲状态时将所述sql文件发送至所述目标数据库进行执行,完成数据库之间的数据同步。例如,服务器1通过执行上述数据同步方法将源数据库中的数据同步至目标数据库中,其中源数据库比如为不同类型的数据库a1、数据库a2或数据库a3,目标数据库比如为数据库b,服务器1将生成的sql文件上传至云服务器中进行存储,使得云服务器在监控到数据库b处于空闲状态时,将所述sql文件发送至数据库b进行执行,以完成数据库之间的数据同步,由此在不影响源数据库和目标数据库正常使用的情况下实现了数据库之间的数据同步,同时又提高了数据同步效率以及数据库的工作效率。在一个实施例中,服务器1具体实现以下步骤:获取源数据库的日志操作文件以及所述源数据库对应的数据库类型;根据数据库类型与文件解析规则之间预设的对应关系,确定所述源数据库的数据库类型对应的文件解析规则;根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件;获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件;将所述sql文件上传至云服务器进行保存并监测所述目标数据库是否处于空闲状态;若所述目标数据库处于空闲状态,发送数据同步指令至所述云服务器以使所述云服务器根据所述数据同步指令将所述sql文件发送至所述目标数据库进行执行。例如,服务器1通过执行上述数据同步方法将源数据库中的数据同步至目标数据库中,其中源数据库比如为不同类型的数据库a1、数据库a2或数据库a3,目标数据库比如为数据库b,服务器1将生成的sql文件上传至云服务器进行存储后,并监控数据库b是否处于空闲状态,若数据库b处于空闲状态,发送数据同步指令至云服务器指令所述云服务器将所述sql文件发送至数据库b进行执行,完成数据库之间的数据同步,由此在不影响源数据库和目标数据库正常使用的情况下实现了数据库之间的数据同步,同时又提高了数据同步效率以及数据库的工作效率。请参阅图2,图2是本申请的实施例提供的一种数据同步方法的示意流程图。如图2所示,该数据同步方法具体包括步骤s101至s105。s101、获取源数据库的日志操作文件以及所述源数据库对应的数据库类型。具体地,服务器1获取源数据库的日志操作文件,以及获取所述源数据库对应的数据库类型。源数据库比如为图1中的数据库a1、数据库a2或数据库a3,当然也可以为图1中的数据库b。其中,该日志操作文件是对数据的任何一次操作而产生一条日志记录的集合,该操作包括插入数据、删除数据和更新数据等等。产生的日志记录便于用户日后查看以及后续分析,比如用户做一次插入操作,日志操作文件都会多出一次插入操作的日志记录消息。在一个实施例中,为了更为有效地进行数据同步,所述获取源数据库的日志操作文件的步骤包括:定时轮询源数据库并获取源数据库产生的日志操作文件。其中,定时轮询按照预设的轮询周期进行轮询相应的源数据库,轮询周期比如为:两小时、一天或者一周等等。其中,数据库类型包括pg、mysql、oracle、db2和sybase等类型,不同类型的数据库产生的日志操作文件的格式和内容均不相同,需要相应的解析规则对日志操作文件进行解析。s102、根据数据库类型与文件解析规则之间预设的对应关系,确定所述源数据库的数据库类型对应的文件解析规则。具体地,因为不同的源数据库的数据库类型不同,导致保存的日志操作文件格式也可能不同,因此需要预先设置好不同的数据库类型对应不同的文件解析规则,以便根据源数据库的数据库类型快速确定其对应的文件解析规则,进而提高数据同步效率。比如,数据库类型为oracle类型,对应的文件解析规则设置为使用logminer解析;数据库类型为mysql类型,对应的文件解析规则设置为使用mysqlbinlog解析,具体如表1所示。表1为数据库的数据库类型和解析规则对应关系表数据库日志操作文件文件解析规则oracle在线日志&归档日志使用logminer解析mysqlbinlog&relaylog使用mysqlbinlog解析将数据库类型与文件解析规则之间预设的对应关系保存在数据表中以便调用该数据表,确定所述源数据库的数据库类型对应的文件解析规则。需要说明的是,一个数据库类型可能对应多个不同的文件解析规则,例如根据不同日志操作文件的类型设置不同的文件解析规则,比如oracle数据库中的日志操作文件的类型为在线日志和归档日志,在线日志和归档日志分别对应不同的文件解析规则,通过对同一类型的数据库中不同的日志操作文件进行分类,再设置对应的文件解析规则,由此可以提高数据同步效率。s103、根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件。具体地,文件解析规则用于根据数据库类型解析数据库产生的日志操作文件,因此需要先确定该源数据库的数据库类型对应的文件解析规则,再根据确定的解析规则解析日志操作文件,比如剔除一些没有用的信息,提取出包括sql语句的内容构成解析文件,该解析文件主要包括相应的sql语句。在一个实施例中,为了提高数据库的同步效率,还提供了一个文件解析的步骤,如图3所示,该文件解析的步骤具体包括:子步骤s103a至子步骤s103e。s103a、判断所述日志操作文件的文件大小是否大于预设阈值。具体地,获取所述日志操作文件的文件大小,比如日志操作文件的文件大小为2gb,而预设阈值具体为1gb,则可以判定日志操作文件的文件大小大于预设阈值。其中该预设阈值为根据源数据库的存储量以及日志操作文件的产出量而设定的值,比如源数据库的存储量较大,则将预设阈值设为较大一点的值,具体为1.5gb等,或者日志操作文件的产出量较大,则将预设阈值设为较小一点的值。此外,还可以根据源数据库的存储量以及日志操作文件的产出量调整预设阈值的大小,比如监控到日志操作文件的产出量较大,则相应地减小该预设阈值,进而使用该文件解析的步骤对日志操作文件进行解析,以提高数据同步效率。s103b、获取确定的文件解析规则对应的解析脚本,调用解析脚本对所述日志操作文件进行解析以得到解析文件。具体地,若所述日志操作文件的文件大小不大于预设阈值,获取确定的文件解析规则对应的解析脚本,该解析脚本包括确定的文件解析规则,利用该解析脚本对所述日志操作文件进行解析以得到解析文件。基于确定的文件解析规则通过解析脚本实现对日志操作文件的解析,可提高数据同步效率。s103c、将所述日志操作文件存储到内存数据库中。具体地,若所述日志操作文件的文件大小大于预设阈值,将所述日志操作文件存储到内存数据库中,其中内存数据库比如采用redis数据库,当然也可以采用其他内存数据库。s103d、从所述内存数据库中读取所述日志操作文件,解析所述日志操作文件中的数据操作以获取所述数据操作对应的操作类型和数据参数。其中,数据操作的操作类型包括删除操作、插入操作和更新操作等等,数据参数包括数据库中表名、表中的字段名以及字段名所对应的参数等等。从所述内存数据库中读取所述日志操作文件,以对所述日志操作文件进行解析。s103e、将所述数据参数映射到与所述操作类型对应的语句模板中以生成解析文件。其中,预先在内存数据库设置相应的语句模板,该语句模板与操作类型相对应。比如,该语句模板中包括三条sql语句,当然可能包括更多条sql语句,三条sql语句分别用于实现删除、插入和更新功能。在内存数据库启动过程中,自动对语句模板中所包括的三条sql语句进行编译和解析,再根据所述数据操作对应的操作类型将所述数据操作对应的数据参数映射对应的语句模板中生成sql语句,以构成解析文件。s104、获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件。因为不同类型的数据库使用的sql语句存在差异,因此需要获取目标数据库的数据库类型。比如,源数据库的数据库类型为mysql,而获取的目标数据库的数据库类型为oracle,需要知道两个不同数据库类型的sql语句的差异,才可以根据解析文件生成相应的sql语句。具体地,获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件包括:根据所述目标数据库的数据库类型和源数据库的数据库类型确定对应的sql语句规则;根据所述sql语句规则对所述解析文件进行处理生成sql语句以得到sql文件。譬如,源数据库为mysql类型,目标数据库为oracle类型,则两者对应的sql语句存在差异,因此需要确定对应的sql语句规则。比如,同是一个删除表的案例,mysql对应的删除表的语句为:droptableifexiststablename;oracle对应的删除表的语句为:oracle:droptabletablename。由此可以根据确定的sql语句规则对解析文件进行修改进而得到sql文件。再比如:oracle没有ifexists关键字,也没用类似ifexists的sql语法,因此只要删除相应的关键字即可。在一个实施例中,为了提高文件解析效率,如图4所示,所述根据所述目标数据库的数据库类型和所述解析文件生成sql文件的步骤,包括:s104a、根据所述目标数据库的数据库类型确定对应的预设修改脚本;s104b、调用所述预设修改脚本遍历所述解析文件对所述解析文件中的sql语句进行修改以生成sql文件。具体地,预设修改脚本包括根据所述目标数据库的数据库类型和源数据库的数据库类型确定对应的sql语句规则,通过调用预设修改脚本的方式,实现根据sql语句规则自动对所述解析文件中的sql语句进行修改以生成sql文件,进而提高了异步数据库的数据同步效率。在一个实施例中,所述根据所述目标数据库的数据库类型和所述解析文件生成sql文件,包括:根据所述目标数据库的数据库类型和所述解析文件构建抽象语法树,以及根据所述抽象语法树生成sql文件。具体地,先根据所述目标数据库的数据库类型确定需要转换的sql语句对应的语句类型,即目标sql语句,之后将解析文件中的sql文本转换为对应的抽象语法树(abstractsyntaxtree、ast);然后从sql文件的根节点开始依次遍历sql文件的各节点,并针对每个节点判断该节点是否需要翻译;若节点需要翻译,则根据需要转换的sql语句与目标sql语句的区别,进行相应的改写生成sql语句;若节点不需要翻译,则继续判断下一个节点是否需要翻译,直至遍历抽象语法树所有节点得到sql文件。s105、将所述sql文件上传至云服务器,以使所述云服务器将所述sql文件发送至所述目标数据库进行执行。具体地,服务器1将得到的sql文件上传至云服务器中进行存储,以便云服务器将所述sql文件发送至目标数据库以在目标数据库执行所述sql文件中的sql语句,进而完成数据库之间的数据同步。利用了云服务器存储可以保证数据不会丢失,同时可以设置云服务器在监控到目标数据库在空闲状态时,将将所述sql文件发送至目标数据库以在目标数据库上执行所述sql文件,由此在不影响源数据库和目标数据库的正常使用的情况下实现了数据库之间的数据同步,同时又提高了数据同步效率以及数据库的工作效率。在一个实施例中,所述将所述sql文件上传至云服务器,以使所述云服务器将所述sql文件发送至所述目标数据库进行执行,具体包括:将所述sql文件上传至云服务器进行保存并监测所述目标数据库是否处于空闲状态;若所述目标数据库处于空闲状态,发送数据同步指令至所述云服务器以使所述云服务器根据所述数据同步指令将所述sql文件发送至所述目标数据库进行执行。需要说明的是,所述空闲状态是指目标数据库处于相对较为空闲时对应的状态,具体可以cpu的使用率表示,比如,当数据库的cpu使用率为低于50%时对应的状态,表示为空闲状态,当然也可以为其他情况,即目标数据库不是在繁忙状态下均可称为空闲状态,繁忙状态比如定义为cpu使用率大于70%对应的状态。上述实施例的数据同步方法通过获取源数据库的日志操作文件以及对应的数据库类型;并确定所述源数据库的数据库类型对应的文件解析规则,用于对所述日志操作文件进行解析以得到解析文件;获取目标数据库的数据库类型,根据所述数据库类型和所述解析文件生成sql文件;将所述sql文件上传至云服务器以使所述云服务器在所述目标数据库处于空闲状态时将所述sql文件发送至所述目标数据库进行执行,进而完成源数据库和目标数据库之间的数据同步。该方法可以提高数据库之间的数据同步效率,同时又避免了影响数据库的正常使用。请参阅图5,图5是本申请的实施例提供的另一种数据同步方法的示意流程图。如图5所示,该数据同步方法具体包括步骤s201至s207。s201、取源数据库的日志操作文件以及所述源数据库对应的数据库类型。其中,该日志操作文件是对数据的任何一次操作而产生一条日志记录的集合,该操作包括插入数据、删除数据和更新数据等等等。产生的日志记录便于用户日后查看以及后续分析,比如用户做一次插入操作,日志操作文件都会多出一次插入操作的日志记录消息。其中,数据库类型包括pg、mysql、oracle、db2和sybase等类型,不同类型的数据库产生的日志操作文件的格式和内容均不相同,需要相应的解析规则对日志操作文件进行解析。s202、根据数据库类型与文件解析规则之间预设的对应关系,确定所述源数据库的数据库类型对应的文件解析规则。具体地,因为不同的源数据库的数据库类型不同,导致保存的日志操作文件格式也可能不同,因此需要预先设置好不同的数据库类型对应不同的文件解析规则,以便根据源数据库的数据库类型快速确定其对应的文件解析规则。s203、根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件。具体地,文件解析规则用于根据数据库类型解析数据库产生的日志操作文件,因此需要先确定该源数据库的数据库类型对应的文件解析规则,再根据确定的解析规则解析日志操作文件,比如剔除一些没有用的信息,保留相应的sql语句构成解析文件。s204、获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件。具体地,因为不同类型的数据库使用的sql语句存在差异,因此需要获取目标数据库的数据库类型,并基于所述目标数据库的数据库类型和所述解析文件生成sql文件。s205、获取所述目标数据库的数据库类型对应的预设验证规则,以及根据所述预设验证规则验证所述sql文件。具体地,获取所述目标数据库的数据库类型对应的预设验证规则,包括:调用sql服务工具根据目标数据库的数据库类型对应的sql语句规则执行该sql文件中sql语句,以完成对所述sql文件的验证。在本实施例中,对sql服务工具进行修改,使得sql服务工具只编译sql语句但不执行该sql语句,进而提高了验证效率。在一个实施例中,当然也可以将sql文件送至与目标数据库具有相同类型的预设数据库中执行该sql文件,并获取预设数据库执行所述sql文件的反馈结果,根据所述反馈结果分析sql文件是否包括错误信息,若反馈结果中未包括错误信息,判定所述sql文件验证通过。s206、在所述sql文件验证通过后,将所述sql文件上传至云服务器,以使所述云服务器将所述sql文件发送至所述目标数据库进行执行。具体地,将sql文件上传至云服务器中进行存储,以便云服务器将所述sql文件发送至目标数据库以在目标数据库执行所述sql文件中的sql语句,进而完成数据库之间的数据同步。s207、发送文件删除指令至所述源数据库以使所述源数据库根据所述文件删除指令删除所述日志操作文件。具体地,在将所述sql文件上传至云服务器进行存储之后,发送文件删除指令至所述源数据库以使所述源数据库根据所述文件删除指令删除所述日志操作文件,进而提高了源数据库的存储空间。上述实施例提供的数据同步方法通过获取源数据库的日志操作文件以及对应的数据库类型;并确定所述源数据库的数据库类型对应的文件解析规则,根据该文件解析规则对所述日志操作文件进行解析以得到解析文件;获取目标数据库的数据库类型,根据所述数据库类型和所述解析文件生成sql文件,并对sql文件进行验证;在sql文件验证通过后,将所述sql文件上传至云服务器以使所述云服务器在所述目标数据库处于空闲状态时将所述sql文件发送至所述目标数据库进行执行,进而完成源数据库和目标数据库之间的数据同步,同时删除源数据库中的日志操作文件,提高数据库的数据服务能力。该方法可以提高数据库之间的数据同步效率,同时又避免了影响数据库的正常使用。请参阅图6,图6是本申请的实施例提供一种数据同步装置的示意性框图,该数据同步装置用于执行前述的数据同步方法。其中,该数据同步装置可以配置于服务器中。如图6所示,该数据同步装置400,包括:文件获取单元401、规则确定单元402、文件解析单元403、文件生成单元404和文件上传单元405。文件获取单元401,用于获取源数据库的日志操作文件以及所述源数据库对应的数据库类型。规则确定单元402,用于根据数据库类型与文件解析规则之间预设的对应关系,确定所述源数据库的数据库类型对应的文件解析规则。文件解析单元403,用于根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件。在一个实施例中,文件解析单元403,具体包括:文件判断子单元4031、文件存储子单元4032、读取解析子单元4033和映射生成子单元4034。其中,文件判断子单元4031,用于判断所述日志操作文件的文件大小是否大于预设阈值;文件存储子单元4032,用于若所述日志操作文件的文件大小大于预设阈值,将所述日志操作文件存储到内存数据库中;读取解析子单元4033,用于从所述内存数据库中读取所述日志操作文件,解析所述日志操作文件中的数据操作以获取所述数据操作对应的操作类型和数据参数;映射生成子单元4034,用于将所述数据参数映射到与所述操作类型对应的语句模板中以生成解析文件。文件生成单元404,用于获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件。在一个实施例中,文件生成单元404,包括:脚本确定子单元4041和遍历生成子单元4042。其中,脚本确定子单元4041,用于根据所述目标数据库的数据库类型确定对应的预设修改脚本;遍历生成子单元4042,用于调用所述预设修改脚本遍历所述解析文件对所述解析文件中的sql语句进行修改以生成sql文件。文件上传单元405,用于将所述sql文件上传至云服务器以使所述云服务器将所述sql文件发送至所述目标数据库进行执行。请参阅图7,图7是本申请的实施例提供另一种数据同步装置的示意性框图,该数据同步装置用于执行前述的数据同步方法。其中,该数据同步装置可以配置于服务器中。如图7所示,该数据同步装置500,包括:文件获取单元501、规则确定单元502、文件解析单元503、文件生成单元504、获取验证单元506、文件上传单元506和文件上传单元507。文件获取单元501,用于取源数据库的日志操作文件以及所述源数据库对应的数据库类型。规则确定单元502,用于根据数据库类型与文件解析规则之间预设的对应关系,确定所述源数据库的数据库类型对应的文件解析规则。文件解析单元503,用于根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件。文件生成单元504,用于获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件。获取验证单元505,用于获取所述目标数据库的数据库类型对应的预设验证规则,以及根据所述预设验证规则验证所述sql文件。文件上传单元506,用于在所述sql文件验证通过后,将所述sql文件上传至云服务器,以使所述云服务器将所述sql文件发送至所述目标数据库进行执行。指令发送单元507,用于发送文件删除指令至所述源数据库以使所述源数据库根据所述文件删除指令删除所述日志操作文件。需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和各单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。上述的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图8所示的计算机设备上运行。请参阅图8,图8是本申请的实施例提供的一种计算机设备的结构示意性框图。该计算机设备可以是终端。参阅图8,该计算机设备包括通过系统总线连接的处理器、存储器和网络接口,其中,存储器可以包括非易失性存储介质和内存储器。非易失性存储介质可存储操作系统和计算机程序。该计算机程序包括程序指令,该程序指令被执行时,可使得处理器执行任意一种数据同步方法。处理器用于提供计算和控制能力,支撑整个计算机设备的运行。内存储器为非易失性存储介质中的计算机程序的运行提供环境,该计算机程序被处理器执行时,可使得处理器执行任意一种数据同步方法。该网络接口用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。应当理解的是,处理器可以是中央处理单元(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。其中,在一个实施例中,所述处理器用于运行存储在存储器中的计算机程序,以实现如下步骤:获取源数据库的日志操作文件以及所述源数据库对应的数据库类型;根据数据库类型与文件解析规则之间预设的对应关系,确定所述源数据库的数据库类型对应的文件解析规则;根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件;获取目标数据库的数据库类型,根据所述目标数据库的数据库类型和所述解析文件生成sql文件;将所述sql文件上传至云服务器,以使所述云服务器将所述sql文件发送至所述目标数据库进行执行。在一个实施例中,所述处理器在实现所述根据确定的文件解析规则对所述日志操作文件进行解析以得到解析文件时,用于实现:判断所述日志操作文件的文件大小是否大于预设阈值;若所述日志操作文件的文件大小大于预设阈值,将所述日志操作文件存储到内存数据库中;从所述内存数据库中读取所述日志操作文件,解析所述日志操作文件中的数据操作以获取所述数据操作对应的操作类型和数据参数;将所述数据参数映射到与所述操作类型对应的语句模板中以生成解析文件。在一个实施例中,所述处理器在实现所述根据所述目标数据库的数据库类型和所述解析文件生成sql文件时,用于实现:根据所述目标数据库的数据库类型确定对应的预设修改脚本;调用所述预设修改脚本遍历所述解析文件对所述解析文件中的sql语句进行修改以生成sql文件。在一个实施例中,所述处理器在实现所述根据所述目标数据库的数据库类型和所述解析文件生成sql文件时,用于实现:根据所述目标数据库的数据库类型和所述解析文件构建抽象语法树,以及根据所述抽象语法树生成sql文件。在一个实施例中,所述处理器在实现所述将所述sql文件上传至云服务器,以使所述云服务器将所述sql文件发送至所述目标数据库进行执行时,用于实现:将所述sql文件上传至云服务器进行保存并监测所述目标数据库是否处于空闲状态;若所述目标数据库处于空闲状态,发送数据同步指令至所述云服务器以使所述云服务器根据所述数据同步指令将所述sql文件发送至所述目标数据库进行执行。在一个实施例中,所述处理器在实现所述将所述sql文件上传至云服务器,以使所述云服务器将所述sql文件发送至所述目标数据库进行执行之前,还用于实现:获取所述目标数据库的数据库类型对应的预设验证规则,以及根据所述预设验证规则验证所述sql文件;在所述sql文件验证通过后,执行所述将所述sql文件上传至云服务器的步骤。在一个实施例中,所述处理器在实现所述将所述sql文件上传至云服务器之后,还用于实现:发送文件删除指令至所述源数据库以使所述源数据库根据所述文件删除指令删除所述日志操作文件。本申请的实施例中还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序中包括程序指令,所述处理器执行所述程序指令,实现本申请实施例提供的任一项数据同步方法。其中,所述计算机可读存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述计算机可读存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1