CN111444278A - 数据同步方法、装置及中转服务器 - Google Patents
数据同步方法、装置及中转服务器 Download PDFInfo
- Publication number
- CN111444278A CN111444278A CN202010252258.6A CN202010252258A CN111444278A CN 111444278 A CN111444278 A CN 111444278A CN 202010252258 A CN202010252258 A CN 202010252258A CN 111444278 A CN111444278 A CN 111444278A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- source
- statement
- transit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据同步方法、装置及中转服务器,涉及数据库技术领域。其中,中转服务器包括中转数据库,中转服务器获取源数据库的通信地址以及源数据库作为主数据库提供给从数据库的登录信息,基于通信地址和登录信息建立中转数据库和源数据库之间的连接,基于该连接访问源数据库的日志文件,并从源数据库的日志文件中识别数据库处理语句,在中转数据库中执行识别出的数据库处理语句,以对中转数据库中的数据进行更新。如此,可以提高源数据库和中转数据库的同步效率。
Description
技术领域
本申请涉及数据库技术领域,更具体地,涉及一种数据同步方法、装置及中转服务器。
背景技术
应用服务器通常需要从其他数据源获取所需数据。一些场景中,应用服务器和数据源分别处于无法直接进行数据交换的网络中,此时,应用服务器将无法从该数据源获得所需数据。
发明内容
鉴于上述问题,本申请提出了一种数据同步方法、装置及中转服务器,用以改善上述问题。
第一方面,本申请实施例提供了一种数据同步方法,应用于与源数据库通信连接的中转数据库,该方法包括:获取源数据库的通信地址以及该源数据库作为主数据库提供给从数据库的登录信息;基于通信地址和登录信息建立中转数据库和源数据库之间的连接;基于所述连接访问源数据库的日志文件,并从源数据库的日志文件中识别数据库处理语句;在中转数据库中执行识别出的数据库处理语句,以对中转数据库中的数据进行更新。
第二方面,本申请实施例提供了一种数据同步装置,应用于与源数据库通信连接的中转服务器,中转服务器包括中转数据库,该装置包括:获取模块、连接模块、访问模块和同步模块。获取模块用于获取源数据库的通信地址以及源数据库作为主数据库提供给从数据库的登录信息。连接模块用于基于该通信地址和登录信息建立中转数据库和源数据库之间的连接。访问模块用于基于所述连接访问源数据库的日志文件,并从源数据库的日志文件中识别数据库处理语句。同步模块用于在中转数据库中执行识别出的数据库处理语句,以对中转数据库中的数据进行更新。
第三方面,本申请实施例提供了一种中转服务器,包括:一个或等多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有程序代码,所述程序代码可被处理器调用执行上述的方法。
相对于现有技术,本申请提供的方案,中转服务器获取源数据库的通信地址以及源数据库作为主数据库提供给从数据库的登录信息,基于通信地址和登录信息建立中转数据库与源数据库之间的连接,基于该连接访问源数据库的日志文件,从源数据库的日志文件中识别数据库处理语句,并在中转数据库中执行识别出的数据库处理语句,以对中转数据库中的数据进行更新。如此,一方面利用主从数据库机制维持了中转数据库与源数据库之间的连接,两者在发送数据后可以不必等待回执;另一方面,基于源数据库的日志文件中的数据库处理语句来实现中转数据库与源数据库的同步,相较于直接传输数据库数据的方式,减少了需要传输的数据,提高了同步效率。
本申请的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一些场景中的中转服务器与源数据库的交互示意图。
图2示出了一种适用于本申请实施例的应用环境示意图。
图3示出了根据本申请一个实施例的数据同步方法的流程示意图。
图4示出了根据本申请另一个实施例的数据同步方法的流程示意图。
图5示出了根据图4所示步骤S250的子步骤示意图。
图6示出了图4所示实施例中的数据同步方法的另一流程示意图。
图7示出了图4所示实施例中的数据同步方法的又一流程示意图。
图8示出了图4所示实施例中的数据同步方法的又一流程示意图。
图9示出了图4所示实施例中的数据同步方法的再一流程示意图。
图10示出了根据申请实施例的一种数据同步装置的框图。
图11是本申请实施例的用于执行根据本申请实施例的数据同步方法的中转服务器的框图。
图12是本申请实施例的用于保存或者携带实现根据本申请实施例的数据同步方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
一些场景中,应用服务器需要从源数据库获取数据,以实现相应的服务。但是,由于数据的特殊性,或者是部署应用服务器或源数据库的网络环境存在网络延迟等原因,应用服务器与源数据库之间可能出现无法相互直接访问的情况,即应用服务器与源数据库无法直接进行数据交换。此时,应用服务器将无法向用户提供前述服务。
请参照图1,一些实施方式中,可以在应用服务器和源数据库都能够直接访问的网络环境中部署一中转服务器901,并在该中转服务器901与源数据库902之间设置一同步模块903。中转服务器901用于获取应用服务器发送的第一数据,同步模块903用于定期轮询中转服务器901,获取中转服务器901中的第一数据并将该第一数据发送给源数据库902,并在接收到源数据库902的确认响应时,确定第一数据同步成功,在特定时长没有收到回执时,重新向源数据库902发送第一数据。
同步模块903还用于定期轮询源数据库902,获取源数据库902中的待同步的第二数据并将该第二数据发送给中转服务器901,并在接收到中转服务器901的回执时,确定第二数据同步成功,若特定时长没有接收到中转服务器901的确认响应,则重新向中转服务器901发送第二数据。中转服务器901获得第二数据后,再将第二数据发送给应用服务器。
但是,上述实施方式中,一方面,通过中转服务器和同步模块直接传输数据库数据,数据量较大,同步效率低。另一方面,由于中转服务器与源数据库之间的没有建立稳定可靠的通信连接,导致每次传输数据后都需要数据接收方返回相应的确认响应进行确认,然后才可以进行下一次数据传输,进一步降低了数据同步的效率。
经过发明人长期的研究,本申请实施例提出了一种数据同步方法、装置及中转服务器,可以有效提高中转服务器和源数据库之间的数据同步效率。下面将对该内容进行详细阐述。
请参照图2,图2为本申请实施例提供的应用环境示意图。其中,中转服务器100通过网络与源数据库200和应用服务器300通信连接,源数据库200与应用服务器300相互之间无法直接访问,换言之,源数据库200与应用服务器300无法直接进行数据交换。应用服务器300可以为部署有特定服务端程序的服务器,该服务端程序在向客户端提供服务的过程中,需要使用源数据库200中的数据。
中转服务器100中可以部署有中转数据库101,并存储有源数据库200的备份数据。可以理解,所述备份数据是在某一特定时刻从源数据库200中复制并获得的数据,在得到该备份数据之后,源数据库200中的数据会随着数据库语句在源数据库200中被执行而发生变化。
请参照图3,图3为本申请一实施例提供的一种数据同步方法的流程示意图,该方法可以应用于图2所示的中转服务器100。下面将对该方法包括的步骤进行阐述。
步骤S110,获取源数据库的通信地址以及所述源数据库作为主数据库提供给从数据库的登录信息。
本实施例中,源数据库200的通信地址例如可以是源数据库200的IP(InternetProtocol,IP)地址,用于供中转数据库访问。为了建立源数据库200与中转数据库101之间的稳定连接,可以预先将源数据库配置为一主数据库,并在作为主数据库的源数据库200中配置从数据库的通信地址,并为该从数据库配置登录信息。其中,所述登录信息例如可以包括相互对应的登录帐号和登录密码。
示例性地,可以在源数据库200中配置源数据库200作为主数据库的标识信息,如server_id=1,并可以通过如下指令配置从数据库的通信地址及为从数据库配置登录信息:
mysql>grant replicant slave on*.*to‘xxx’@’%’identified by‘yyy’。
其中,“*.*”为从数据库的通信地址,本实施例中,例如可以为中转数据库101的IP地址。“xxx”是登录帐号,“yyy”是登录密码。上述指令表示为通信地址是“*.*”的从数据库配置登录帐号“xxx”和登录密码“yyy”。
在进行上述配置后可以刷新源数据库200的权限信息,例如可以通过指令mysql>flush privileges来刷新源数据库200的权限,从而使得上述为从数据库配置的登录信息生效。如此,配置的该从数据库可以通过该登录信息和该通信地址登录到源数据库200,并可以对源数据库200中的数据进行访问。
对于源数据库200中配置的所述通信地址和所述登录信息,中转数据库101可以通过多种方式获得。一种可选的实施方式中,中转服务器100可以直接从源数据库200的特定位置获取所述通信地址和登录信息。另一种可选的实施方式中,中转服务器100可以接收输入的所述通信地址和所述登录信息。
步骤S120,基于所述通信地址和所述登录信息建立所述中转数据库和所述源数据库之间的连接。
在获得所述通信地址和所述登录信息之后,中转服务器100可以生成并发送一登录请求,所述登录请求的源地址为中转数据库101的通信地址,目的地址为所述源数据库200的所述通信地址,并且,所述登录请求携带了所述登录信息。
所述登录请求将会被源数据库200接收到,由于源数据库200已经配置了所述通信地址和所述登录信息,所述登录请求可以通过源数据库200的登录验证。源数据库200在确定所述登录请求通过登录验证时,可以建立与所述中转数据库101之间的连接。
本实施例中,利用主从数据库的通信机制,建立了源数据库200与中转数据库101之间的稳定连接,缓解了每次数据传输都需要等待数据接收方的确认响应所带来的同步效率低下的问题。
步骤S130,基于所述连接访问所述源数据库的日志文件,并从所述源数据库的日志文件中识别数据库处理语句。
主数据库还可以配置有可供其配置的从数据库访问的文件,本实施例中,作为主数据库的源数据库200可以将日志文件配置成作为从数据库的中转数据库101的可访问文件。例如,可以通过如下指令进行配置:log-bin=xxxx,其中“xxxx”为所述日志文件的名称,例如可以为“mysql-bin”。
对应地,中转服务器100可以获取并记录源数据库200中配置的所述日志文件的标识信息,例如,可以记录为master_log_file=xxxx。并且,在基于源数据库200和中转数据库101之间的所述连接成功访问源数据库200之后,中转服务器100中的中转数据库101可以依据所述标识信息找到所述日志文件,并读取所述日志文件的内容。
步骤S140,在所述中转数据库中执行识别出的数据库处理语句,以对所述中转数据库中的数据进行更新。
本实施例中,源数据库200的日志文件可以为一二进制文件,其中按照先后顺序记录了在源数据库200中执行的所有数据库语句。其中,所述数据库语句中的数据库处理语句的执行,会改变源数据库200的数据,因此,在中转数据库101中也对应执行一遍源数据库200的日志文件中的数据库处理语句,可以将中转数据库101中的数据更新至与源数据库200中的数据同步。
可选地,本实施例中,中转服务器100可以在建立中转数据库101与源数据库200之间的连接之后,在中转数据库100中开启Slave_IO_Running(从数据库输入输出)进程和Slave_SQL_Running(从数据库数据库语句处理)进程,其中,步骤S130可以通过Slave_IO_Running进程实现,步骤S140可以通过Slave_SQL_Running进程实现。
通过图3所示流程,基于主从数据库通信机制建立了源数据库和中转数据库之间的稳定连接,缓解了每次数据传输后都需要等待确认响应所造成的同步效率低的问题。并且,中转服务器可以基于中转数据库与源数据库之间的稳定连接,访问源数据库的日志文件,进而依据日志文件中的数据库处理语句更新数据,在此过程中,只需要传输日志文件中的数据库处理语句,而不必直接传输数据库数据,减少了需要传输的数据量,进一步提高了数据同步效率。
进一步地,基于上述数据同步方法,中转数据库可以成为源数据库的中转数据源。应用服务器300可以直接从中转数据库获得提供服务所需的数据。
请参照图4,图4为本申请另一实施例提供的数据同步方法的流程示意图,该方法可以应用于图2所示的中转服务器100。下面对该方法包括的步骤进行阐述。
步骤S210,获取源数据库的第一通信地址以及所述源数据库作为主数据库提供给从数据库的第一登录信息。
步骤S220,基于所述通信地址和所述第一登录信息建立所述中转数据库和所述源数据库之间的第一连接。
本实施例中,步骤S210-步骤S220的详细实现流程与步骤S110-步骤S120类似,可以参照前文的详细描述,在此不再赘述。值得说明的是,第一通信地址是指源数据库200的通信地址。第一登录信息,是指源数据库200作为主数据库为其从数据库配置的登录信息。第一连接,是指中转数据库101基于源数据库200的通信地址和第一登录信息建立的连接。
步骤S230,获取所述源数据库的日志文件的起始访问位置。
本实施例中,源数据库200的日志文件数据量较大,包含了源数据库200以往的数据库语句执行记录。但是,中转数据库101包含的初始数据是基于源数据库200在特定时刻的数据备份得到的,因此,源数据库200的日志文件中,记录时间在该特定时刻之前的所有数据库语句都可以不必进行识别。
对应地,中转服务器100可以确定该特定时刻,并从源数据库200中确定该特定时刻对应的位置信息。一个例子中,日志文件中的每个数据库语句都可以具有事务号信息,事务号信息的值可以随着日志文件中数据库语句的增加而递增。所述位置信息可以是日志文件中数据库语句的事务号信息,中转服务器100可以确定所述特定时刻对应的事务号信息,并将具有该事务号信息的数据库语句所在的位置,确定为所述起始访问位置。
另一个例子中,可以直接用特定时刻对应的数据库语句在日志文件中的行数表示所述起始访问位置,比如,可以表示为master_log_pos=196,即,起始访问位置是源数据库200的日志文件的第196行。
步骤S240,基于所述第一连接访问所述源数据库的日志文件。
本实施例中,步骤S240的详细实现流程与步骤S130类似,具体可以参照前文的相关描述,在此不再赘述。
步骤S250,从所述源数据库的日志文件的所述起始访问位置开始,依次识别每个语句是否为数据库处理语句。
其中,在获取到源数据库200的日志文件的起始访问位置,并通过建立的所述第一连接成功访问源数据库200的日志文件之后,可以从源数据库200的日志文件中查找位于所述起始访问位置的语句,并可以将位于所述起始访问位置的语句确定为首个待识别的语句,或者可以将位于所述起始访问位置的语句的下一个语句,作为首个待识别的语句。
值得说明的是,步骤S250中的语句是指源数据库200的日志文件中的数据库语句。示例性地,如果源数据库200是MySQL数据库,则源数据库200的日志文件中的语句可以是SQL语句。
详细地,步骤S250中依次识别每个语句是否为数据库处理语句的步骤,可以通过图5所示流程实现,详细描述如下。
步骤S251,依次识别每个语句是否为数据库操作语句或数据库定义语句。若是,则执行步骤S252;若否,则可以执行步骤S253。
步骤S252,确定该语句为数据库处理语句。
步骤S253,识别下一个语句。
本实施例中,数据库操作语句是指采用DML(Data Manipulation Language,DML)的语句,DML是用于对数据库里的数据进行操作的语言,DML语句主要用于对数据库里的数据执行增、删、改、查等操作。数据库定义语句是指采用DDL(Data Definition Language,DDL)的语句,DDL是用于定义或改变数据表(TABLE)的结构、数据类型的语言,DDL语句主要用于执行定义或改变数据表间链接关系和约束关系等的操作。
DML语句和DDL语句的执行均会改变数据库中的数据,因此,本实施例中,如果当前识别的数据库语句是DDL语句或DML语句时,可以确定该数据库语句是数据库处理语句。如果当前识别的数据库语句既不是DDL语句,也不是DML语句,则可以读取事务号信息在当前识别的数据库语句之后的下一个数据库语句,并按照图5所示流程对所述下一个数据库语句进行识别。
步骤S260,在所述中转数据库中执行识别出的数据库处理语句,以对所述中转数据库中的数据进行更新。
步骤S260的详细实现流程与上述的步骤S1140类似,在此不再赘述。
通过本实施例提供的数据同步方法,可以在中转数据库与源数据库之间建立稳定的连接,使得中转数据库可以基于该稳定的连接访问源数据库的日志文件,识别并读取日志文件中的数据库处理语句,缓解了因等待确认响应而导致的同步效率低下的问题,此外,中转数据库基于读取的数据库处理语句更新数据,进一步避免了直接传输数据库数据所导致的同步效率低的问题。
可选地,本实施例中,为了实现中转数据库101和源数据库200的数据同步,中转数据库101基于所述第一连接从源数据库200访问日志文件,并识别日志文件中的数据库处理语句是一个持续的过程,因此,中转服务器100可以对所述起始访问位置进行动态更新,以避免在中转数据库101中重复地执行已经执行过的数据库处理语句。对应地,在执行步骤S260之后,本实施例提供的数据同步方法还可以包括图6所示流程,详细描述如下。
步骤S270,获取当前执行的数据库处理语句的位置信息。
步骤S280,将所述起始访问位置更新为所述当前执行的数据库处理语句的位置信息。
示例性地,以位置信息是日志文件中语句的事务号信息为例,可以在中转数据库101中执行一个数据库处理语句后,将该数据库处理语句确定为当前执行的数据库处理语句,并获取所述当前执行的数据库处理语句的事务号信息,并将存储的起始访问位置更新为所述当前执行的数据库处理语句的事务号信息。如此,下一次访问日志文件时,可以依据更新后的起始访问位置确定首个待识别的数据库语句。
进一步地,通过本实施例提供的数据同步方法,中转数据库101可以作为源数据库200的中转数据源,供应用服务器300访问。基于此,本实施例提供的数据同步方法还可以包括图7所示流程。
步骤S290,当接收到目标应用服务器针对源数据库发送的数据访问请求时,从中转数据库中查找与所述数据访问请求对应的目标数据。
步骤S2100,将所述目标数据发送给所述目标应用服务器。
其中,数据访问请求是指用于查询数据的请求。
一些场景中,可能只有部分应用服务器与源数据库200无法直接访问,换言之,只有这部分应用服务器发送的请求是需要进行中转的。在此情况下,中转服务器100可以配置有目标通信地址,所述目标通信地址是这部分需要进行中转的应用服务器的通信地址(如,IP地址),对应地,具有所述目标通信地址的应用服务器即为所述目标应用服务器。
实施过程中,当中转服务器100接收到任意一个应用服务器发送的请求时,如果确定该请求为数据访问请求,且该请求的源地址是所述目标通信地址,则可以确定该请求是目标应用服务器发送的数据访问请求,从而基于该数据访问请求直接从中转数据库101查找对应的数据作为目标数据,并将目标数据发送给数据访问请求的源地址,即所述目标应用服务器的通信地址。
如果确定该请求的源地址不是所述目标通信地址,则可以直接转发该请求,即,向该请求的目的地址发送该请求。
可选地,在一些场景中,应用服务器300可能需要向源数据库200写入数据。在此情况下,本实施例提供的数据同步方法还可以包括图8所示的流程,详细描述如下。
步骤S2110,当接收到目标应用服务器针对所述源数据库发送的数据处理请求时,对所述中转数据库中的数据执行所述数据操作请求对应的目标处理语句。
其中,目标应用服务器是指具有中转服务器100中配置的目标通信地址的应用服务器,其发送的请求需要通过中转服务器100进行中转。数据操作请求是指携带有数据库处理语句的请求,所述数据库处理语句在一个数据库中被执行时,会改变该数据库的数据。
实施过程中,中转服务器100在接收到任意一个应用服务器发送的请求时,如果确定该请求携带有数据库处理语句,且该请求的源地址是目标通信地址,则可以确定该请求是目标应用服务器发送的数据处理请求,并可以将该数据处理请求携带的数据处理语句确定为所述目标处理语句。
在确定目标处理语句后,可以直接在中转数据库101中执行目标处理语句,并向目标应用服务器返回与所述数据处理请求对应的数据处理响应,以通知目标应用服务器该数据处理请求已处理完成。如此,可以在目标应用服务器没有感知的情况下在中转数据库中完成数据处理。
步骤S2120,在所述中转数据库的日志文件中写入所述目标处理语句对应的日志记录。
在中转数据库101中执行目标处理语句后,中转服务器100可以为目标处理语句生成事务号信息,并将该事务号信息和目标处理语句作为与目标处理语句对应的日志记录,并将该日志记录写入中转数据库101的日志文件中,从而为源数据库200与中转数据库101的数据同步提供了依据。
本实施例中,目标应用服务器写入的数据可能是其他应用服务器需要使用的数据,而所述其他应用服务器可能直接从源数据库200读取数据,因而,可以将中转数据库101的数据同步至源数据库200。对应地,本实施例提供的数据同步方法还可以包括图9所示的步骤,详细描述如下。
步骤S2130,获取中转数据库的第二通信地址以及所述中转数据库作为主数据库提供给从数据库的第二登录信息。
本实施例中,中转服务器100可以将中转数据库101配置为主数据库,并为作为主数据库的中转数据库101配置从数据库的通信地址,及该从数据库的登录信息。其中,第二通信地址是指中转数据库的通信地址。第二登录信息,是指作为主数据库的中转数据库101为其从数据库提供的登录信息。
步骤S2140,向源数据库发送所述第二通信地址和所述第二登录信息,使所述源数据库基于所述第二登录信息建立与所述中转数据库的第二连接,并通过所述第二连接读取所述中转数据库的日志文件中的目标处理语句,并执行所述目标处理语句。
源数据库200接收到所述第二通信地址和所述第二登录信息之后,可以生成并发送一登录请求,该登录请求的源地址为第一通信地址、目的地址为第二通信地址,并携带有第二登录信息。该登录请求将被发送至中转数据库101,由于中转数据库101配置了第二通信地址和第二登录信息,该登录请求可以通过中转数据库101的登录验证,如此,源数据库200可以与中转数据库101建立第二连接,并可以基于第二连接访问中转数据库101的日志文件,并在本数据库(即,源数据库200)中执行从中转数据库101的日志文件中识别出的数据库处理语句。
如此,上述的目标处理语句也将被执行,从而可以将目标处理语句对应的增量数据更新至源数据库200中。
值得说明的是,作为从数据库的源数据库200和作为主数据库的中转数据库101之间的第二连接的建立过程,与作为从数据库的中转数据库101和作为主数据库的源数据库200之间的第一连接的建立过程类似。对应地,中转数据库101基于第一连接访问源数据库200的日志文件的过程,与源数据库200基于第二连接访问中转数据库101的日志文件的过程类似。具体可以参照上文的相关描述。
通过本实施例提供的数据同步方法,源数据库和中转数据库互为对方的主从数据库,从而实现了双向的数据同步,既提升了源数据库向中转数据库同步数据的效率,又提升了中转数据库向源数据库同步数据的效率。
请参照图10,图10为本申请实施例提供的一种数据同步装置的框图。该装置1000可以应用于图2所示的中转服务器100,该装置1000从功能上划分,可以包括获取模块1010、连接模块1020、访问模块1030以及同步模块1040。
其中,获取模块1010用于获取所述源数据库的通信地址以及所述源数据库作为主数据库提供给从数据库的登录信息。
连接模块1020用于基于所述通信地址和所述登录信息建立所述中转数据库和所述源数据库之间的连接。
访问模块1030用于基于所述连接访问所述源数据库的日志文件,并从所述源数据库的日志文件中识别数据库处理语句。
同步模块1040用于在所述中转数据库中执行识别出的数据库处理语句,以对所述中转数据库中的数据进行更新。
可选地,数据同步装置1000还可以包括中转模块。所述中转模块可以用于:当接收到目标应用服务器针对所述源数据库发送的数据访问请求时,从所述中转数据库中查找与所述数据访问请求对应的目标数据;将所述目标数据发送给所述目标应用服务器。
所述中转模块还可以用于:当接收到目标应用服务器针对所述源数据库发送的数据处理请求时,对所述中转数据库中的数据执行所述数据操作请求对应的目标处理语句;在所述中转数据库的日志文件中写入所述目标处理语句对应的日志记录。
可选地,本申请实施例中,所述通信地址可以为第一通信地址,所述登录信息可以为第一登录信息,所述连接可以为第一连接,所述日志记录可以包括所述目标处理语句。在此情况下,所述连接模块还可以用于:获取所述中转数据库的第二通信地址以及所述中转数据库作为主数据库提供给从数据库的第二登录信息;向所述源数据库发送所述第二通信地址和所述第二登录信息,使所述源数据库基于所述第二通信地址和所述第二登录信息建立与所述中转数据库的第二连接,并通过所述第二连接读取所述中转数据库的日志文件中的所述目标处理语句,并执行所述目标处理语句。
可选地,本申请实施例中,所述目标应用服务器和所述源数据库无法进行数据交换。
可选地,所述获取模块1010还可以用于:在所述访问模块1030基于所述连接访问所述源数据库的日志文件之前,获取所述源数据库的日志文件的起始访问位置。对应地,所述访问模块1030从所述源数据库的日志文件中识别数据库处理语句的方式可以为:从所述源数据库的日志文件的所述起始访问位置开始,依次识别每个语句是否为数据库处理语句。
可选地,所述装置1000还可以包括更新模块。所述更新模块可以用于:当所述访问模块130在所述中转数据库中执行识别出的数据库处理语句之后,获取当前执行的数据库处理语句的位置信息;将所述起始访问位置更新为所述当前执行的数据库处理语句的位置信息。
可选地,本申请实施例中,所述访问模块1030可以通过如下方式依次识别每个语句是否为数据处理语句:依次识别每个语句是否为数据库操作语句或数据库定义语句;若是,则确定该语句为数据库处理语句。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参考图11,其示出了本申请实施例提供的一种中转服务器的结构框图。该中转服务器100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的中转服务器100可以包括一个或多个如下部件:处理器110、存储器120、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个中转服务器100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行中转服务器100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储中转服务器100在使用中所创建的数据(比如日志文件、中转数据库中的数据)等。
可以理解,图11所示结构仅为示意,中转服务器100还可以具有比图11所示更多或更少的组件,或是具有与图11所示完全不同的配置。此外,应用服务器的结构可以与中转服务器100类似,在此不再赘述。
请参考图12,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质1200中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质1200可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质1200包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1200具有执行上述方法中的任何方法步骤的程序代码1210的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1210可以例如以适当形式进行压缩。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种数据同步方法,其特征在于,应用于与源数据库通信连接的中转服务器,所述中转服务器包括中转数据库,所述方法包括:
获取所述源数据库的通信地址以及所述源数据库作为主数据库提供给从数据库的登录信息;
基于所述通信地址和所述登录信息建立所述中转数据库和所述源数据库之间的连接;
基于所述连接访问所述源数据库的日志文件,并从所述源数据库的日志文件中识别数据库处理语句;
在所述中转数据库中执行识别出的数据库处理语句,以对所述中转数据库中的数据进行更新。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到目标应用服务器针对所述源数据库发送的数据访问请求时,从所述中转数据库中查找与所述数据访问请求对应的目标数据;
将所述目标数据发送给所述目标应用服务器。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当接收到目标应用服务器针对所述源数据库发送的数据处理请求时,对所述中转数据库中的数据执行所述数据操作请求对应的目标处理语句;
在所述中转数据库的日志文件中写入所述目标处理语句对应的日志记录。
4.根据权利要求3所述的方法,其特征在于,所述通信地址为第一通信地址,所述登录信息为第一登录信息,所述连接为第一连接,所述日志记录包括所述目标处理语句,所述方法还包括:
获取所述中转数据库的第二通信地址以及所述中转数据库作为主数据库提供给从数据库的第二登录信息;
向所述源数据库发送所述第二通信地址和所述第二登录信息,使所述源数据库基于所述第二通信地址和所述第二登录信息建立与所述中转数据库的第二连接,并通过所述第二连接读取所述中转数据库的日志文件中的所述目标处理语句,并执行所述目标处理语句。
5.根据权利要求2-4中任意一项所述的方法,其特征在于,所述目标应用服务器和所述源数据库无法进行数据交换。
6.根据权利要求1-4中任意一项所述的方法,其特征在于,在所述基于所述连接访问所述源数据库的日志文件之前,所述方法还包括:
获取所述源数据库的日志文件的起始访问位置;
所述从所述源数据库的日志文件中识别数据库处理语句,包括:
从所述源数据库的日志文件的所述起始访问位置开始,依次识别每个语句是否为数据库处理语句。
7.根据权利要求6所述的方法,其特征在于,所述在所述中转数据库中执行识别出的数据库处理语句之后,所述方法还包括:
获取当前执行的数据库处理语句的位置信息;
将所述起始访问位置更新为所述当前执行的数据库处理语句的位置信息。
8.根据权利要求6所述的方法,其特征在于,所述依次识别每个语句是否为数据库处理语句,包括:
依次识别每个语句是否为数据库操作语句或数据库定义语句;
若是,则确定该语句为数据库处理语句。
9.一种数据同步装置,其特征在于,应用于与源数据库通信连接的中转服务器,所述中转服务器包括中转数据库,所述装置包括:
获取模块,用于获取所述源数据库的通信地址以及所述源数据库作为主数据库提供给从数据库的登录信息;
连接模块,用于基于所述通信地址和所述登录信息建立所述中转数据库和所述源数据库之间的连接;
访问模块,用于基于所述连接访问所述源数据库的日志文件,并从所述源数据库的日志文件中识别数据库处理语句;
同步模块,用于在所述中转数据库中执行识别出的数据库处理语句,以对所述中转数据库中的数据进行更新。
10.一种中转服务器,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-8中任意一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-8中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010252258.6A CN111444278B (zh) | 2020-04-01 | 2020-04-01 | 数据同步方法、装置及中转服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010252258.6A CN111444278B (zh) | 2020-04-01 | 2020-04-01 | 数据同步方法、装置及中转服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111444278A true CN111444278A (zh) | 2020-07-24 |
CN111444278B CN111444278B (zh) | 2023-08-29 |
Family
ID=71649557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010252258.6A Active CN111444278B (zh) | 2020-04-01 | 2020-04-01 | 数据同步方法、装置及中转服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444278B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965955A (zh) * | 2021-03-17 | 2021-06-15 | 北京奇艺世纪科技有限公司 | 数据迁移方法、装置、计算机设备和存储介质 |
CN113127447A (zh) * | 2021-04-22 | 2021-07-16 | 山东福生佳信科技股份有限公司 | 用于应用系统转换的数据同步装置及方法 |
CN113268507A (zh) * | 2021-05-26 | 2021-08-17 | 大箴(杭州)科技有限公司 | 数据库的数据读取系统及方法、装置、电子设备 |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172070A1 (en) * | 2002-03-06 | 2003-09-11 | Sawadsky Nicholas Justin | Synchronous peer-to-peer multipoint database synchronization |
US20050198085A1 (en) * | 2003-10-10 | 2005-09-08 | Accenture Global Services Gmbh | Tool for synchronization of business information |
CN101187888A (zh) * | 2007-12-11 | 2008-05-28 | 浪潮电子信息产业股份有限公司 | 一种异构环境中复制数据库数据的方法 |
CN103078881A (zh) * | 2011-10-26 | 2013-05-01 | 腾讯科技(深圳)有限公司 | 网络资源下载信息的分享控制系统和方法 |
WO2013150543A2 (en) * | 2012-04-02 | 2013-10-10 | Ciphergraph Networks, Inc. | Precomputed high-performance rule engine for very fast processing from complex access rules |
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
CN103761318A (zh) * | 2014-01-27 | 2014-04-30 | 中国工商银行股份有限公司 | 一种关系型异构数据库数据同步的方法及系统 |
US20150039677A1 (en) * | 2013-08-01 | 2015-02-05 | Bitglass, Inc. | Secure application access system |
CN104809202A (zh) * | 2015-04-24 | 2015-07-29 | 联动优势科技有限公司 | 一种数据库同步的方法和装置 |
US20150288661A1 (en) * | 2014-04-07 | 2015-10-08 | Google Inc. | Relay proxy providing secure connectivity in a controlled network environment |
US20160232372A1 (en) * | 2015-02-05 | 2016-08-11 | Alibaba Group Holidng Limited | System, method and database proxy server for separating operations of read and write |
CN106941527A (zh) * | 2017-03-15 | 2017-07-11 | 网宿科技股份有限公司 | 一种数据传输中转方法及其系统 |
CN107079057A (zh) * | 2016-12-14 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 数据传输方法、装置、系统、电子设备及计算机程序产品 |
CN109101627A (zh) * | 2018-08-14 | 2018-12-28 | 交通银行股份有限公司 | 异构数据库同步方法及装置 |
CN109271448A (zh) * | 2018-09-25 | 2019-01-25 | 武汉达梦数据库有限公司 | 基于数据库为平台的数据同步系统及方法 |
CN109656934A (zh) * | 2018-11-19 | 2019-04-19 | 武汉达梦数据库有限公司 | 基于日志解析的源端Oracle数据库DDL同步方法及设备 |
CN109992595A (zh) * | 2019-04-11 | 2019-07-09 | 北京启迪区块链科技发展有限公司 | 异构数据库转换方法、装置、设备和存储介质 |
CN110532275A (zh) * | 2019-08-09 | 2019-12-03 | 国云科技股份有限公司 | 一种跨域数据和文件更新同步的实现方法 |
CN110602165A (zh) * | 2019-08-08 | 2019-12-20 | 数字广东网络建设有限公司 | 政务数据同步方法、装置、系统、计算机设备和存储介质 |
-
2020
- 2020-04-01 CN CN202010252258.6A patent/CN111444278B/zh active Active
Patent Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030172070A1 (en) * | 2002-03-06 | 2003-09-11 | Sawadsky Nicholas Justin | Synchronous peer-to-peer multipoint database synchronization |
US20050198085A1 (en) * | 2003-10-10 | 2005-09-08 | Accenture Global Services Gmbh | Tool for synchronization of business information |
CN101187888A (zh) * | 2007-12-11 | 2008-05-28 | 浪潮电子信息产业股份有限公司 | 一种异构环境中复制数据库数据的方法 |
CN103078881A (zh) * | 2011-10-26 | 2013-05-01 | 腾讯科技(深圳)有限公司 | 网络资源下载信息的分享控制系统和方法 |
WO2013150543A2 (en) * | 2012-04-02 | 2013-10-10 | Ciphergraph Networks, Inc. | Precomputed high-performance rule engine for very fast processing from complex access rules |
US20150039677A1 (en) * | 2013-08-01 | 2015-02-05 | Bitglass, Inc. | Secure application access system |
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
CN103761318A (zh) * | 2014-01-27 | 2014-04-30 | 中国工商银行股份有限公司 | 一种关系型异构数据库数据同步的方法及系统 |
US20150288661A1 (en) * | 2014-04-07 | 2015-10-08 | Google Inc. | Relay proxy providing secure connectivity in a controlled network environment |
US20160232372A1 (en) * | 2015-02-05 | 2016-08-11 | Alibaba Group Holidng Limited | System, method and database proxy server for separating operations of read and write |
CN104809202A (zh) * | 2015-04-24 | 2015-07-29 | 联动优势科技有限公司 | 一种数据库同步的方法和装置 |
CN107079057A (zh) * | 2016-12-14 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 数据传输方法、装置、系统、电子设备及计算机程序产品 |
CN106941527A (zh) * | 2017-03-15 | 2017-07-11 | 网宿科技股份有限公司 | 一种数据传输中转方法及其系统 |
CN109101627A (zh) * | 2018-08-14 | 2018-12-28 | 交通银行股份有限公司 | 异构数据库同步方法及装置 |
CN109271448A (zh) * | 2018-09-25 | 2019-01-25 | 武汉达梦数据库有限公司 | 基于数据库为平台的数据同步系统及方法 |
CN109656934A (zh) * | 2018-11-19 | 2019-04-19 | 武汉达梦数据库有限公司 | 基于日志解析的源端Oracle数据库DDL同步方法及设备 |
CN109992595A (zh) * | 2019-04-11 | 2019-07-09 | 北京启迪区块链科技发展有限公司 | 异构数据库转换方法、装置、设备和存储介质 |
CN110602165A (zh) * | 2019-08-08 | 2019-12-20 | 数字广东网络建设有限公司 | 政务数据同步方法、装置、系统、计算机设备和存储介质 |
CN110532275A (zh) * | 2019-08-09 | 2019-12-03 | 国云科技股份有限公司 | 一种跨域数据和文件更新同步的实现方法 |
Non-Patent Citations (2)
Title |
---|
DANIELA REMENSKA: "Using Model Checking to Analyze the System Behavior of the LHC Production Grid", 《2012 12TH IEEE/ACM INTERNATIONAL SYMPOSIUM ON CLUSTER, CLOUD AND GRID COMPUTING (CCGRID 2012)》 * |
孟智慧;武志云;姜涌;: "远程协同产品开发系统中分布式数据库的研究", no. 03 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112965955A (zh) * | 2021-03-17 | 2021-06-15 | 北京奇艺世纪科技有限公司 | 数据迁移方法、装置、计算机设备和存储介质 |
CN112965955B (zh) * | 2021-03-17 | 2024-01-12 | 北京奇艺世纪科技有限公司 | 数据迁移方法、装置、计算机设备和存储介质 |
CN113127447A (zh) * | 2021-04-22 | 2021-07-16 | 山东福生佳信科技股份有限公司 | 用于应用系统转换的数据同步装置及方法 |
CN113268507A (zh) * | 2021-05-26 | 2021-08-17 | 大箴(杭州)科技有限公司 | 数据库的数据读取系统及方法、装置、电子设备 |
CN113268507B (zh) * | 2021-05-26 | 2023-03-14 | 大箴(杭州)科技有限公司 | 数据库的数据读取系统及方法、装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111444278B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111444278B (zh) | 数据同步方法、装置及中转服务器 | |
WO2017114206A1 (zh) | 短链接处理方法、装置及短链接服务器 | |
CN110677462B (zh) | 多区块链网络的访问处理方法、系统、装置及存储介质 | |
CN112422702A (zh) | Cdn回源方法、系统及计算机设备 | |
WO2021051747A1 (zh) | 数据更新方法、系统、装置、电子设备及计算机存储介质 | |
WO2018161881A1 (zh) | 结构化数据的处理方法、存储介质和计算机设备 | |
CN111221469B (zh) | 同步缓存数据的方法、装置和系统 | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN111782652B (zh) | 数据调用方法、装置、计算机设备和存储介质 | |
JP2022550401A (ja) | データのアップロード方法、システム、装置及び電子機器 | |
KR20210040864A (ko) | 파일 디렉터리 순회 방법, 장치, 기기, 매체 및 컴퓨터 프로그램 | |
CN110764688A (zh) | 对数据进行处理的方法和装置 | |
CN112202834A (zh) | 一种数据处理方法、数据处理装置及节点服务器 | |
CN111385255B (zh) | 一种异步调用实现方法、装置、服务器及服务器集群 | |
CN112148206A (zh) | 一种数据读写方法、装置、电子设备及介质 | |
WO2014190700A1 (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
CN114116656B (zh) | 数据处理方法及相关装置 | |
CN110795920A (zh) | 一种文档生成方法及设备 | |
CN107526530B (zh) | 数据处理方法和设备 | |
US9749426B2 (en) | Method, system, and apparatus for agent-based architecture for integrated mobile applications | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
WO2020220272A1 (zh) | 更改资源状态的方法、系统、终端及存储介质 | |
CN112291343A (zh) | 信息获取方法、装置及电子设备 | |
CN111767311A (zh) | 变量请求方法、系统、计算机设备和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |