CN104834724A - 一种数据库同步方法和装置 - Google Patents
一种数据库同步方法和装置 Download PDFInfo
- Publication number
- CN104834724A CN104834724A CN201510239976.9A CN201510239976A CN104834724A CN 104834724 A CN104834724 A CN 104834724A CN 201510239976 A CN201510239976 A CN 201510239976A CN 104834724 A CN104834724 A CN 104834724A
- Authority
- CN
- China
- Prior art keywords
- user instruction
- database
- data base
- instruction
- master data
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据库同步方法及装置。所述数据库同步方法包括:读取用户输入用户指令;将所述用户指令发送给主数据库执行;读取所述主数据库执行所述用户指令后的返回结果;将所述主数据库返回结果转发给用户。本发明实施例提供的数据库同步方法及装置能够明显降低数据库同步的操作延时。
Description
技术领域
本发明涉及一种数据库技术领域,尤其涉及一种数据库同步方法和装置。
背景技术
随着信息技术和市场的发展,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。在计算机***应用中,数据库是目前应用***处理核心,对数据的安全性要求是极高的。数据库是作为数据持久化的常见工具,因此而衍生出数据同步,数据安全,数据备份,数据恢复等许多需要研究的技术问题。
现有有关于数据库灾备,恢复等技术通常是使用数据库的同步手段来实现,目前使用得最多的是使用日记记录的方式,比如数据库在写一条记录之后产生一条日记记录,备份数据库读取这个日志记录分析之后,就执行相同的一条写记录来达到数据的备份。
目前使用日记记录这种方法的缺点在于需要对现有的数据库进行配置以产生对应的日志记录;如果数据库操作比较频繁的话,此种方法会产生大量的日志记录,因为数据库先把操作执行完之后再去写日志记录。这样会明显加重数据库服务器的运行载荷,造成数据库同步操作的操作延时过大。
发明内容
针对上述技术问题,本发明实施例提供一种数据库同步方法及装置,以明显降低进行数据库同步的操作延时。
第一方面,本发明实施例提供一种数据库同步方法,所述方法包括:
读取用户输入用户指令;
将所述用户指令发送给主数据库执行;
读取所述主数据库执行所述用户指令后的返回结果;
将所述主数据库返回结果转发给用户。
第二方面,本发明实施例还提供一种数据库同步装置,所述装置包括:
获取模块,用于获取用户输入用户指令的信息;
第一发送模块,用于将所述用户指令发送给主数据库执行;
第一读取模块,用于读取所述主数据库执行所述用户指令后的返回结果;
显示模块,用于将所述主数据库返回结果转发给用户。
本发明实施例提供的数据库同步方法和装置,通过读取用户输入的用户指令,将所述用户指令发送给主数据库执行,读取所述主数据库执行所述用户指令后的返回结果,以及将所述主数据库返回结果转发给用户,使得数据库服务器不再对数据操作记录日志,转而由数据库代理执行数据库同步的操作,从而大大降低了数据库服务器的运行载荷,明显降低了进行数据库同步的操作延时。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1是本发明实施例一提供的数据库同步方法的流程示意图;
图2是本发明实施例二提供的数据库同步方法的流程示意图;
图3是本发明实施例三提供的数据库同步方法的流程示意图;
图4是本发明实施例四提供的数据库同步装置的结构示意图;
图5是本发明实施例五提供的执行所述数据库同步方法的***的架构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将结合本发明实施例中的附图,通过具体实施方式,完整地描述本发明的技术方案。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例,基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动的前提下获得的所有其他实施例,均落入本发明的保护范围之内。
实施例一
本实施例提供了一种数据库同步方法的技术方案。所述数据库同步方法由数据库同步装置实施。所述数据库同步装置集成在一台数据库代理服务器内,并且,所述数据库代理服务器通常部署在用户使用的客户端与数据库服务器之间,与所述客户端及所述数据库服务器分别连接,用于对数据库服务器上的数据库执行同步操作。
参见图1,所述数据库同步方法包括:步骤11至步骤14。
步骤11中,读取用户输入的用户指令。
用户会通过与所述数据库代理相连接的客户端向主数据库发送用户指令。所述用户指令包括读指令和写指令。所述读指令是指只对数据库中存储的数据进行读取,而不改变数据库中的存储内容的用户指令。以SQL指令为例,所述读指令可以是SQL语言中的select(查询)语句。所述写指令是指会对数据库中存储的数据内容发生改变的用户指令。以SQL指令为例,所述写指令可以是SQL语言中的insert(***)语句。
另外,所述用户指令包括数据定义指令、数据操纵指令、数据管理指令以及数据查询指令。当然,所述用户指令也可以包括其他类型的指令。例如,如果所述主数据库并不是关系型数据库时,用户指令可以包括上述四种指令以外的其他类型的指令。
由于所述数据库代理与客户端通过网络相互连接,当用户通过客户端向主数据库发送用户指令时,所述数据库代理能够通过网络读取到用户输入的用户指令。
读取到用户输入的用户指令之后,可以根据读取到用户指令的时间、读取到的用户指令的内容记录日志,从而对用户指令读取操作进行记录。
步骤12中,将所述用户指令发送给主数据库执行。
读取到用户输入的用户指令之后,数据库代理通过与主数据库之间的网络连接将读取到的所述用户指令发送给主数据库执行。所述主数据库通过其与所述数据库代理之间的网络连接接收到所述用户指令,根据接收到的用户指令执行对数据的操作。
步骤13中,读取所述主数据库执行所述用户指令后的返回结果。
主数据库执行所述用户指令之后,会向客户端发送执行所述用户指令的返回结果。例如,如果所述用户指令是指示主数据库在一张数据表中***数据,则若主数据库中成功***了数据,所述主数据库会向客户端返回表明数据***成功的成功消息。由于数据库代理部署在主数据库与客户端之间,数据库代理会接收到所述主数据库执行所述用户指令之后的返回结果。
在读取到所述返回结果之后,可以根据读取到返回结果的时间,以及读取到的所述返回结果的内容记录日志。通过记录日志的操作,可以完成对主数据库的数据同步操作。
步骤14中,将所述主数据库返回结果转发给用户。
接收到主数据库执行所述用户指令后的返回结果之后,所述数据库代理通过其与所述客户端之间的网络连接,将所述主数据库的返回结果转发给用户。通过上述各个操作,部署在主数据库与客户端之间的数据库代理完成了对主数据库的同步操作。相比较与在主数据库本地记录日志的同步方式,本实施例给出的同步方案能够明显降低主数据库的计算载荷,从而降低对数据库进行同步的操作时延。
本实施例通过读取用户输入用户指令,将所述用户指令发送给主数据库执行,读取所述主数据库执行所述用户指令后的返回结果,以及将所述主数据库返回结果转发给用户,从而明显降低了对数据库进行同步的操作时延。
实施例二
本实施例以本发明上述实施例为基础,进一步的提供了数据库同步方法的另一种技术方案。在该技术方案中,在将所述用户指令发送给主数据库执行之前,还包括:判断所述的用户指令是读指令还是写指令;若所述用户指令为写指令,将所述用户指令发送给备份数据库。
参见图2,在本实施例中,所述数据库同步方法包括:步骤21至步骤26。
步骤21中,读取用户输入用户指令。
步骤22中,判断所述的用户指令是读指令还是写指令。
在本实施例中,所述数据库代理除了与主数据库通过网络相连接,还与一个备份数据库通过网络相连接。所述备份数据库用于对所述主数据库中存储的数据进行备份。
所述用户指令包括读指令以及写指令。而且,仅有写指令的执行会对数据库中存储的数据内容造成改变。所以,要在所述备份数据库中对主数据库中存储的数据进行备份,所述备份数据库上仅需要执行所述写指令,而不需要执行所述读指令。
因此,在读取到用户输入的用户指令之后,所述数据库代理对读取到的用户指令进行识别,判断所述用户指令是读指令还是写指令。具体的,可以通过对所述用户指令的内容的匹配,实现对用户指令的类型的判断。
步骤23中,若所述用户指令为写指令,将所述用户指令发送给备份数据库。
通过对所述用户指令的判断,若认为所述用户指令为写指令,则将所述用户指令发送给所述备份数据库去执行,从而实现备份数据库中数据与所述主数据库中数据之间的同步。
步骤24中,将所述用户指令发送给主数据库执行。
步骤25中,读取所述主数据库执行所述用户指令后的返回结果。
步骤26中,将所述主数据库返回结果转发给用户。
本实施例通过在将所述用户指令发送给主数据库执行之前,判断所述的用户指令是读指令还是写指令,并且当所述用户指令为写指令之时,将所述用户指令发送给备份数据库,从而进一步的利用备份数据库实现了对主数据库中数据的同步。
实施例三
本实施例以本发明上述实施例为基础,进一步的提供了数据库同步方法的再一种技术方案。在该技术方案中,在将所述的用户指令发送至备份数据库之后,还包括:读取所述备份数据库执行所述的用户指令后备份返回的结果;将所述备份返回结果转发给用户。
参见图3,在本实施例中,所述数据库同步方法包括:步骤31至步骤38。
步骤31中,读取用户输入用户指令。
步骤32中,判断所述的用户指令是读指令还是写指令。
步骤33中,若所述用户指令为写指令,将所述用户指令发送给备份数据库。
步骤34中,读取所述备份数据库执行所述的用户指令后备份返回的结果。
所述备份数据库执行所述数据库代理发送的用户指令之后,需要将执行所述用户指令的返回结果反馈给客户端。由于所述数据库代理部署在所述备份数据库与客户端之间,所以所述数据库代理能够通过与所述备份数据库之间的网络连接读取所述返回结果。
步骤35中,将所述备份返回结果转发给用户。
在读取到所述返回结果之后,所述数据库代理将所述备份数据库的备份返回结果转发给使用客户端的用户。
36步骤中,将所述用户指令发送给主数据库执行。
37步骤中,读取所述主数据库执行所述用户指令后的返回结果;
38步骤中,将所述主数据库返回结果转发给用户。
本实施例通过在将所述的用户指令发送至备份数据库之后,读取所述备份数据库执行所述的用户指令后备份返回的结果,将所述备份返回结果转发给用户,使得用户不仅能够接收到主数据库的执行返回结果,还能够接收到备份数据库的执行返回结果,提高了数据库同步方法的可靠性。
实施例四
本实施例提供了数据库同步装置的一种技术方案。参见图4,在该技术方案中,所述数据库同步装置包括:获取模块41、第一发送模块46、第一读取模块47以及显示模块48。
所述获取模块41用于获取用户输入用户指令的信息。
所述第一发送模块46用于将所述用户指令发送给主数据库执行。
所述第一读取模块47用于读取所述主数据库执行所述用户指令后的返回结果。
所述显示模块48用于将所述主数据库返回结果转发给用户。
进一步的,所述用户指令包括读指令或者写指令。
进一步的,所述数据库同步装置还包括:判断模块42以及第二发送模块43。
所述判断模块42用于在将所述用户指令发送给主数据库执行之前,判断所述的用户指令是读指令还是写指令。
所述第二发送模块43用于当所述用户指令为写指令时,将所述用户指令发送给备份数据库。
进一步的,所述数据库同步装置还包括:第二读取模块44以及转发模块45。
所述第二读取模块44用于在将所述的用户指令发送至备份数据库之后,读取所述备份数据库执行所述的用户指令后备份返回的结果。
所述转发模块45用于将所述备份返回结果转发给用户。
本实施例通过读取用户输入用户指令,将所述用户指令发送给主数据库执行,读取所述主数据库执行所述用户指令后的返回结果,以及将所述主数据库返回结果转发给用户,从而明显降低了对数据库进行同步的操作时延。
实施例五
本实施例提供了执行数据库同步方法的***的一种技术方案。参见图5,在该技术方案中,执行数据库同步方法的***包括:客户端51、数据库代理52、主数据库53以及备份数据库54。
其中,所述数据库代理52分别与所述客户端51、所述主数据库53以及所述备份数据库54直接保持网络连接。并且,所述客户端51、所述主数据库53以及所述备份数据库54相互之间没有直接的网络连接。也就是说,它们之间的数据通信需要通过所述数据库代理52进行转发。
进一步的,所述数据库代理52用于:读取用户输入用户指令;将所述用户指令发送给主数据库执行;读取所述主数据库执行所述用户指令后的返回结果;将所述主数据库返回结果转发给用户。
进一步的,在将所述用户指令发送给主数据库执行之前,所述数据库代理52还用于:判断所述的用户指令是读指令还是写指令;若所述用户指令为写指令,将所述用户指令发送给备份数据库。
进一步的,在将所述的用户指令发送至备份数据库之后,所述数据库代理52还用于:读取所述备份数据库执行所述的用户指令后备份返回的结果;将所述备份返回结果转发给用户。
上述仅为本发明的较佳实施例及所运用的技术原理。本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求的范围决定。
Claims (8)
1.一种数据库同步方法,其特征在于,所述方法包括:
读取用户输入用户指令;
将所述用户指令发送给主数据库执行;
读取所述主数据库执行所述用户指令后的返回结果;
将所述主数据库返回结果转发给用户。
2.根据权利要求1所述的方法,其特征在于,所述用户指令包括读指令和写指令。
3.根据权利要求2所述的方法,其特征在于,在将所述用户指令发送给主数据库执行之前,还包括:
判断所述的用户指令是读指令还是写指令;
若所述用户指令为写指令,将所述用户指令发送给备份数据库。
4.根据权利要求3所述的方法,其特征在于,在将所述的用户指令发送至备份数据库之后,还包括:
读取所述备份数据库执行所述的用户指令后备份返回的结果;
将所述备份返回结果转发给用户。
5.一种数据库同步装置,其特征在于,所述装置包括:
获取模块,用于获取用户输入用户指令的信息;
第一发送模块,用于将所述用户指令发送给主数据库执行;
第一读取模块,用于读取所述主数据库执行所述用户指令后的返回结果;
显示模块,用于将所述主数据库返回结果转发给用户。
6.根据权利要求5所述的装置,其特征在于,所述用户指令包括读指令或者写指令。
7.根据权利要求6所述的装置,其特征在于,还包括:
判断模块,用于在将所述用户指令发送给主数据库执行之前,判断所述的用户指令是读指令还是写指令;
第二发送模块,用于当所述用户指令为写指令时,将所述用户指令发送给备份数据库。
8.根据权利要求7所述的装置,其特征在于,还包括:
第二读取模块,用于在将所述的用户指令发送至备份数据库之后,读取所述备份数据库执行所述的用户指令后备份返回的结果;
转发模块,用于将所述备份返回结果转发给用户。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510239976.9A CN104834724B (zh) | 2015-05-12 | 2015-05-12 | 一种数据库同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510239976.9A CN104834724B (zh) | 2015-05-12 | 2015-05-12 | 一种数据库同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104834724A true CN104834724A (zh) | 2015-08-12 |
CN104834724B CN104834724B (zh) | 2018-12-18 |
Family
ID=53812610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510239976.9A Active CN104834724B (zh) | 2015-05-12 | 2015-05-12 | 一种数据库同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104834724B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017190580A1 (zh) * | 2016-05-06 | 2017-11-09 | 北京奇虎科技有限公司 | 访问数据库的方法及装置 |
CN108415951A (zh) * | 2018-02-02 | 2018-08-17 | 广东睿江云计算股份有限公司 | 一种数据库控制方法和*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050210073A1 (en) * | 2004-03-19 | 2005-09-22 | Takashi Oeda | System executing log data transfer synchronously and database data transfer asynchronously |
CN102033912A (zh) * | 2010-11-25 | 2011-04-27 | 北京北纬点易信息技术有限公司 | 一种分布式数据库访问方法及*** |
CN103390041A (zh) * | 2013-07-18 | 2013-11-13 | 杭州东信北邮信息技术有限公司 | 一种基于中间件提供数据服务的方法和*** |
CN103617195A (zh) * | 2013-11-05 | 2014-03-05 | 杭州沃趣网络科技有限公司 | 一种用于MySQL数据库的数据同步***和方法 |
CN104219085A (zh) * | 2014-08-07 | 2014-12-17 | 深圳市同洲电子股份有限公司 | 一种数据库的数据处理方法、代理服务器及*** |
CN104504145A (zh) * | 2015-01-05 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种实现数据库读写分离的方法和设备 |
-
2015
- 2015-05-12 CN CN201510239976.9A patent/CN104834724B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050210073A1 (en) * | 2004-03-19 | 2005-09-22 | Takashi Oeda | System executing log data transfer synchronously and database data transfer asynchronously |
CN102033912A (zh) * | 2010-11-25 | 2011-04-27 | 北京北纬点易信息技术有限公司 | 一种分布式数据库访问方法及*** |
CN103390041A (zh) * | 2013-07-18 | 2013-11-13 | 杭州东信北邮信息技术有限公司 | 一种基于中间件提供数据服务的方法和*** |
CN103617195A (zh) * | 2013-11-05 | 2014-03-05 | 杭州沃趣网络科技有限公司 | 一种用于MySQL数据库的数据同步***和方法 |
CN104219085A (zh) * | 2014-08-07 | 2014-12-17 | 深圳市同洲电子股份有限公司 | 一种数据库的数据处理方法、代理服务器及*** |
CN104504145A (zh) * | 2015-01-05 | 2015-04-08 | 浪潮(北京)电子信息产业有限公司 | 一种实现数据库读写分离的方法和设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017190580A1 (zh) * | 2016-05-06 | 2017-11-09 | 北京奇虎科技有限公司 | 访问数据库的方法及装置 |
CN108415951A (zh) * | 2018-02-02 | 2018-08-17 | 广东睿江云计算股份有限公司 | 一种数据库控制方法和*** |
Also Published As
Publication number | Publication date |
---|---|
CN104834724B (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11102292B2 (en) | System and method for real-time cloud data synchronization using a database binary log | |
CN109034993B (zh) | 对账方法、设备、***及计算机可读存储介质 | |
CN107220142B (zh) | 执行数据恢复操作的方法及装置 | |
US8190562B2 (en) | Linking framework for information technology management | |
CN105117382B (zh) | 一种文档协同方法及装置 | |
KR20210005043A (ko) | 입력 및 출력 스키마 매핑 | |
US11836154B2 (en) | Data synchronization method and device for databases, and storage medium | |
CN102272751B (zh) | 在数据库环境通过背景同步的数据完整性 | |
CN101436209B (zh) | 一种多数据库同步的方法和装置 | |
CN100442238C (zh) | 异步复制数据的方法和装置 | |
US10432703B2 (en) | On-demand session upgrade in a coordination service | |
CN105574187A (zh) | 一种异构数据库复制事务一致性保障方法及*** | |
CN107870982B (zh) | 数据处理方法、***和计算机可读存储介质 | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
EP3786802A1 (en) | Method and device for failover in hbase system | |
CN113806301A (zh) | 数据同步方法、装置、服务器及存储介质 | |
CN110417892B (zh) | 基于报文解析的数据复制链路优化方法及装置 | |
CN112822091A (zh) | 一种消息处理方法和装置 | |
CN104834724A (zh) | 一种数据库同步方法和装置 | |
EP2690560B1 (en) | Method of benchmarking the behaviour of a replacement information system with the old system | |
CN116501700B (zh) | 一种app格式化文件离线存储方法、装置、设备及存储介质 | |
JP4998010B2 (ja) | データベースシステム管理、データベースシステム、プログラム及び処理装置 | |
CN111241044B (zh) | 搭建异构数据库的方法、装置、设备及可读存储介质 | |
CN111753141A (zh) | 一种数据管理方法及相关设备 | |
JP2007102794A (ja) | フロントエンド処理機能を有する情報処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 705-708, room two, No. 121, north south of the Five Ridges Avenue, Chancheng District, Guangdong, Foshan, 528000 Applicant after: GUANGDONG RUIJIANG CLOUD COMPUTING CO., LTD. Address before: Chancheng District of Guangdong city of Foshan province south of the Five Ridges 528000 Avenue North 121 East International A District Office 7-8 Applicant before: Guangdong Efly Network Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |