一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种嵌入式数据库镜像备份方法和系统与流程

2022-10-26 02:26:39 来源:中国专利 TAG:


1.本发明属于数据容灾备份技术领域,具体涉及一种嵌入式数据库镜像备份方法和系统。


背景技术:

2.中国专利“cn 101122924 a逻辑日志生成方法、数据库备份恢复方法与系统”。获取对数据库进行操作的操作请求中包含的操作描述;根据所述操作描述生成包含操作对象的唯一确定标识和操作类型标识的逻辑日志;其中,所述操作类型标识包含删除操作类型标识或覆盖操作类型标识;当所述操作类型标识为覆盖操作类型标识时,所述逻辑日志还包括对操作对象进行覆盖操作的覆盖数据。
3.中国专利“cn 101122924 a逻辑日志生成方法、数据库备份恢复方法与系统”,该专利需要生成专门的日志文件用于数据备份与恢复,这样需要在系统中进行额外的工作,增加专利复杂度,并且减低了系统效率。


技术实现要素:

4.(一)要解决的技术问题
5.本发明要解决的技术问题是如何提供一种嵌入式数据库镜像备份方法和系统,以解决现有技术中需要生成专门的日志文件用于数据备份与恢复,这样需要在系统中进行额外的工作,增加专利复杂度,并且减低了系统效率的问题。
6.(二)技术方案
7.为了解决上述技术问题,本发明提出一种嵌入式数据库镜像备份系统,该系统包括主数据库端和从数据库端,主数据库端和从数据库端之间通过网络连接,主数据库端包括数据库镜像备份模块dbmir,从数据库端包括数据库镜像备份模块dbmir和从数据库镜像备份控制模块dbmircon;数据库镜像备份模块 dbmir用于主从数据库端进行镜像备份的命令与日志文件交互,包括数据库镜像备份停止、数据库镜像备份启动和数据库镜像备份状态查询服务,从数据库镜像备份控制模块dbmircon用于向从数据库端发送信号,控制从数据库端连接主数据库端以及断开与主数据库端的连接;用户对嵌入式数据库的操作在主数据库端进行,该系统将主数据库端的操作同步到从数据库端,从而完成嵌入式数据库镜像备份。
8.进一步地,数据库镜像备份模块dbmir在主数据库端与从数据库端同时运行;在主数据库端,主数据库端的dbmir响应来自从数据库端dbmir的请求,对于来自从数据库端dbmir的初始请求,主数据库端将创建一个线程为镜像备份提供服务,该线程将专用于向从数据库端提供日志文件,直到从数据库停止连接,即该线程将接收来自从数据库的日志文件请求,并在本地目录中搜索每个日志文件,如果日志文件存在,它将其发送到从数据库端,如果它不存在,并且主数据库端已经完成对应事务,它将把整个数据库发送到从数据库端,之后从数据库端将只请求日志文件。
9.进一步地,数据库镜像备份模块dbmir包括指令处理子模块、备份状态子模块和网络处理子模块,指令处理子模块用于处理用户的命令,这些命令包括“停止mir”、“查询mir状态”与“启动mir”,该模块对应执行3个服务:停止镜像备份服务、查询镜像备份服务和启动镜像备份服务;备份状态子模块被指令处理子模块的启动镜像备份服务调用,提供初始化dbmir、运行dbmir、停止dbmir和终止dbmir函数;网络处理子模块创建套接字,用于网络连接,提供命令传输服务,用于传输命令字符信息,提供文件传输服务,用于传输日志文件。
10.进一步地,所述停止镜像备份服务,向镜像备份服务的端口发送“dbmirshutdown”字符串,在主数据库端停止镜像备份服务后,不再接收从数据库端的连接;在从数据库端停止镜像备份服务后,不再向主数据库发送请求日志消息。
11.进一步地,所述查询镜像备份服务,通过连接镜像备份服务端口,连接成功表示镜像备份服务存在,否则认为镜像备份服务不存在。
12.进一步地,所述启动镜像备份服务打开监听端口,并初始化句柄,等待从数据库镜像备份控制模块dbmircon发送连接与断开连接的信号。
13.进一步地,所述启动镜像备份服务具体流程为:
14.s61、打开管道,启动一个任务;
15.s62、运行初始化dbmir函数,申请镜像备份运行过程中需要的资源;若不成功,关闭管道,删除启动的任务,结束本模块;若成功则继续执行下面流程;
16.s63、运行dbmir函数,锁定当前目录,防止多个dbmir程序启动,并打开网络套接字,打开监听端口功能;若不成功,运行终止dbmir函数,结束本模块;若成功则继续执行下面流程;
17.s64、一直休眠20秒,直到接收到终止信号为止;
18.s65、接收到终止信号后,运行停止mir函数,再运行终止dbmir函数,结束本服务。
19.进一步地,所述初始化dbmir函数设置镜像备份参数,初始化从数据库运行过程中需要的资源,初始化主数据库运行过程中需要的资源;所述运行dbmir 函数对当前路径加锁,保证本机只有一个服务;初始化网络服务;开启端口监听服务;所述停止dbmir函数首先对当前路径解锁,允许本次退出后可以再次启动dbmir,向服务发送停止信号;所述终止dbmir函数释放从数据库运行过程中申请要的资源,释放主数据库端运行过程中申请的资源。
20.进一步地,所述从数据库镜像备份控制模块dbmircon控制从数据库端连接主数据库端以及与主数据库端断开连接;包括两个子模块:发送运行mir信号子模块和发送停止dbmir信号子模块;发送运行mir信号子模块配置镜像备份,包括传输协议,服务器ip地址与端口号;连接从数据库端的dbmir,发送dbmir 启动信号;发送停止dbmir信号子模块配置镜像备份,包括传输协议,服务器 ip地址与端口号;连接从数据库的dbmir,发送dbmir停止信号。
21.本发明还提供一种嵌入式数据库镜像备份方法,该方法包括:运行在主数据库端的每一个数据库事务在提交时,产生一个对应的日志文件,日志文件的名字与事务的序号保持一致;事务的序号是连续的无间隔的;运行在主数据库端的数据库系统检查点线程不断地扫描数据库目录下的日志文件,当发现新文件时,读取这些日志文件,并将读取到的内容更新到数据库中;在镜像备份服务开启期间,运行在主数据库端的检查点线程不会删除
处理过的日志文件,但会重命名,以便于镜像备份服务找到这些文件;从数据库端向主数据库端申请日志文件,当从数据库端收到日志文件后,将日志文件修改名称,并将日志文件更新到数据库中;本过程是不断重复的,直到从数据库端停止本次镜像备份服务。
22.(三)有益效果
23.本发明提出一种嵌入式数据库镜像备份方法和系统,本发明在主数据库端与从数据库端分别运行程序,在启动镜像备份时,可以复用数据库系统生成的日志文件,不会影响嵌入式数据库处理数据效率。本发明提供一种嵌入式镜像备份的处理方法,与现有技术相比,本发明的优势在于:可以复用数据库的日志文件,不用生成新的日志文件,减少镜像备份对整个系统运行效率。
附图说明
24.图1为本发明主从数据库交互过程;
25.图2为数据库镜像备份功能模块划分;
26.图3为指令处理模块流程图;
27.图4为停止镜像备份服务流程图;
28.图5为查询镜像备份服务状态流程图;
29.图6为启动镜像备份服务流程图;
30.图7为初始化mir运行流程图;
31.图8为运行dbmir流程图。
具体实施方式
32.为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
33.本发明提出一种嵌入式数据库镜像备份方法,该方法可以复用数据库的日志文件,不用生成新的日志文件,减少镜像备份对整个系统运行效率。
34.本发明的嵌入式数据库镜像备份系统包括主数据库端和从数据库端,主数据库端和从数据库端之间通过网络连接,主数据库端包括数据库镜像备份模块 (dbmir),从数据库端包括数据库镜像备份模块(dbmir)和从数据库镜像备份控制模块(dbmircon)。用户对嵌入式数据库的操作在主数据库端进行,通过本方法将主数据库端的操作同步到从数据库端,从而完成嵌入式数据库镜像备份。
35.本发明的镜像备份处理过程如下所述:
36.运行在主数据库端的每一个数据库事务在提交时,产生一个对应的日志文件,日志文件的名字与事务的序号保持一致。事务的序号是连续的无间隔的;运行在主数据库端的数据库系统检查点线程不断地扫描数据库目录下的日志文件,当发现新文件时,读取这些日志文件,并将读取到的内容更新到数据库中;在镜像备份服务开启期间,运行在主数据库端的检查点线程不会删除处理过的日志文件,但会重命名,以便于镜像备份服务找到这些文件;从数据库端向主数据库端申请日志文件,当从数据库端收到日志文件后,将日志文件修改名称,并将日志文件更新到数据库中。本过程是不断重复的,直到从数据库端停止本次镜像备份服务。
37.该过程由两个功能模块组成,模块一为数据库镜像备份模块(dbmir),该模块同时运行在主数据库端与从数据库端,用于主从数据库端进行镜像备份的命令与日志文件交互,包括数据库镜像备份停止、数据库镜像备份启动、数据库镜像备份状态查询服务。模块二为从数据库镜像备份控制模块(dbmircon),该模块运行在从数据库端,用于向从数据库端发送信号,控制从数据库端连接主数据库端以及断开与主数据库端的连接。主从数据库端交互过程如附图1所示。
38.模块一为数据库镜像备份模块(dbmir)。该模块在主数据库端与从数据库端同时运行。在主数据库端,主数据库端的dbmir响应来自从数据库端dbmir 的请求。对于来自从数据库端dbmir的初始请求,主数据库端将创建一个线程为镜像备份提供服务。该线程将专用于向从数据库端提供日志文件,直到从数据库停止连接。即该线程将接收来自从数据库的日志文件请求,并在本地目录中搜索每个日志文件。如果日志文件存在,它将其发送到从数据库端。如果它不存在,并且主数据库端已经完成对应事务,它将把整个数据库发送到从数据库端,之后从数据库端将只请求日志文件。数据库镜像备份模块功能划分如附图2所示。
39.数据库镜像备份模块(dbmir)的每个子模块的功能如下所述。
40.(1)指令处理子模块
41.该子模块主要用于处理用户的命令,这些命令包括“停止mir”、“查询mir 状态”与“启动mir”,该模块对应执行3个服务:停止镜像备份服务、查询镜像备份服务和启动镜像备份服务,流程图为附图3。其中,
42.1)停止镜像备份服务
43.停止镜像备份服务,向镜像备份服务的端口发送“dbmir shutdown”字符串。在主数据库端停止镜像备份服务后,不再接收从数据库端的连接;在从数据库端停止镜像备份服务后,不再向主数据库发送请求日志消息,参见附图4。
44.2)查询镜像备份服务
45.查询镜像备份服务,通过连接镜像备份服务端口,连接成功表示镜像备份服务存在,否则认为镜像备份服务不存在,参见附图5。
46.3)启动镜像备份服务
47.该模块将打开监听端口,并初始化句柄,等待从数据库镜像备份控制模块(dbmircon)发送连接与断开连接的信号,参见附图6。
48.启动镜像备份服务具体流程为:
49.s61、打开管道,启动一个任务;
50.s62、运行初始化dbmir函数,申请镜像备份运行过程中需要的资源;若不成功,关闭管道,删除启动的任务,结束本模块;若成功则继续执行下面流程;
51.s63、运行dbmir函数,该过程主要是锁定当前目录,防止多个dbmir程序启动,并打开网络套接字,打开监听端口功能;若不成功,运行终止dbmir函数,结束本模块;若成功则继续执行下面流程;
52.s64、一直休眠20秒,直到接收到终止信号为止;
53.s65、接收到终止信号后,运行停止mir函数,再运行终止dbmir函数,结束本服务。
54.(2)备份状态子模块
55.该模块为备份状态模块,该子模块内函数被指令处理子模块的启动镜像备份服务函数调用。包含附图7,附图8。具体包括:
56.1)初始化dbmir
57.设置镜像备份参数;初始化从数据库运行过程中需要的资源,初始化主数据库运行过程中需要的资源,参见附图7。
58.2)运行dbmir
59.对当前路径加锁,保证本机只有一个服务;初始化网络服务;开启端口监听服务,参见附图8。
60.3)停止dbmir
61.首先对当前路径解锁,允许本次退出后可以再次启动dbmir;向服务发送停止信号。
62.4)终止dbmir
63.释放从数据库运行过程中申请要的资源,释放主数据库端运行过程中申请的资源。
64.(3)网络处理子模块
65.该子模块为网络处理子模块,为了保证数据完整性,该子模块适用tcp协议,该子模块包括:1)创建套接字,用于网络连接;2)命令传输服务,用于传输命令等字符信息;3)文件传输服务,用于传输日志文件。
66.模块二为从数据库镜像备份控制模块(dbmircon)。该模块控制从数据库端连接主数据库端以及与主数据库端断开连接。
67.本模块包含的子模块有两个。
68.(1)发送运行mir信号子模块,该子模块具体流程为:
69.a)配置镜像备份,包括传输协议,服务器ip地址与端口号;
70.b)连接从数据库端的dbmir,发送dbmir启动信号。
71.(2)发送停止dbmir信号子模块,该子模块具体流程为:
72.a)配置镜像备份,包括传输协议,服务器ip地址与端口号;
73.b)连接从数据库的dbmir,发送dbmir停止信号。
74.通过以上步骤完成了嵌入式数据库镜像备份。
75.本发明设计了一种嵌入式数据库镜像备份方法,在主数据库端与从数据库端分别运行程序,在启动镜像备份时,可以复用数据库系统生成的日志文件,不会影响嵌入式数据库处理数据效率。
76.本发明提供一种嵌入式镜像备份的处理方法,与现有技术相比,本发明的优势在于:可以复用数据库的日志文件,不用生成新的日志文件,减少镜像备份对整个系统运行效率。
77.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献