一种数据库高可用实现方法及数据库服务器与流程

文档序号:15399791发布日期:2018-09-11 17:12阅读:203来源:国知局

本发明涉及数据库高可用技术领域,特别是涉及一种数据库高可用实现方法。本发明还涉及一种数据库服务器。



背景技术:

k-db数据库是一种通用关系型数据库,数据库服务器包括数据库和数据库实例,数据库实例包括内存和后台进程,用于进行数据库的读写和重做日志的记录,重做日志是用于记录数据库中增删改等操作的日志。

现阶段k-db数据库服务器只能做成多实例单库的方式,即每个数据库服务器内包含一个数据库实例,多个数据库服务器共享一个数据库,该数据库为外置的存储组件。在这种结构中,数据库实例实现了高可用,但是共享的数据库并没有实现高可用,在没有容灾或备份的情况下,数据库一旦损坏将无法恢复,整个数据库就挂掉,可靠性低。

因此,如何提供一种可靠性高的数据库高可用实现方法及数据库服务器是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种数据库高可用实现方法及数据库服务器,将数据库的修改操作通过重做日志-standby日志存储至对端数据库,实现数据库的高可用,可靠性高。

为解决上述技术问题,本发明提供了一种数据库高可用实现方法,用于数据库服务器,包括:

数据库实例在读写数据库的过程中,将自身对所述数据库的修改操作记录至所述数据库对应的重做日志内;

所述重做日志接收到所述修改操作后,发送携带有所述修改操作的操作指令至所述数据库指定的对端数据库上的standby日志内;

所述对端数据库的standby日志接收到所述操作指令后,将所述操作指令中的所述修改操作写入所述对端数据库;其中,所述数据库与所述对端数据库的初始状态一致。

优选地,数据库成对存在,且每对数据库中的两个数据库互为彼此的对端数据库;

相应的,每对数据库中的两个数据库的重做日志的的组数、大小以及standby日志的组数、大小分别对应相同。

优选地,所述数据库服务器包括一个数据库实例以及一个内置的数据库,所述数据库对应所述数据库服务器内包含的数据库实例。

优选地,所述数据库为共享存储组件,多个所述数据库服务器共享所述数据库,所述数据库对应多个所述数据库服务器中的数据库实例,所述重做日志与所述数据库实例一一对应。优选地,数据库成对存在;每对数据库中,一个数据库对应的数据库实例仅承担读操作,另一个数据库对应的的数据库实例仅承担写操作。

为解决上述技术问题,本发明还提供了一种数据库服务器,包括:

数据库实例,所述数据库实例用于在读写数据库的过程中,将自身对所述数据库的修改操作记录至所述数据库对应的重做日志内;

所述重做日志,用于接收到所述修改操作后,发送携带有所述修改操作的操作指令至所述数据库指定的对端数据库上的standby日志内;其中,所述数据库与所述对端数据库的初始状态一致;

所述standby日志,用于接收到操作指令后,将接收到的操作指令中的修改操作写入自身对应的数据库;

所述数据库。

优选地,包括一个数据库实例以及一个内置的数据库,所述数据库对应所述数据库服务器内包含的数据库实例。

优选地,所述数据库为共享存储组件,多个所述数据库服务器共享所述数据库,所述数据库对应多个所述数据库服务器中的数据库实例,所述重做日志与所述数据库实例一一对应。

优选地,数据库成对存在;每对数据库中,一个数据库对应的数据库实例仅承担读操作,另一个数据库对应的的数据库实例仅承担写操作。

本发明提供了一种数据库高可用实现方法,为每个数据库设置一个对端数据库,数据库实例一旦对数据库进行读写后,数据库对应的重做日志内会记录有数据库的修改操作,之后将该修改操作发送至对端数据库内的standby日志,由对端数据库内的standby日志将修改操作写入对端数据库,这样使得对端数据库内存储有该数据库的修改情况作为备份,一旦该数据库损坏,后续还可以使用对端数据库中的备份数据,避免了数据库损坏后其内数据完全丢失的情况,实现了数据库的高可用,数据库服务器的可靠性高。本发明还提供了一种数据库服务器,也具有上述优点。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种数据库高可用实现方法的过程的流程图;

