一种数据库的主从备份系统的制作方法

文档序号:29452952发布日期:2022-03-30 12:13阅读:80来源:国知局
一种数据库的主从备份系统的制作方法

1.本发明涉及计算机技术领域,更具体的说是涉及一种数据库的主从备份系统。


背景技术:

2.当前,在进行项目或者网站设计中,通常需要对数据库进行主从备份。在生产环境中,为防止服务器故障意外或各种突发危机情况导致数据丢失,通过创建主数据库跟从数据库,对数据库做主从备份。即准备至少两台服务器,一台为主数据库服务器,一台为从数据库服务器,作为后备数据库,主数据库服务器故障后,可切换到从数据库服务器继续工作,避免数据丢失。
3.但是,现有的数据库主从备份方法在数据库的主从备份中会有延时,对于数据库实时性要求较高的业务,严重影响数据的一致性。


技术实现要素:

4.针对以上问题,本发明的目的在于提供一种数据库的主从备份系统,通过提供多种的数据存储模式,提升大数据业务的处理速度,提高了数据库的处理效能。
5.本发明为实现上述目的,通过以下技术方案实现:一种数据库的主从备份系统,包括:一台主数据库服务器和多台从数据库服务器,主数据库服务器用于接收业务端对数据库的表结构变更dll操作,从数据库服务器用于接收业务端对数据的查询dml操作;所述主数据库服务器和从数据库服务器均设有缓存层和数据库同步层,缓存层和数据同步层分别与业务端数据连接;所述缓存层,设在主数据库服务器和从数据库服务器的内存中,用于启动第一主从复制机制处理第一类业务数据,当业务端未在缓存层中读取到所需的业务数据时,去数据库同步层读取,并将此读操作进行计数,计数累计超过设定值后,将此业务数据更新入缓存层;所述数据库同步层,设在主数据库服务器和从数据库服务器的硬盘中,用于启动第二主从复制机制处理第二类业务数据。
6.进一步,所述第一主从复制机制包括:
7.在缓存层进行主数据库服务器和从数据库服务器的初始化;
8.主数据库服务器将业务端的写操作同步至从数据库服务器。
9.进一步,所述在缓存层进行主数据库服务器和从数据库服务器的初始化,具体包括:
10.从数据库服务器给主数据库服务器发送同步命令,请求同步连接;
11.主数据库服务器接受同步命令,后台启动进程,将数据快照保存至数据文件,同时主数据库服务器记录修改数据库的所有操作;
12.主数据库服务器继续记录数据库操作,并同时向从服务器发送数据文件,从数据库服务器读取数据文件的数据快照进行保存并加载至内存区进行数据库恢复;
13.主数据库服务器将缓冲区所有操作数据发送给从数据库服务器,从数据库服务器读取,并在数据库中执行。
14.进一步,所述主数据库服务器记录修改数据库的所有操作具体为:
15.主数据库服务器记录在保存数据快照后修改数据库的所有操作并将其保存至缓存层。
16.进一步,所述数据库同步层包括:
17.代理单元,用于对请求数据进行判断,根据请求数据的类型将请求数据发送给主数据库服务器或从数据库服务器。
18.进一步,所述第二主从复制机制包括:
19.通过代理单元进行请求数据的分发;
20.利用日志文件进行数据库的主从备份。
21.进一步,所述通过代理单元进行请求数据的分发,包括:
22.代理单元接收到请求数据后对请求数据的类型进行判断;
23.若请求数据为写操作,则将请求数据发送至主数据库服务器;
24.若请求数据是读操作,则判断相应的业务类型,根据业务类型发送至相应的从数据库服务器。
25.进一步,所述利用日志文件进行数据库的主从备份,包括:
26.主数据库服务器将数据库操作串行记录到日志文件;
27.从数据库服务器开启读写进程,将日志文件复制到自身的中继日志;
28.从数据库服务器开启sql进程,执行中继日志,将更新应用至当前的从数据库服务器中。
29.进一步,所述从数据库服务器开启读写进程,将日志文件复制到自身的中继日志,具体包括:
30.从数据库服务器开启读写进程,通过i/o进程读取主数据库服务器的日志文件,将日志文件复制到自身的中继日志。
31.进一步,所述第一类业务数据为处理频率高于预设频率阈值的业务数据,所述第二类业务数据为处理频率低于预设频率阈值的业务数据。
32.对比现有技术,本发明有益效果在于:本发明公开了一种数据库的主从备份系统,对现有的主从备份方式进行了改进,对架构进行了分层,对于频繁数据业务增加了缓存层处理模式,对于普通业务,根据写业务的处理速度慢于读业务的处理速度,从而对于数据库进行了读写分离模式,通过这种方式,提升了大数据业务的处理速度,提高了系统的处理效能。
33.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
35.附图1是本发明实施例一的系统结构图。
36.附图2是本发明实施例二的系统运行示意图。
37.附图3是本发明实施例二的缓存层的主从复制过程示意图。
38.附图4是本发明实施例二的数据库分发层的主从复制过程示意图。
具体实施方式
39.本发明的核心是提供一种数据库的主从备份系统,现有的数据库主从备份方法在数据库的主从备份中会有延时,对于数据库实时性要求较高的业务,严重影响数据的一致性。
40.而本发明提供的数据库的主从备份系统,现有主从备份方式进行改进,定义了两层架构:缓存层,数据库同步层。通过对业务进行分类,第一层在缓存层实现频繁业务处理读取,在第二层数据库同步层建立一主多从的架构方式,先将读写数据进行分离到主、从数据库服务器分别操作,后根据不同的业务功能部署不同的从数据库服务器,实现数据库的实时性备份,避免因备份延时导致的业务不同步问题。
41.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
42.实施例一:
43.如图1所示,本实施例提供了一种数据库的主从备份系统,包括:一台主数据库服务器和多台从数据库服务器,主数据库服务器用于接收业务端对数据库的表结构变更dll操作,从数据库服务器用于接收业务端对数据的查询dml操作;所述主数据库服务器和从数据库服务器均设有缓存层和数据库同步层,缓存层和数据同步层分别与业务端数据连接。
44.缓存层,设在主数据库服务器和从数据库服务器的内存中,用于启动第一主从复制机制处理第一类业务数据,当业务端未在缓存层中读取到所需的业务数据时,去数据库同步层读取,并将此读操作进行计数,计数累计超过设定值后,将此业务数据更新入缓存层。
45.数据库同步层,设在主数据库服务器和从数据库服务器的硬盘中,用于启动第二主从复制机制处理第二类业务数据。其中,第一类业务数据为处理频率高于预设频率阈值的业务数据,第二类业务数据为处理频率低于预设频率阈值的业务数据。
46.当缓存层启动第一主从复制机制后,首先在缓存层进行主数据库服务器和从数据库服务器的初始化。然后,主数据库服务器将业务端的写操作同步至从数据库服务器。
47.作为示例的,第一主从复制机制的执行过程包括如下步骤:
48.1、从数据库服务器给主数据库服务器发送同步命令,请求同步连接。
49.2、主数据库服务器接受同步命令,后台启动进程,将数据快照保存至数据文件,同时主数据库服务器记录修改数据库的所有操作。
50.3、主数据库服务器继续记录数据库操作,并同时向从服务器发送数据文件,从数据库服务器读取数据文件的数据快照进行保存并加载至内存区进行数据库恢复。
51.4、主数据库服务器将缓冲区所有操作数据发送给从数据库服务器,从数据库服务器读取,并在数据库中执行。
52.其中,在第三步中,主数据库服务器记录修改数据库的所有操作具体为:主数据库服务器记录在保存数据快照后修改数据库的所有操作并将其保存至缓存层。
53.作为示例的,数据库同步层还具有数据分发功能,因此,数据同步层还包括代理单元,代理单元用于对请求数据进行判断,根据请求数据的类型将请求数据发送给主数据库服务器或从数据库服务器。
54.当数据库同步层启动第二主从复制机制后,首先通过代理单元进行请求数据的分发。然后,利用日志文件进行数据库的主从备份。
55.具体来说,第二主从复制机制的执行过程如下:
56.首先,代理单元接收到请求数据后对请求数据的类型进行判断;若请求数据为写操作,则将请求数据发送至主数据库服务器;若请求数据是读操作,则判断相应的业务类型,根据业务类型发送至相应的从数据库服务器。数据分发完成后,主数据库服务器将数据库操作串行记录到日志文件;此时,从数据库服务器开启读写进程,通过i/o进程读取主数据库服务器的日志文件,将日志文件复制到自身的中继日志;最后,从数据库服务器开启sql进程,执行中继日志,将更新应用至当前的从数据库服务器中。
57.本实施例提供了一种数据库的主从备份系统,对现有的主从备份方式进行了改进,对架构进行了分层,对于频繁数据业务增加了缓存层处理模式,对于普通业务,根据写业务的处理速度慢于读业务的处理速度,从而对于数据库进行了读写分离模式,通过这种方式,提升了大数据业务的处理速度,提高了系统的处理效能。
58.实施例二:
59.基于实施例一,本发明还公开了一种数据库的主从备份系统,本系统分为两层:缓存层及数据库同步层。如图2所示,缓存层处理高频繁业务数据,数据库同步层处理普通业务数据。缓存层及数据库同步层分别进行实时备份。应用读取高频繁业务时访问缓存层,如在缓存层未能找到相关业务,去数据库同步层读取,并将此读操作进行计数,累计超过设定值后,将此数据更新入缓存层数据库。在数据库同步层,采用一主多从的部署模式,即根据具体的业务功能划分部署1台主数据库服务器+n台从数据库服务器。主数据库服务器负责接收业务端对数据库的表结构变更ddl操作,从数据库服务器接收业务端对数据的查询dml操作。
60.具体来说,本系统的实现机制如下:
61.1、缓存层的主从复制:缓存区位于内存,用于读操作,业务从缓存区读取数据,提升数据读写效率。缓存区采取一主多从模式。主数据库服务器负责用户的写操作,从数据库服务器负责接受用户的读操作。
62.如图3所示,缓存层的主从复制过程具体如下:
63.首先,进行缓存层的初始化:
64.(1)从数据库服务器给主数据库服务器发送同步命令,请求同步连接。
65.(2)主数据库服务器接受同步命令,后台启动进程,将数据快照保存至数据文件,同时主数据库服务器记录在保存快照后修改数据库的所有操作将其保存至缓冲区。
66.(3)主数据服务器继续记录数据库操作,并同时向从数据库服务器发送数据文件,从数据库服务器读取数据文件快照进行保存并加载至内存区进行数据库恢复。
67.(4)主数据库服务器将缓冲区所有操作数据发送给从数据库服务器,从数据库服
务器读取,并在数据库中执行。至此从服务器初始化完毕。从数据库服务器可以接受来自用户的读操作。
68.初始化完成后,主数据库服务器将用户的写操作同步至从数据库服务器,至此,主从开始开始正常的同步工作。至此,实现了数据库的增量同步。
69.2、数据库分发层的主从复制。如图4所示,数据库分发层的主从复制过程具体如下:
70.首先,进行数据分发。由于数据库部分存储在磁盘,采取一主多从的业务读写分离模式,当业务端将请求数据发送给内置的代理单元后,代理单元对请求数据进行判断,根据不同的请求类型发送给不同的数据库服务器。如是写操作发送至主数据库服务器,如果是读操作,判断业务类型,根据业务类型的不同分发到不同的从数据库服务器。
71.然后,进行数据库的主从备份。具体包括以下三步:
72.a、主数据库服务器将数据库操作串行记录到日志文件。
73.b、从数据库服务器开启读写进程,通过i/o进程读取主数据库服务器日志文件,将日志文件复制到自身中继日志。
74.c、从数据库服务器开启sql进程,执行中继日志,将更新应用至自身服务器中。
75.本实施例提供了一种数据库的主从备份系统,在数据库端建立双层处理机制。前客户端分发业务,频繁业务发送至缓存层处理,如缓存层未能读取到相关业务,则去数据库同步层读取,并将数据写入至缓存层。数据库端接受普通业务处理,由代理单元进行业务分发。主数据库服务器负责接受写操作,从数据库服务器负责接受读操作。根据业务类型的区别,将读操作分发至不同的从服务器。可见,数据库同步层能够根据读写操作不同的处理时间,采用读写分离模式,写操作分发至主数据库服务器,读操作分发至从数据库服务器。同时,实现了主从数据库服务器的同步操作。
76.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
77.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
78.在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
79.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
80.另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
81.同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
82.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
83.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
84.以上对本发明所提供的数据库的主从备份系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1