一种数据库联机备份方法及系统的利记博彩app
【技术领域】
[0001 ]本发明涉及数据库领域,尤其涉及一种数据库联机备份方法及系统。
【背景技术】
[0002]目前,数据库备份是数据库系统容灾的重要手段。数据备份分为联机备份和脱机备份。联机备份指在数据库正常运行的情况下进行的备份;而脱机备份是指将数据库正常关闭后进行的备份。由于信息化的发展,当前很多数据库应用系统都处于每周7*24小时不间断运行状态,对其备份只能采用联机备份方式。
[0003]联机备份最终都是将备份命令发送给数据库管理系统,由其进行具体的备份工作。数据库管理系统在收到联机备份命令后,首先对备份环境进行检测,如是否重复生成备份文件或者增量备份,是否存在完全备份等;然后收集库中的数据和日志;最后,有规律地将收集的信息进行备份,生成备份文件,用于故障后的恢复。
[0004]数据库备份操作是一个会占用较多系统资源且较为耗时的操作,一般都推荐在应用系统不繁忙的时候进行备份。如果在备份进行过程中,又有突发情况需要进行大量数据库操作,可能因此希望中止备份。目前对于数据库备份的中止操作都是通过在操作系统层强制kill进行备份操作的进程来实现的。由于执行备份的进程常常还会启动子进程一同完成备份工作,有时kill进程并不能中止所有备份相关的进程;另外,由于备份进程是被强制退出而非正常结束,已经生成的备份文件无法被清理,甚至某些情况下会造成不可预计的后果,如数据损坏等,另一方面,若在备份过程中遇到不能预期(数据库管理系统程序不能进行处理)的错误,可能导致整个数据库管理系统运行故障,不能继续对外提供正常服务。
【发明内容】
[0005]本发明提供了一种数据库联机备份方法及系统,用于解决在备份过程中遭遇未预期的错误使备份过程失败,从而导致数据库系统异常的问题。
[0006]本发明实施例采用以下技术方案:
[0007]本发明提供了一种数据库联机备份方法,该方法包括:
[0008]备份主进程发送备份阶段命令给备份子进程,所述备份阶段命令用于命令所述备份子进程执行数据库联机备份中匹配的备份阶段操作;
[0009]判断备份主进程是否读取到备份子进程返回的执行操作完成信息;
[0010]若是,确定备份主进程读取到备份子进程发送的执行操作完成信息时为在预设第一等待时段内,确定数据库联机备份没有结束,则所述备份主进程顺序发送下一备份阶段命令给备份子进程;若否,确定备份主进程在预设第一等待时段内未读取到备份子进程发送的执行操作完成信息,则清空已备份数据并结束所述备份子进程。
[0011]优选的,所述确定备份主进程读取到备份子进程发送的执行操作完成信息时为在预设第一等待时段内之后,还包括,确定数据库联机备份已完成,则结束所述备份子进程。
[0012]优选的,所述判断备份主进程是否读取备份子进程返回的执行操作完成信息,具体为,周期性判断备份主进程是否读取用户干预和备份子进程返回的执行操作完成信息。
[0013]优选的,所述备份主进程发送备份阶段命令给备份子进程之后,还包括,确定备份主进程检测读取到备份子进程的错误报告,则清除已经备份数据,结束备份子进程,并返回子进程故障信息。
[0014]优选的,所述备份主进程发送备份阶段命令给备份子进程之后,还包括:
[0015]解析备份主进程读取到的用户干预;
[0016]若所述用户干预取消或所述用户干预会话中断,则清空已备份数据并结束所述备份子进程。
[0017]本发明还提供了一种数据库联机备份系统,该系统包括:
[0018]发送命令单元,用于备份主进程发送备份阶段命令给备份子进程,所述备份阶段命令用于命令所述备份子进程执行数据库联机备份中匹配的备份阶段操作;
[0019]第一判断单元,用于判断备份主进程是否读取到备份子进程返回的执行操作完成信息;
[0020]等待单元,用于确定备份主进程读取到备份子进程发送的执行操作完成信息时为在预设第一等待时段内,确定数据库联机备份没有结束,则所述备份主进程顺序发送下一备份阶段命令给备份子进程;若否,确定备份主进程在预设第一等待时段内未读取到备份子进程发送的执行操作完成信息,则清空已备份数据并结束所述备份子进程。
[0021]优选的,所述等待单元,具体用于:若是,确定备份主进程读取到备份子进程发送的执行操作完成信息时为在预设第一等待时段内,若确定数据库联机备份没有结束,则所述备份主进程顺序发送下一备份阶段命令给备份子进程,若确定数据库联机备份已完成,则结束所述备份子进程;若否,确定备份主进程在预设第一等待时段内未读取到备份子进程发送的执行操作完成信息,则清空已备份数据并结束所述备份子进程。
[0022]优选的,所述第一判断单元,具体用于:周期性判断备份主进程是否读取用户干预和备份子进程返回的执行操作完成信息。
[0023]优选的,还包括错误报告单元,用于确定备份主进程检测读取到备份子进程的错误报告,则清除已经备份数据,结束备份子进程,并返回子进程故障信息。
[0024]优选的,还包括:
[0025]用户干预解析单元,用于解析备份主进程读取到的用户干预;
[0026]用户干预执行单元,用于若所述用户干预取消或所述用户干预会话中断,则清空已备份数据并结束所述备份子进程。
[0027]优选的,还包括子进程读取命令单元,用于所述确定备份子进程在预设第一等待时段内未读取到备份阶段命令,则清空已备份数据并销毁备份子进程。
[0028]与现有技术相比,本发明提供的一种数据库联机备份方法及系统,具有以下有益效果:
[0029]将整个执行数据库联机备份过程分成若干备份阶段命令,将通过主进程推到子进程进行每步备份,主进程根据备份逻辑主动向子进程发送命令,子进程被动接收并执行,便于主进程控制备份子进程的执行;本发明将备份过程中阶段命令的设置和具体执行分离,将具体执行放到独立的备份子进程中,避免因具体执行过程异常,导致数据库系统异常。本发明允许在备份的过程中检测用户干预,接收用户的干预指令,将完整备份过程分解成多个阶段,便于在每个阶段间隔进行是否有用户干预操作的检查;备份主进程在向备份子进程发送执行命令后,能够继续周期性监测上层用户的干预操作,便于随时执行用户干预操作;通过备份子进程与备份主进程之间交互的测试监督,可以确保即使在备份过程中遭遇未预期的错误,备份的失败也不会导致数据库系统异常。
【附图说明】
[0030]图1是本发明提供的一种数据库联机备份方法的第一个实施例的方法流程图。
[0031]图2是本发明提供的一种数据库联机备份方法的第二个实施例的方法流程图一。
[0032]图3是本发明提供的一种数据库联机备份方法的第二个实施例的方法流程图二。
[0033]图4是本发明提供的一种数据库联机备份方法的第二个实施例的方法流程图三。
[0034]图5是本发明提供的一种数据库联机备份方法的第三个实施例的方法流程图。
[0035]图6是本发明提供的一种数据库联机备份系统的第一个实施例的结构框图。
[0036]图7是本发明提供的一种数据库联机备份系统的第二个实施例的结构框图。
[0037]图8是本发明提供的一种数据库联机备份系统的第三个实施例的结构框图。
[0038]图9是本发明提供的一种数据库联机备份方法及系统实施例中实例方法流程图
O
[0039]图10是本发明提供的一种数据库联机备份方法及系统实施例中实例方法流程图
--O
【具体实施方式】
[0040]为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0041]图1示出根据本发明提供的一种数据库联机备份方法第一个实施例的方法流程图。本实施例的一种数据库联机备份方法主要由数据库管理系统来实现,该方法包括以下步骤:
[0042]步骤11:备份主进程发送备份阶段命令给备份子进程,备份阶段命令用于命令备份子进程执行数据库联机备份中匹配的备份阶段操作。
[0043]具体的,备份主进程发送备份阶段命令给备份子进程,子进程执行数据库联机备份中匹配的备份阶段操作。其中,将数据库联机备份中各备份阶段操作都分别对应一个备份阶段命令。可以将数据库进程作为备份主进程负责各阶段命令的发出;备份阶段命令用于命令备份子进程执行数据库联机备份中匹配的备份阶段操作。一个完整的备份过程由一个备份主进程和一个备份子进程协作完成,备份主进程是发起备份阶段命令的进程,即数据库系统进程;备份子进程是接收备份阶段命令并执行具体阶段任务的进程。备份开始时,备份主进程创建备份子进程。
[0044]其中,备份主进程和备份子进程之间通过进程通信方式数据交互,可以为命名管道(PIPE)等。
[0045]例如,一般情况下,一个完整的数据库备份过程一般包括以下几个备份阶段操作:
[0046]I)备份命令解析,解析备份命令中携带的参数信息,如备份目标输出路径、备份是否加密压缩、是否为增量备份等;
[00