图2为本发明提供的一种数据库服务器工作过程示意图;

图3为本发明提供的另一种数据库服务器工作过程的示意图;

图4为本发明提供的另一种数据库服务器工作过程的示意图。

具体实施方式

本发明的核心是提供一种数据库高可用实现方法及数据库服务器,将数据库的修改操作通过重做日志-standby日志存储至对端数据库,实现数据库的高可用,可靠性高。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种数据库高可用实现方法,用于数据库服务器,参见图1所示,图1为本发明提供的一种数据库高可用实现方法的过程的流程图;该方法包括:

步骤s1:数据库实例在读写数据库的过程中,将自身对数据库的修改操作记录至数据库对应的重做日志内;

其中,重做日志内记录的是数据库增删改操作的内容,在数据库损坏时,若重做日志能够完整保留,即可依据重做日志进行数据库恢复。

需要注意的是,由于数据库的增删改操作是由数据库实例执行的,因此,重做日志的记录工作也是由数据库实例完成的。

步骤s2:重做日志接收到修改操作后,发送携带有修改操作的操作指令至数据库指定的对端数据库上的standby日志内;

其中,standby日志的功能是用于接收对端数据库传来的重做日志;即standby日志的内容是对端数据库的重做日志的内容。standby日志中的对端数据库的增删改操作可以应用到自身对应的本地数据库,达到在本地数据库内同步对端数据库的数据的目的。

因此,在本发明中,对端数据库的standby日志接收数据库的重做日志后,即可依据该重做日志将数据库的增删改操作同步至standby日志所处的对端数据库内。

另外,为了保证能够将数据库的重做日志发送到对端数据库内,需要在数据库所在的数据库服务器上指定:自身重做日志传输的目的地为对端服务器的standby日志。

步骤s3:对端数据库的standby日志接收到操作指令后,将操作指令中的修改操作写入对端数据库;其中,数据库与对端数据库的初始状态一致。

需要注意的是,一个数据库与其对端数据库的架构也要是一致的,并且两个数据库的名称不能相同。

可以理解的是,在一个系统中,每个数据库均可选择任意一个除自身以外的数据库作为对端;但是若系统内包含的数据库较多的情况下,这种随意选择的方式会导致备份非常乱,不容易进行管理,若每个数据库均随意选择的话,可能会导致有数据库同时作为多个数据库的对端,进而使该数据库压力过大。因此,可采用以下两种实施例避免上述问题:

在其中一种优选实施例中,数据库成对存在,且每对数据库中的两个数据库互为彼此的对端数据库;

相应的,每对数据库中的两个数据库的重做日志的的组数、大小以及standby日志的组数、大小分别对应相同。

可以理解的是,采用上述实施例的方式,将数据库两两组合,每对中的两个数据库互相作为彼此的对端数据库,即作为彼此的备份,备份对象清楚明了,极大地方便了备份的管理。

在另一种实施例中,可以采用一种循环的方式,以3个数据库为例:即第一个数据库选择第二个数据库作为对端,第二个数据库选择第三个数据库作为对端,第三个数据库选择第一个数据库作为对端。参见图3所示,图3为本发明提供的另一种数据库服务器工作过程的示意图。

可以理解的是,这种方式下也可以避免数据库压力的不均衡,但是需要记录下各个数据库的排序,避免出现备份混乱的情况。

在一种具体实施例中,数据库为共享存储组件,每个数据库服务器包含一个数据库实例,多个数据库服务器共享数据库,即数据库对应多个数据库服务器中的数据库实例,重做日志与数据库实例一一对应。参见图2所示,图2为本发明提供的一种数据库服务器工作过程的示意图。

