CN106776145B - 数据库备份性能的控制方法、系统及服务器 - Google Patents
数据库备份性能的控制方法、系统及服务器 Download PDFInfo
- Publication number
- CN106776145B CN106776145B CN201611241663.8A CN201611241663A CN106776145B CN 106776145 B CN106776145 B CN 106776145B CN 201611241663 A CN201611241663 A CN 201611241663A CN 106776145 B CN106776145 B CN 106776145B
- Authority
- CN
- China
- Prior art keywords
- backup
- memory unit
- shared memory
- backup data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 237
- 230000008569 process Effects 0.000 claims abstract description 210
- 230000003993 interaction Effects 0.000 claims abstract description 18
- 238000007726 management method Methods 0.000 description 51
- 238000010586 diagram Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据库备份性能的控制方法、系统及服务器,控制系统包括:创建一用于辅助介质管理层进程与备份进程数据交互的数据对象池;数据对象池包括至少一个用以缓存备份数据的共享内存单元、共享内存单元中已缓存有备份数据,可读共享内存单元的可读信号量、共享内存单元中存在可缓存备份数据的数据内存,共享内存单元的可写信号量;读取数据对象池中的所述可读备份数据的可读信号量和可写备份数据的可写信号量,根据读取到的可读备份数据的可读信号量和可写备份数据的可写信号量,以令介质管理层进程和备份进程分别执行针对备份数据的异步操作。本发明从总体上提升了Oracle单通道备份性能,提高了Oracle大数据量备份速度。
Description
技术领域
本发明属于结构化数据保护技术领域,涉及一种控制方法及系统,特别是涉及一种数据库备份性能的控制方法、系统及服务器。
背景技术
Oracle提供一套介质管理层的接口(Media Management Layer(MML)API),让第三方厂商构建自己的介质管理器(Media Manager)。通常的做法是,通过MML从Oracle获取备份数据,然后共享给第三方厂商的备份进程,由备份进程将备份数据发送到介质池中。
Oracle服务器的备份速度能达到每秒成百上千兆。也就是说,MML进程与备份进程之间的消息通信的压力很大,每秒要共享大量的数据。进程间的消息通信带来的性能损耗,直接影响到Oracle备份性能。
现有oracle备份方案,存在如下2个问题:
第一,Oracle备份的时候,备份进程会与MML进程做交互。每读完一个256KB的块,就会各收发一次消息。假如备份速度是400M/s,那么,每秒需要等待消息400M/256Kb*2=3200个。
第二,MML进程读完一个数据块,需要等备份进程把数据处理完,才会让MML读下一个数据块。2个进程间,是一个同步的过程。
请参阅图1,显示为现有技术中备份的技术原理示意图。MML进程负责获取oracle备份数据,备份进程负责将备份数据发送到介质池。
MML进程和备份进程的同步,表现在:MML进程获取完一个数据块之后,需要备份进程发送到介质池。备份进程发送完之后,通知MML进程获取数据。也就是说,发送数据的时候,MML进程不会获取数据。MML进程获取数据的时候,备份进程不会发送数据。
因此,如何提供一种数据库备份性能的控制方法、系统及服务器,以解决现有技术中Oracle备份方案,MML进程和备份进程之间需同步才能完成数据的备份,而导致备份速度降低,损耗备份性能等缺陷,实以成为本领域从业者亟待解决的技术问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种数据库备份性能的控制方法、系统及服务器,用于解决现有技术中Oracle备份方案,MML进程和备份进程之间需同步才能完成数据的备份,而导致备份速度降低,损耗备份性能的问题。
为实现上述目的及其他相关目的,本发明一方面提供一种数据库备份性能的控制方法,、应用在介质管理层进程与备份进程的数据交互过程中,所述介质管理层进程用以从数据库获取备份数据,所述备份进程用于从所述介质管理层进程中共享备份数据,并将其发送;所述数据库备份性能的控制系统包括以下步骤:在所述介质管理层进程和备份进程之间,创建一用于辅助所述介质管理层进程与备份进程数据交互的数据对象池;所述数据对象池包括至少一个用以缓存备份数据的共享内存单元、所述共享内存单元中已缓存有备份数据,可读该共享内存单元的可读信号量、所述共享内存单元中存在可缓存备份数据的数据内存,该共享内存单元的可写信号量;读取所述数据对象池中的所述共享内存单元的可读信号量和所述共享内存单元的可写信号量,根据读取到的可读备份数据的可读信号量和可写备份数据的可写信号量,以便令所述介质管理层进程和备份进程分别执行针对备份数据的异步操作。
于本发明的一实施例中,所述可读备份数据的可读信号量和可写备份数据的可写信号量用1或0表示。
于本发明的一实施例中,所述介质管理层进程和备份进程分别执行针对备份数据的异步操作包括:当所述共享内存单元的可写信号量为1,所述共享内存单元的可读信号量为0时,令所述介质管理层进程可以从数据库中获取备份数据,将获取到的备份数据写入可缓存备份数据的一共享内存单元中;待所述介质管理层进程正在从数据库获取备份数据时,所述可写备份数据的可写信号量为0,所述可读备份数据的可读信号量为0,将备份数据写入一共享内存单元;待备份数据在该共享内存单元写入完毕,所述共享内存单元的可写信号量为0,所述共享内存单元的可读信号量为1,令所述备份进程将写入到共享内存单元中的备份数据发送至第三方;待所述备份进程正在发送备份数据时,所述共享内存单元的可写信号量为0,所述共享内存单元的可读信号量为0,直至将缓存在共享内存单元的备份数据的全部发送。
于本发明的一实施例中,所述数据对象池中还包括用以表示缓存备份数据的地址的所述每一个共享内存单元的指针;与每一个共享内存单元对应的、且用以标识所述共享内存单元中备份数据的属性信息的消息队列;所述备份数据的属性信息包括备份数据的名称,和/或备份数据的大小;和/或用以记录不同已缓存的备份数据的数据大小的数据记录器。
于本发明的一实施例中,在针对备份数据的异步操作过程中,所述备份进程获取所述介质管理层进程发送的包括缓存在一共享内存单元中备份数据的名称的第一消息,和/或用以表示一备份数据在该共享内存单元中已结束,且在一个共享内存单元内表示缓存已从一备份数据偏移到另一备份数据的偏移量的第二消息。
于本发明的一实施例中,在针对备份数据的异步操作过程中,所述备份进程从所述消息队列中获取所述第一消息和第二消息。
本发明另一方面提供一种数据库备份性能的控制系统,应用在介质管理层进程与备份进程的数据交互过程中,所述介质管理层进程用以从数据库获取备份数据,所述备份进程用于从所述介质管理层进程中共享备份数据,并将其发送;所述数据库备份性能的控制系统包括:创建模块,用于在所述介质管理层进程和备份进程之间,创建一用于辅助所述介质管理层进程与备份进程数据交互的数据对象池;所述数据对象池包括至少一个用以缓存备份数据的共享内存单元、所述共享内存单元中已缓存有备份数据,可读该共享内存单元的可读信号量、所述共享内存单元中存在可缓存备份数据的数据内存,该共享内存单元的可写信号量;操作模块,用于读取所述数据对象池中的所述共享内存单元的可读信号量和所述共享内存单元的可写信号量,根据读取到的可读备份数据的可读信号量和可写备份数据的可写信号量,以便令所述介质管理层进程和备份进程分别执行针对备份数据的异步操作。
于本发明的一实施例中,所述共享内存单元的可读信号量和共享内存单元的可写信号量用1或0表示;当所述共享内存单元的可写信号量为1,所述共享内存单元的可写信号量为0时,所述操作模块令所述介质管理层进程可以从数据库中获取备份数据,将获取到的备份数据写入可缓存备份数据的一共享内存单元中;待所述介质管理层进程正在从数据库获取备份数据时,所述共享内存单元的可写信号量为0,所述共享内存单元的可读信号量为0,将备份数据写入一共享内存单元;待备份数据的在该共享内存单元写入完毕,所述共享内存单元的可读信号量为0,所述共享内存单元的可写信号量为1,所述操作模块令所述备份进程将写入到共享内存单元中的备份数据发送至第三方;待所述备份进程正在发送备份数据时,所述共享内存单元的可写信号量为0,所述共享内存单元的可读信号量为0,直至将缓存在共享内存单元的备份数据的全部发送。
于本发明的一实施例中,所述数据对象池中还包括用以表示缓存备份数据的地址的所述每一个共享内存单元的指针,与每一个共享内存单元对应的、且用以标识所述共享内存单元中备份数据的属性信息的消息队列,和/或用以记录不同已缓存的备份数据的数据大小的数据记录器;所述备份数据的属性信息包括备份数据的名称,和/或备份数据的大小;所述备份进程获取所述介质管理层进程发送的包括缓存在一共享内存单元中备份数据的名称的第一消息,和/或用以表示一备份数据在该共享内存单元中已结束,且在一个共享内存单元内表示缓存已从一备份数据偏移到另一备份数据的偏移量的第二消息;所述备份进程从所述消息队列中获取所述第一消息和第二消息。
本发明又一方面提供一种服务器,所述服务器包括所述的数据库备份性能的控制系统。
如上所述,本发明的数据库备份性能的控制方法、系统及服务器,具有以下有益效果:
本发明所述的数据库备份性能的控制方法、系统及服务器让MML进程在等待数据发送的过程中,也能继续获取备份数据,提高MML进程获取备份数据的能力;让备份进程在等待获取备份数据的过程中,发送备份数据,提高备份进程发送数据的能力,从总体上提升了Oracle单通道备份性能,提高了Oracle大数据量备份速度。
附图说明
图1显示为现有技术中备份的技术原理示意图。
图2显示为本发明的备份的技术原理示意图。
图3显示为本发明的数据库备份性能的控制方法于一实施例中的流程示意图。
图4显示为本发明的数据库备份性能的控制方法中创建的数据对象池于一个实施例中的原理结构示意图。
图5显示为本发明的数据库备份性能的控制系统于一实施例中的原理结构示意图。
图6显示为本发明的服务器于一实施例中的原理结构示意图。
元件标号说明
1 数据对象池
11A, 共享内存单元
11B,
11C,及
11D
2 数据库备份性能的控制系统
21 创建模块
22 操作模块
3 服务器
S1~S2 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
请参阅图2,显示为本发明的备份技术原理示意图。如图2所示,本发明所提供的数据库备份性能的控制方法、系统及服务器技术原理为:MML进程与备份进程的交互,是个异步的交互。只要数据对象池中的有可写的备份数据(只要数据对象池中存在空间,就源源不断将备份数据丢进数据对象池),MML进程就会去获取新的备份数据填充对象池,然后将数据对象池的状态设置为可读。只要数据对象池中有可读的备份数据(备份进程不断从数据对象池中获取备份数据),备份进程就会发送,并重新将数据对象池设置为可写状态。
实施例一
本实施例提供一种数据库备份性能的控制方法,应用在介质管理层进程与备份进程的数据交互过程中,所述介质管理层进程用以从数据库获取备份数据的介质管理层进程,所述备份进程用于从所述介质管理层进程中共享备份数据,并将其发送;所述数据库备份性能的控制系统包括以下步骤:
在所述介质管理层进程和备份进程之间,创建一用于辅助所述介质管理层进程与备份进程数据交互的数据对象池;所述数据对象池包括至少一个用以缓存备份数据的共享内存单元、所述共享内存单元中已缓存有备份数据,可读该共享内存单元的可读信号量、所述共享内存单元中存在可缓存备份数据的数据内存,该共享内存单元的可写信号量;
读取所述数据对象池中的所述共享内存单元的可读信号量和可写备份数据的可写信号量,根据读取到的可读备份数据的可读信号量和可写备份数据的可写信号量,以便令所述介质管理层进程和备份进程分别执行针对备份数据的异步操作。
以下将结合图示对本实施例所述的数据库备份性能的控制方法进行详细描述。本实施例所述的数据库备份性能的控制方法应用在介质管理层进程与备份进程的数据交互过程中。在所述介质管理层进程在交互过程中用于从指定数据库中获取备份数据,并将获取到的备份数据缓存于创建的数据对象池中。于本实施例中,所述指定数据库为Oracle数据库。所述备份数据用于从创建的数据对象池中获取备份数据,将获取到的备份数据发送到第三方的介质池。
请参阅图3,显示为数据库备份性能的控制方法于一实施例中的流程示意图。如图3所示,所述数据库备份性能的控制方法具体包括以下几个步骤:
S1,在所述介质管理层进程和备份进程之间,创建一用于辅助所述介质管理层进程与备份进程数据交互的数据对象池1。在本实施例中,所述数据对象池1包括至少一个用以缓存备份数据的共享内存单元11、所述共享内存单元中已缓存有备份数据,可读该共享内存单元的可读信号量、所述共享内存单元中存在可缓存备份数据的内存,该共享内存单元的可写信号量、用以表示缓存备份数据的地址的所述每一个共享内存单元的指针、与每一个共享内存单元对应的,且用以标识所述共享内存单元中备份数据的属性信息的消息队列、和/或用以记录不同已缓存的备份数据的数据大小的数据,以防备份进程读取错备份数据的记录器;所述备份数据的属性信息包括备份数据的名称,和/或备份数据的大小。
请参阅图4,显示为创建的数据对象池于一个实施例中的原理结构示意图。如图4所示,所述数据对象池包括4个共享内存单元11,即共享内存单元11A,11B,11C,及11D,每个共享内存单元的数据存储量为1MB。在本实施例中,所述可读备份数据的可读信号量和可写备份数据的可写信号量用1或0表示。
S2,读取所述数据对象池中的所述共享内存单元的可读信号量和所述共享内存单元的可写信号量,根据读取到的所述共享内存单元的可读信号量和所述共享内存单元的可写信号量,以便令所述介质管理层进程和备份进程分别执行针对备份数据的异步操作。
本实施例中,所述令所述介质管理层进程和备份进程分别执行针对备份数据的异步操作的步骤具体包括:
当所述共享内存单元的可写信号量为1,所述共享内存单元的可读信号量为0时,令所述介质管理层进程可以从数据库中获取备份数据,将获取到的备份数据写入可缓存备份数据的一共享内存单元中;待所述介质管理层进程正在从数据库获取备份数据时,所述共享内存单元的可写信号量为0,所述共享内存单元的可读信号量为0,将备份数据写入一共享内存单元;
待备份数据在该共享内存单元写入完毕,所述共享内存单元的可写信号量为0,所述可共享内存单元的可读信号量为1,令所述备份进程将写入到共享内存单元中的备份数据发送至第三方;待所述备份进程正在发送备份数据时,所述共享内存单元的可写信号量为0,所述共享内存单元的可读信号量为0,直至将缓存在共享内存单元的备份数据的全部发送。
在针对所述备份数据的异步操作过程中,所述备份进程只需要等待所述介质管理层进程发送的两个消息,且所述备份进程受这两个消息控制。所述备份进程从所述消息队列中获取到所述介质管理层进程发送的包括缓存在一共享内存单元中备份数据的名称以表示备份可以开始的第一消息,和/或用以表示一备份数据在该共享内存单元中已结束,且在一个共享内存单元内表示缓存已从一备份数据偏移到另一备份数据的偏移量的第二消息。
在本实施例中,介质管理层进程从Oracle数据库依次获取备份数据E,备份数据F,备份数据G,备份数据H,备份数据I,并以此将获取到的备份数据E,备份数据F,备份数据G,备份数据H,备份数据I写入共享内存单元中。备份进程从不同共享内存单元中获取备份数据的名称,备份数据E,备份数据F,备份数据G,备份数据H,备份数据I,并将它们依次全部发送到第三方。其中,所述备份数据E的数据大小为512KB,备份数据F的数据大小为(2MB+256KB)2.25MB,备份数据G的数据大小为512KB,备份数据H的数据大小为512KB,备份数据I的数据大小为256KB。
继续参阅图4,共享内存单元11A中存放备份数据E和备份数据F,其中,0~512KB的数据内存区是备份数据E;512BK~1024KB的数据内存区属于备份数据F。
共享内存单元11B中存放备份数据F,其中,0~1024KB的数据内存区属于备份数据F。
共享内存单元11C中存放备份数据F和备份数据G,其中,0~768KB的数据内存区属于备份数据F,768KB~1024KB的数据内存区属于备份数据G。
共享内存单元11D中存放备份数据G,备份数据H,备份数据I,其中,0~256KB的数据内存区属于备份数据G,256KB~768KB的数据内存区属于备份数据H,768KB以后的数据内存区属于备份数据I。
在本实施例中,所述备份进程从与共享内存单元11A对应的消息队列12中获取到包括备份数据的名称的第一消息和包括共享内存单元11A内表示缓存已从一备份数据E偏移到另一备份数据F的偏移量的第二消息:即备份数据E和备份数据F,在共享内存单元11A中从备份数据E偏移到备份数据F的偏移量为512KB。在本实施例中,不管备份数据的大小为30GB,还是30TB,备份进程仅单方面等待第一消息和第二消息。因此,提升了Oracle数据库大数据量备份数据的备份速度。
在本实施例中,令所述介质管理层进程和备份进程分别执行针对备份数据的异步操作的具体过程为:
所述共享内存单元的可写信号量为1,所述共享内存单元的可读信号量为0时,所述介质管理层进程可以获取备份数据E,即所述介质管理层进程从Oracle数据库获取到备份数据E,并将备份数据E写入到所述共享内存单元11A中;在所述介质管理层进程正在获取备份数据E时,所述共享内存单元的可写信号量置为0,所述共享内存单元的可读信号量置为0;待结束备份数据E的写入过程后,所述介质管理层进程同时将备份数据F写入到共享内存单元11A内。
待所述备份数据E全部写入所述共享内存单元11A中后,将所述共享内存单元的可读信号量置为1,所述共享内存单元的可写信号置为0,所述备份进程从与共享内存单元11A对应的消息队列中读取所述第一消息(所述第一消息中的备份数据名称:备份数据E),备份开始,将备份数据E将写入到共享内存单元11A中的备份数据E发送至第三方;在所述备份进程将备份数据E正在发送备份数据E时,所述所述的可写信号量置为0,所述所述的可读信号量置为0。待结束备份数据E的读取过程后,所述介质管理层进程同时获取别的备份数据,别的备份数据写入到原缓存备份数据E的内存位置处。所述备份进程从与共享内存单元11A对应的消息队列中读取到所述第二消息(偏移量512KB)时,表示备份数据E的备份结束。
备份进程从与共享内存单元11B对应的消息队列中读取到备份数据的名称备份数据F,并没有读取到偏移量,说明共享内存单元11B全部为备份数据F。
继续参阅图4,令所述介质管理层进程和备份进程分别执行针对备份数据的异步操作简而言之就是:
在共享内存单元11C中,备份进程读取备份数据G,MML(介质管理层)进程往768KB~1024KB的内存区写入备份数据I。2个进程可以同时进行。
备份进程读完备份数据F之后,将共享内存单元11A中512BK~1024KB的数据内存区,共享内存单元11B,共享内存单元11C中768KB~1024KB的数据内存区至于可写状态。然后请求读取下一个备份数据G。等待缓存备份数据G的数据内存区处于可读状态时,读取备份数据G。
MML进程将共享内存单元11C中768KB~1024KB的数据内存区填满,并将备份数据G剩余部分写入共享内存单元11D的0~256KB的数据内存区,将缓存备份数据G的数据内存区置于可读状态。然后请求下一个备份数据H。等待备份数据H全部填充在共享内存单元11D的256KB~768KB的数据内存区,缓存备份数据H的数据内存区处于可写状态时,备份进程读取备份数据H,同时将备份数据I填充至共享内存单元11D的768KB以后的数据内存区。
本实施例所述的数据库备份性能的控制方法让MML进程在等待数据发送的过程中,也能继续获取备份数据,提高MML进程获取备份数据的能力;让备份进程在等待获取备份数据的过程中,发送备份数据,提高备份进程发送数据的能力,从总体上提升了Oracle单通道备份性能,提高了Oracle大数据量备份速度。
实施例二
本实施例提供一种数据库备份性能的控制系统,该控制系统应用在介质管理层进程与备份进程的数据交互过程中。在所述介质管理层进程在交互过程中用于从指定数据库中获取备份数据,并将获取到的备份数据缓存于创建的数据对象池中。于本实施例中,所述指定数据库为Oracle数据库。所述备份数据用于从创建的数据对象池中获取备份数据,将获取到的备份数据发送到第三方的介质池。请参阅图5,显示为数据库备份性能的控制系统于一实施例中的原理结构示意图。如图5所示,所述数据库备份性能的控制系统2包括:创建模块21和操作模块22。
创建模块21用于在所述介质管理层进程和备份进程之间,创建一用于辅助所述介质管理层进程与备份进程数据交互的数据对象池1。在本实施例中,所述数据对象池1包括至少一个用以缓存备份数据的共享内存单元11、所述共享内存单元中已缓存有备份数据,可读所述共享内存单元的可读信号量、所述共享内存单元中存在可缓存备份数据的内存,所述共享内存单元的可写信号量、用以表示缓存备份数据的地址的所述每一个共享内存单元的指针、与每一个共享内存单元对应的,且用以标识所述共享内存单元中备份数据的属性信息的消息队列、和/或和/或用以记录不同已缓存的备份数据的数据大小的数据,以防备份进程读取错备份数据的记录器;所述备份数据的属性信息包括备份数据的名称,和/或备份数据的大小。
与所述创建模块21连接的操作模块22用于读取所述数据对象池中的所述共享内存单元的可读信号量和所述共享内存单元的可写信号量,根据读取到的所述共享内存单元的可读信号量和共享内存单元的可写信号量,以便令所述介质管理层进程和备份进程分别执行针对备份数据的异步操作。在本实施例中,所述共享内存单元的可读信号量和所述共享内存单元的可写信号量用1或0表示。所述操作模块22具体用于:
当所述所述的可写信号量为1,所述所述的可写信号量为0时,所述操作模块22令所述介质管理层进程可以从数据库中获取备份数据,将获取到的备份数据写入可缓存备份数据的一共享内存单元中;待所述介质管理层进程正在从数据库获取备份数据时,所述所述的可写信号量为0,所述所述的可读信号量为0,将备份数据写入一共享内存单元;
待备份数据在该共享内存单元写入完毕,所述所述的可读信号量为0,所述所述的可写信号量为1,所述操作模块22令所述备份进程将写入到共享内存单元中的备份数据发送至第三方;待所述备份进程正在发送备份数据时,所述所述的可写信号量为0,所述所述的可读信号量为0,直至将缓存在共享内存单元的备份数据的全部发送。
在本实施例中,在针对备份数据的异步操作过程中,所述备份进程获取所述介质管理层进程发送的包括缓存在一共享内存单元中备份数据的名称的第一消息,和/或用以表示一备份数据在该共享内存单元中已结束,且在一个共享内存单元内表示缓存已从一备份数据偏移到另一备份数据的偏移量的第二消息;所述备份进程从所述消息队列中获取所述第一消息和第二消息。
本实施例还提供一种服务器3,请参阅图6,显示为服务器于一实施例中的原理结构示意图。如图6所示,所述服务器3包括上述的数据库备份性能的控制系统2。
综上所述,本发明所述的数据库备份性能的控制方法、系统及服务器让MML进程在等待数据发送的过程中,也能继续获取备份数据,提高MML进程获取备份数据的能力;让备份进程在等待获取备份数据的过程中,发送备份数据,提高备份进程发送数据的能力,从总体上提升了Oracle单通道备份性能,提高了Oracle大数据量备份速度。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (8)
1.一种数据库备份性能的控制方法,其特征在于,应用在介质管理层进程与备份进程的数据交互过程中,所述介质管理层进程用以从数据库获取备份数据,所述备份进程用于从所述介质管理层进程中共享备份数据,并将其发送;所述数据库备份性能的控制系统包括以下步骤:
在所述介质管理层进程和备份进程之间,创建一用于辅助所述介质管理层进程与备份进程数据交互的数据对象池;所述数据对象池包括至少一个用以缓存备份数据的共享内存单元、所述共享内存单元中已缓存有备份数据、可读该共享内存单元的可读信号量、所述共享内存单元中存在可缓存备份数据的数据内存、该共享内存单元的可写信号量、用以表示缓存备份数据的地址的所述每一个共享内存单元的指针、与每一个共享内存单元对应的、且用以标识所述共享内存单元中备份数据的属性信息的消息队列、和/或用以记录不同已缓存的备份数据的数据大小的数据记录器;所述备份数据的属性信息包括备份数据的名称,和/或备份数据的大小;
读取所述数据对象池中的所述共享内存单元的可读信号量和所述共享内存单元的可写信号量,根据读取到的可读备份数据的可读信号量和可写备份数据的可写信号量,以便令所述介质管理层进程和备份进程分别执行针对备份数据的异步操作;在针对备份数据的异步操作过程中,所述备份进程获取所述介质管理层进程发送的包括缓存在一共享内存单元中备份数据的名称的第一消息,和/或用以表示一备份数据在该共享内存单元中已结束,且在一个共享内存单元内表示缓存已从一备份数据偏移到另一备份数据的偏移量的第二消息。
2.根据权利要求1所述的数据库备份性能的控制方法,其特征在于:所述可读备份数据的可读信号量和可写备份数据的可写信号量用1或0表示。
3.根据权利要求2所述的数据库备份性能的控制方法,其特征在于:所述介质管理层进程和备份进程分别执行针对备份数据的异步操作包括:
当所述共享内存单元的可写信号量为1,所述共享内存单元的可读信号量为0时,令所述介质管理层进程可以从数据库中获取备份数据,将获取到的备份数据写入可缓存备份数据的一共享内存单元中;待所述介质管理层进程正在从数据库获取备份数据时,所述可写备份数据的可写信号量为0,所述可读备份数据的可读信号量为0,将备份数据写入一共享内存单元;
待备份数据在该共享内存单元写入完毕,所述共享内存单元的可写信号量为0,所述共享内存单元的可读信号量为1,令所述备份进程将写入到共享内存单元中的备份数据发送至第三方;待所述备份进程正在发送备份数据时,所述共享内存单元的可写信号量为0,所述共享内存单元的可读信号量为0,直至将缓存在共享内存单元的备份数据的全部发送。
4.根据权利要求1所述的数据库备份性能的控制方法,其特征在于:在针对备份数据的异步操作过程中,所述备份进程从所述消息队列中获取所述第一消息和第二消息。
5.一种数据库备份性能的控制系统,其特征在于,应用在介质管理层进程与备份进程的数据交互过程中,所述介质管理层进程用以从数据库获取备份数据,所述备份进程用于从所述介质管理层进程中共享备份数据,并将其发送;所述数据库备份性能的控制系统包括:
创建模块,用于在所述介质管理层进程和备份进程之间,创建一用于辅助所述介质管理层进程与备份进程数据交互的数据对象池;所述数据对象池包括至少一个用以缓存备份数据的共享内存单元、所述共享内存单元中已缓存有备份数据、可读该共享内存单元的可读信号量、所述共享内存单元中存在可缓存备份数据的数据内存、该共享内存单元的可写信号量、用以表示缓存备份数据的地址的所述每一个共享内存单元的指针、与每一个共享内存单元对应的、且用以标识所述共享内存单元中备份数据的属性信息的消息队列、和/或用以记录不同已缓存的备份数据的数据大小的数据记录器;所述备份数据的属性信息包括备份数据的名称,和/或备份数据的大小;
操作模块,用于读取所述数据对象池中的所述共享内存单元的可读信号量和所述共享内存单元的可写信号量,根据读取到的可读备份数据的可读信号量和可写备份数据的可写信号量,以便令所述介质管理层进程和备份进程分别执行针对备份数据的异步操作;在针对备份数据的异步操作过程中,所述备份进程获取所述介质管理层进程发送的包括缓存在一共享内存单元中备份数据的名称的第一消息,和/或用以表示一备份数据在该共享内存单元中已结束,且在一个共享内存单元内表示缓存已从一备份数据偏移到另一备份数据的偏移量的第二消息。
6.根据权利要求5所述的数据库备份性能的控制系统,其特征在于:所述共享内存单元的可读信号量和共享内存单元的可写信号量用1或0表示;
当所述共享内存单元的可写信号量为1,所述共享内存单元的可写信号量为0时,所述操作模块令所述介质管理层进程可以从数据库中获取备份数据,将获取到的备份数据写入可缓存备份数据的一共享内存单元中;待所述介质管理层进程正在从数据库获取备份数据时,所述共享内存单元的可写信号量为0,所述共享内存单元的可读信号量为0,将备份数据写入一共享内存单元;
待备份数据的在该共享内存单元写入完毕,所述共享内存单元的可读信号量为0,所述共享内存单元的可写信号量为1,所述操作模块令所述备份进程将写入到共享内存单元中的备份数据发送至第三方;待所述备份进程正在发送备份数据时,所述共享内存单元的可写信号量为0,所述共享内存单元的可读信号量为0,直至将缓存在共享内存单元的备份数据的全部发送。
7.根据权利要求5所述的数据库备份性能的控制系统,其特征在于:所述数据对象池中还包括用以表示缓存备份数据的地址的所述每一个共享内存单元的指针,与每一个共享内存单元对应的、且用以标识所述共享内存单元中备份数据的属性信息的消息队列,和/或用以记录不同已缓存的备份数据的数据大小的数据记录器;所述备份数据的属性信息包括备份数据的名称,和/或备份数据的大小;所述备份进程获取所述介质管理层进程发送的包括缓存在一共享内存单元中备份数据的名称的第一消息,和/或用以表示一备份数据在该共享内存单元中已结束,且在一个共享内存单元内表示缓存已从一备份数据偏移到另一备份数据的偏移量的第二消息;所述备份进程从所述消息队列中获取所述第一消息和第二消息。
8.一种服务器,其特征在于,所述服务器包括如权利要求5-7中任一项所述的数据库备份性能的控制系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611241663.8A CN106776145B (zh) | 2016-12-29 | 2016-12-29 | 数据库备份性能的控制方法、系统及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611241663.8A CN106776145B (zh) | 2016-12-29 | 2016-12-29 | 数据库备份性能的控制方法、系统及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106776145A CN106776145A (zh) | 2017-05-31 |
CN106776145B true CN106776145B (zh) | 2020-04-03 |
Family
ID=58923561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611241663.8A Active CN106776145B (zh) | 2016-12-29 | 2016-12-29 | 数据库备份性能的控制方法、系统及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106776145B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414946B (zh) * | 2008-11-21 | 2011-11-16 | 上海爱数软件有限公司 | 一种远程数据备份方法及介质服务器 |
CN102004743B (zh) * | 2009-09-02 | 2013-08-14 | 中国银联股份有限公司 | 一种用于异构数据库之间数据复制的系统及方法 |
CN104424030A (zh) * | 2013-08-22 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 多进程操作共享内存的方法和装置 |
CN105512240A (zh) * | 2015-11-30 | 2016-04-20 | 中国建设银行股份有限公司 | 一种基于不同数据库的数据复制方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8433684B2 (en) * | 2010-03-30 | 2013-04-30 | Sybase, Inc. | Managing data backup of an in-memory database in a database management system |
GB2529403A (en) * | 2014-08-18 | 2016-02-24 | Ibm | A Method of operating a shared nothing cluster system |
-
2016
- 2016-12-29 CN CN201611241663.8A patent/CN106776145B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101414946B (zh) * | 2008-11-21 | 2011-11-16 | 上海爱数软件有限公司 | 一种远程数据备份方法及介质服务器 |
CN102004743B (zh) * | 2009-09-02 | 2013-08-14 | 中国银联股份有限公司 | 一种用于异构数据库之间数据复制的系统及方法 |
CN104424030A (zh) * | 2013-08-22 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 多进程操作共享内存的方法和装置 |
CN105512240A (zh) * | 2015-11-30 | 2016-04-20 | 中国建设银行股份有限公司 | 一种基于不同数据库的数据复制方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106776145A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112948318B (zh) | 一种Linux操作系统下基于RDMA的数据传输方法及装置 | |
KR20190105492A (ko) | Fpga 기반 가속화를 위한 새로운 ssd 구조 | |
CN109388590B (zh) | 提升多通道dma访问性能的动态缓存块管理方法和装置 | |
CN106126374B (zh) | 数据写入方法、数据读取方法及装置 | |
WO2017148242A1 (zh) | 一种访问叠瓦式磁记录smr硬盘的方法及服务器 | |
CN109902034B (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
US10922276B2 (en) | Online file system check | |
CN110532123B (zh) | HBase系统的故障转移方法及装置 | |
US20180364915A1 (en) | Method and system for distributed storage using client-side global persistent cache | |
US20220083281A1 (en) | Reading and writing of distributed block storage system | |
CN107329704A (zh) | 一种缓存镜像方法及控制器 | |
TW201619846A (zh) | 備份系統及其備份方法 | |
CN105095113A (zh) | 一种缓存管理方法和系统 | |
WO2018103022A1 (zh) | 帧缓存实现方法、装置、电子设备和计算机程序产品 | |
CN106095331B (zh) | 一种固定大文件内部资源的控制方法 | |
CN113434470B (zh) | 数据分布方法、装置及电子设备 | |
WO2016206070A1 (zh) | 一种文件更新方法及存储设备 | |
WO2014190700A1 (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
CN116431080B (zh) | 一种数据落盘方法、系统、设备及计算机可读存储介质 | |
CN106776145B (zh) | 数据库备份性能的控制方法、系统及服务器 | |
CN116755625A (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN109508140B (zh) | 存储资源管理方法、装置、电子设备及电子设备、系统 | |
CN112995257A (zh) | 基于云存储架构的缓存扩容方法、装置以及存储介质 | |
CN110795031A (zh) | 一种基于全闪存储的数据重删方法、装置和系统 | |
CN106845259B (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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Control methods, systems, and servers for database backup performance Effective date of registration: 20231115 Granted publication date: 20200403 Pledgee: Bank of Shanghai Limited by Share Ltd. Pudong branch Pledgor: SHANGHAI EISOO INFORMATION TECHNOLOGY Co.,Ltd. Registration number: Y2023310000743 |