可以理解的是,在该实施例中,采用共享存储组件作为数据库,能够使共享该数据库的几个数据库实例共享彼此写入的数据信息,避免了数据重复存储占用存储资源的情况,提高了存储的资源利用率。

在另一个优选实施例中,数据库服务器包括一个数据库实例以及一个内置的数据库,数据库对应数据库服务器内包含的数据库实例。

可以理解的是,数据库为共享存储组件时,这里的共享存储组件指的是外置的存储硬件,这种情况下,一个系统除了要包含服务器硬件外,还要包含存储硬件,成本高;而上述实施例将数据库内置至数据库服务器内,因此,一个系统仅需要设置服务器硬件即可,降低了成本。

进一步可知,数据库成对存在;每对数据库中,一个数据库对应的数据库实例仅承担读操作,另一个数据库对应的的数据库实例仅承担写操作。参见图4所示,图4为本发明提供的另一种数据库服务器工作过程的示意图。

可以理解的是,目前的数据库服务器中,数据库一般是承担读写操作,即数据库实例会对一个数据库进行读操作或写操作;这种情况下会导致数据库压力较大,特别是在数据库作为共享存储组件时,会承担多个数据库实例的读写操作,数据库压力过于集中;而上述方案中,将读操作和写操作分开,分别由不同的数据库承担,从而降低了数据库的压力。

需要注意的是,数据库的类型(为共享数据库还是内置数据库)、数据库的对端设置方式以及数据库承担的操作类型(读操作还是写操作还是读写操作),三者可以随意组合,组合得到的方案均在本发明的保护范围之内。

本发明提供了一种数据库高可用实现方法,为每个数据库设置一个对端数据库,数据库实例一旦对数据库进行读写后,数据库对应的重做日志内会记录有数据库的修改操作,之后将该修改操作发送至对端数据库内的standby日志,由对端数据库内的standby日志将修改操作写入对端数据库,这样使得对端数据库内存储有该数据库的修改情况作为备份,一旦该数据库损坏,后续还可以使用对端数据库中的备份数据,避免了数据库损坏后其内数据完全丢失的情况,实现了数据库的高可用,数据库服务器的可靠性高。

本发明还提供了一种数据库服务器,包括:

数据库实例,数据库实例用于在读写数据库的过程中,将自身对数据库的修改操作记录至数据库对应的重做日志内;

重做日志,用于接收到修改操作后,发送携带有修改操作的操作指令至数据库指定的对端数据库上的standby日志内;其中,数据库与对端数据库的初始状态一致

standby日志,用于接收到操作指令后,将接收到的操作指令中的修改操作写入自身对应的数据库;

数据库。

作为优选地,包括一个数据库实例以及一个内置的数据库,数据库对应数据库服务器内包含的数据库实例。

作为优选地,数据库为共享存储组件,多个数据库服务器共享数据库,数据库对应多个数据库服务器中的数据库实例,重做日志与数据库实例一一对应。优选地,数据库成对存在;每对数据库中,一个数据库对应的数据库实例仅承担读操作,另一个数据库对应的的数据库实例仅承担写操作。

本发明提供了一种数据库服务器,为每个数据库设置一个对端数据库,数据库实例一旦对数据库进行读写后,数据库对应的重做日志内会记录有数据库的修改操作,之后将该修改操作发送至对端数据库内的standby日志,由对端数据库内的standby日志将修改操作写入对端数据库,这样使得对端数据库内存储有该数据库的修改情况作为备份,一旦该数据库损坏,后续还可以使用对端数据库中的备份数据,避免了数据库损坏后其内数据完全丢失的情况,实现了数据库的高可用,数据库服务器的可靠性高。

以上的几种具体实施方式仅是本发明的优选实施方式,以上几种具体实施例可以任意组合,组合后得到的实施例也在本发明的保护范围之内。应当指出,对于本技术领域的普通技术人员来说,相关专业技术人员在不脱离本发明精神和构思前提下推演出的其他改进和变化,均应包含在本发明的保护范围之内。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1