数据库恢复方法、装置、计算机设备和存储介质
技术领域
本申请涉及数据库处理技术领域,特别是涉及一种数据库恢复方法、装置、计算机设备和计算机可读存储介质。
背景技术
随着信息技术的发展,通信系统覆盖面积不断扩大,处理的数据量日益增长,而系统对稳定性对要求越来越高,通过数据库充分有效地管理和利用各类信息资源,是当前通信系统的重要技术手段。目前,通信系统设备的数据库是由蜂窝基站实时操作控制,每当出现数据损坏导致不可用时,会使得设备无法正常工作,导致一个区域的大量的蜂窝基站设备因无法时钟同步成功,从而业务功能无法正常工作,从而影响整个通信系统的正常运行。
针对数据库发生损坏时无法正常工作的问题,传统的解决手段需把设备返回原厂进行软件烧写,或通过人工爬塔对塔顶的RRU(Radio Remote Unit,射频拉远单元)、GRRU(GSM Digital Remote RF Units,数字光纤射频拉远)等拉远设备进行软件烧写,处理过程繁琐,浪费大量人力与物力,恢复数据库的效率低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据库恢复效率的的数据库恢复方法、装置、计算机设备和计算机可读存储介质。
一种数据库恢复方法,所述方法包括:
当当前数据库处于不可用状态时,查询数据库配置表;
根据数据库配置表查询预设的与当前数据库对应的备份数据库;
将查询获得的备份数据库替换当前数据库,得到恢复后的数据库;
加载恢复后的数据库。
在一个实施例中,根据数据库配置表查询预设的与当前数据库对应的备份数据库的步骤包括:
获取当前数据库所处系统的系统状态;
根据系统状态和数据库配置表确定当前数据库恢复策略;
根据当前数据库恢复策略查询预设的备份数据库。
在一个实施例中,系统状态包括供电状态和网络状态,根据系统状态和数据库配置表确定当前数据库恢复策略的步骤包括:
当供电状态正常时,确定从易失性存储器中获取备份数据库,并根据从易失性存储器中获得的备份数据库进行数据库恢复;
当供电状态异常、且网络状态正常时,确定从服务器中获取备份数据库,并根据从服务器中获得的备份数据库进行数据库恢复;
当供电状态异常、且网络状态异常时,确定从非易失性存储器中获取备份数据库,并根据从非易失性存储器中获得的备份数据库进行数据库恢复。
在一个实施例中,加载恢复后的数据库的步骤包括:
查询预设的状态配置表,状态配置表记录有当前数据库的运行状态数据;
根据运行状态数据加载恢复后的数据库。
在一个实施例中,当当前数据库处于不可用状态时,查询数据库配置表的步骤之前还包括:
当满足预设的备份触发条件时,根据数据库配置表将当前数据库的备份数据库备份至易失性存储器、服务器和非易失性存储器中。
在一个实施例中,还包括:
当当前数据库所处系统上电成功后,将数据库配置表中服务器地址与当前数据库中记载的服务器地址进行匹配;
当匹配结果为不同时,将当前数据库中记载的服务器地址更新至数据库配置表中。
一种数据库恢复装置,所述装置包括:
配置表查询模块,用于当当前数据库处于不可用状态时,查询数据库配置表;
备份数据库查询模块,用于根据数据库配置表查询预设的与当前数据库对应的备份数据库;
恢复数据库获取模块,用于将查询获得的备份数据库替换当前数据库,得到恢复后的数据库;
数据库恢复模块,用于加载恢复后的数据库。
在一个实施例中,备份数据库查询模块包括:
系统状态获取单元,用于获取当前数据库所处系统的系统状态;
恢复策略确定单元,用于根据系统状态和数据库配置表确定当前数据库恢复策略;
备份数据库查询单元,用于根据当前数据库恢复策略查询预设的备份数据库。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当当前数据库处于不可用状态时,查询数据库配置表;
根据数据库配置表查询预设的与当前数据库对应的备份数据库;
将查询获得的备份数据库替换当前数据库,得到恢复后的数据库;
加载恢复后的数据库。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当当前数据库处于不可用状态时,查询数据库配置表;
根据数据库配置表查询预设的与当前数据库对应的备份数据库;
将查询获得的备份数据库替换当前数据库,得到恢复后的数据库;
加载恢复后的数据库。
上述数据库恢复方法、装置、计算机设备和计算机可读存储介质,在检测到当前数据库处于不可用状态时,查询数据库配置表,根据数据库配置表进一步查询备份数据库,并将备份数据库替换当前数据库,得到恢复后的数据库,最后加载恢复后的数据库,实现了数据库恢复。本申请的方案在数据库损坏不可用时,通过数据库配置表记录的数据库恢复策略查询备份数据库进行替换,实现数据库恢复,不需要重新进行人工烧写,可以在设备不重启条件下实现数据库的快速恢复,极大地节省了人力物力,提高了数据库的恢复效率。
附图说明
图1为一个实施例中数据库恢复方法的流程示意图;
图2为一个实施例中查询备份数据库的步骤的流程示意图;
图3为另一个实施例中数据库恢复方法的流程示意图;
图4为一个实施例中数据库恢复装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
随着信息技术的发展,通信设备对稳定性对要求越来越高,目前大部分的通信设备是嵌入式设备,嵌入式选型设备的数据库,目前市面上基本上首选是开源的、免费的Sqlite3作为数据库生成与操作的工具。从某产品的长期稳定性测试来看,Sqlite3结合目前硬件平台,其数据库损坏的发生概率是大约一年2‰。当出现数据损坏,会使得设备无法正常工作,导致一个区域的大量的蜂窝基站设备因无法时钟同步成功,从而业务功能无法正常工作,此外,还无法进行远程升级,必须把设备返回原厂进行软件烧写,才能解决问题。还有些设备无连接网络,如塔顶上的拉远设备,出现数据库损坏时,只能通过人工爬搭进行软件烧写,浪费大量的人力与物力。基于此,本申请提供了一种能够提高数据库恢复效率的的数据库恢复方法、装置、计算机设备和计算机可读存储介质。
在一个实施例中,如图1所示,提供了一种数据库恢复方法,包括以下步骤:
步骤S101:当当前数据库处于不可用状态时,查询数据库配置表。
其中,数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,是用户所需要的各种数据管理的方式;数据库配置表可以记录有数据库恢复策略,用于配置对数据库的恢复,具体的,恢复策略可以包括数据库恢复路径、恢复优先级、恢复条件等。当检测到当前数据库不可用时,如当前正在运行的数据库损坏或不可访问时或发生其他故障时,查询数据库配置表,从而触发了数据恢复操作。在具体实现时,数据库配置表还可以用于配置备份数据库的查询路径、备份数据库的备份策略,如定期备份或条件触发备份等数据库备份策略。
步骤S102:根据数据库配置表查询预设的与当前数据库对应的备份数据库。
当触发数据库恢复机制后,查询预设的备份数据库,备份数据库是与当前数据库对应的备份文件,具体可以为当前数据库在可用状态时的备份文件,对当前数据库的备份,可以以定期备份方式或条件触发备份方式或其他自定义方式进行,备份数据库包括了当前数据库中的所有存储数据,可以与当前数据库实现替换。查询得到数据库配置表后,根据数据库配置表查询预设的备份数据库。具体的,根据数据库配置表记录的数据库恢复策略查询备份数据库,从而进行后续数据库恢复操作。数据库恢复策略可以包括数据库恢复优先级,例如,可以优先从易失性存储器中恢复,其次从服务器恢复,最后从非易失性存储器中恢复。具体应用中,对于嵌入式通信设备的数据库恢复,优先级可以设为优先选择查询RAM中的备份数据库进行恢复,其次选择查询远程文件服务器中的备份数据库进行恢复,否则选择查询FLASH中的备份数据库进行恢复。
步骤S103:将查询获得的备份数据库替换当前数据库,得到恢复后的数据库。
根据数据配置表查询备份数据库后,将备份数据库替换不可用的当前数据库,得到恢复后的数据库。备份数据库是当前数据库在可用状态时的备份,通过将备份数据库替换不可用的当前数据库,可以实现对数据库的恢复。
步骤S104:加载恢复后的数据库。
得到恢复后的数据库后,加载该恢复后的数据库,在重新加载成功后,就可以继续正常访问恢复后的数据库,从而实现了数据库的恢复。在具体应用中,还可以根据当前数据库的运行状态数据,快速加载恢复后的数据库至当前运行状态,实现数据库的运行状态恢复,进一步提高系统的“容灾”能力,确保系统的稳定性。
上述数据库恢复方法,在检测到当前数据库处于不可用状态时,查询数据库配置表,根据数据库配置表进一步查询备份数据库,并将备份数据库替换当前数据库,得到恢复后的数据库,最后加载恢复后的数据库,实现了数据库恢复。本申请的方案在数据库损坏不可用时,通过数据库配置表记录的数据库恢复策略查询备份数据库进行替换,实现数据库恢复,不需要重新进行人工烧写,可以在设备不重启条件下实现数据库的快速恢复,极大地节省了人力物力,提高了数据库的恢复效率。
进一步地,当当前数据库处于不可用状态时,查询数据库配置表的步骤可以包括:检测当前数据库是否可访问,当不可访问时,查询数据库配置表。具体的,可以实时或定时主动检测当前数据库是否处于不可用状态,如检测当前数据库是否可访问,当检测结果为不可访问时,则可以确定当前数据库处于不可用状态,从而,进行数据库配置表查询,触发数据库恢复控制机制。此外,也可以通过被动检测方式进行当前数据库检测,如在接收到数据库访问指令而触发数据库访问操作时,对数据库进行访问,此时若访问异常,也可以确定当前数据库处于不可用状态,从而查询数据库配置表,触发数据库恢复控制机制进行数据库恢复。
在具体应用中,数据库配置表restore_config_table的格式可以但不限于为:
该格式的数据库配置表定义了remode_server_path节点、flash_bak_path节点和ran_bak_period节点的备份及恢复路径。
数据库配置表可以包括数据库的备份策略、恢复策略等,用于配置对数据库的备份及恢复。具体的,备份策略可以包括数据库备份路径、备份优先级、备份条件等;恢复策略可以包括数据库恢复路径、恢复优先级、恢复条件等。
进一步地,当当前数据库处于不可用状态时,查询数据库配置表的步骤还可以通过以下形式进行:根据数据库配置表检测当前数据库是否损坏,当已损坏时,查询数据库配置表。具体的,可以通过实时或定时主动检测当前数据库是否损坏,当检测结果为已损坏时,确定当前数据库处于不可用状态,并进入查询数据库配置表的步骤,从而触发数据库恢复控制机制进行数据库恢复。
通过设定检测机制检测当前数据库的可用状态,在处于不可用状态时及时触发数据库恢复机制进行数据库恢复,提升了系统及设备的“容灾”能力,避免了在大规模组网中,因系统或设备的数据库被损坏,导致无法正常运行的问题,特别是在长时间运行的通信系统及设备中,如蜂窝式基站、宏基站、1588服务器等。
在一个实施例中,如图2所示,根据数据库配置表查询预设的与当前数据库对应的备份数据库的步骤包括:
步骤S201:获取当前数据库所处系统的系统状态。
其中,系统状态为当前数据库所在的系统或设备的当前状态,例如,可以为嵌入式系统或设备。可以根据系统状态可以确定当前数据库所处系统的最优数据库恢复策略,从而实现数据库的快速、稳定恢复。进一步地,系统状态可以包括供电状态和网络状态。供电状态包括当前数据所处系统或设备的供电情况,如对于通信系统设备,供电状态可以包括设备的上电状态和断电状态等;网络状态包括系统或设备的联网状态。
步骤S202:根据系统状态和数据库配置表确定当前数据库恢复策略。
获得系统状态后,根据该系统状态和数据库配置表确定数据库恢复策略,数据库恢复策略可以包括但不限于数据库恢复路径。具体的,数据库配置表中记录有数据库恢复策略的触发条件,如数据库恢复策略的触发条件可以系统状态,通过结合系统状态从数据库配置表中确定当前的数据库恢复策略。例如,对于嵌入式通信设备,数据库恢复策略可以包括数据库恢复路径为RAM(Random Access Memory,随机存取存储器)恢复和服务器恢复和FLASH(闪存)恢复,分别可以对应于设备处于不同供电状态和网络状态时的恢复。
步骤S203:根据当前数据库恢复策略查询预设的备份数据库。
获得数据库恢复策略后,根据该数据库恢复策略进一步查询预设的备份数据库。具体的,数据库恢复策略可以包括数据库恢复方式或数据库恢复路径,根据数据库恢复策略查询获取预设的备份数据库,其中,备份数据库是当前数据库在可用状态时的备份文件,可以通过将备份数据库直接替换当前数据库的方式实现对数据库的快速恢复。
本实施例中,根据数据库配置表,结合当前数据库所处系统的系统状态,确定对应的数据库恢复策略,进而查询预设的备份数据库,综合考虑了数据库所处系统的各种异常场景,从而选取最优的数据库恢复策略进行数据库恢复,在解决了各种场景下数据库不可用问题的前提下,还进一步提高了数据库恢复效率。
进一步地,系统状态包括供电状态和网络状态,根据系统状态和数据库配置表确定当前数据库恢复策略的步骤包括:当供电状态正常时,确定从易失性存储器中获取备份数据库,并根据从易失性存储器中获得的备份数据库进行数据库恢复;当供电状态异常、且网络状态正常时,确定从服务器中获取备份数据库,并根据从服务器中获得的备份数据库进行数据库恢复;当供电状态异常、且网络状态异常时,确定从非易失性存储器中获取备份数据库,并根据从非易失性存储器中获得的备份数据库进行数据库恢复。
具体的,系统状态可以包括供电状态和网络状态,以表征系统是否供电正常,如系统是否发生掉电;以及表征系统是否联网正常,如系统是否接入网络。在具体实现时,如应用于嵌入式设备或系统中时,供电状态可以为设备或系统的掉电上电情况,若未发生掉电时,即为供电状态正常,若系统发生掉电并上电重启时,则认为为供电异常状态;网络状态可以为设备或系统当前的网络连接状态,当网络连接正常时,即网络状态正常,否则为网络状态异常。当供电状态正常时,当前数据库恢复策略可以为从易失性存储器进行数据库恢复,其中,易失性存储器通常是作为操作系统或其他正在运行程序的临时存储介质,亦可称作系统内存,不过,当电源关闭时易失性存储器不能保留数据。当供电状态异常、且网络状态正常时,当前数据库恢复策略可以为从服务器进行数据库恢复,服务器可以为远程网络服务器,需要联网状态正常时才可正常访问。当供电状态异常、且网络状态异常时,当前数据库恢复策略可以为从非易失性存储器进行数据库恢复,非易失性存储器是断电后仍然能够保持数据的存储器,这也是与易失性存储器最大的区别。
具体的,从易失性存储器和从非易失性存储器恢复为本地恢复策略,不需网络支持;服务器恢复为远程恢复策略,需要网络支持。在实际应用中,如对于嵌入式通信设备,易失性存储器可以包括RAM,非易失性存储器可以包括FLASH,其中,RAM恢复和FLASH恢复为本地恢复策略,不需网络支持;服务器恢复为远程恢复策略,需要网络支持。
具体的,可以在获取的系统状态中供电状态正常时,即当前数据库所在的系统或设备上电正常且未发生断电重启时,当前数据库恢复策略可以为RAM恢复,即将数据库恢复路径设为RAM路径,从RAM中进行数据库恢复;当供电状态异常且网络状态正常,即网络物理连接正常,而在对损坏的数据库恢复过程中突然掉电重启了,造成RAM中备份数据库丢失时,当前数据库恢复策略可以为服务器恢复,即在系统上电后从服务器中获取备份数据库进行数据库恢复;当供电状态异常且网络状态异常,即突然断电或异常重启且网络又不正常的最坏情况下,当前数据库恢复策略可以为FLASH恢复,从FLASH中获取备份数据库进行数据库恢复。通过根据系统状态和数据库配置表确定对应的数据库恢复策略,无需过多的复杂流程,可以实现快速、稳定的数据库恢复。
进一步地,加载恢复后的数据库的步骤包括:查询预设的状态配置表,状态配置表记录有当前数据库的运行状态数据;根据运行状态数据加载恢复后的数据库。
通过预设的备份数据库替换不可用的当前数据库,可以实现数据库的快速恢复,而对于正在运行的当前数据库,可以通过获取当前数据库的运行状态数据重新加载恢复后的数据库,以进一步恢复数据库的运行状态,进一步确保数据库的正常运行。具体的,查询预设的状态配置表,状态配置表记录有当前数据库的运行状态数据。在具体实现中,可以在通过数据库配置表对数据库进行备份的同时将数据库的运行状态一并进行备份,并将运行状态数据储存至状态配置表中。得到运行状态数据后,根据该运行状态数据重新加载恢复后的数据库,如此,可以确保数据库运行状态的快速恢复,能够进一步确保数据库的正常运行。
更进一步地,在重新加载恢复后的数据库时,当检测到有其他进程同时发出访问请求时,则可以使数据库进程暂时以锁的方式阻塞等待,待重新加载成功后,解除锁,再允许其他进程继续正常访问数据库,通过引入数据库锁机制,在重新加载恢复后的数据库时避免其他进程的访问,保证了数据库恢复的稳定性,从而确保了系统的稳定性。
进一步地,当当前数据库处于不可用状态时,查询数据库配置表的步骤之前还可以包括:当满足预设的备份触发条件时,根据数据库配置表将当前数据库的备份数据库备份至易失性存储器、服务器和非易失性存储器中。
其中,备份触发条件可以根据实际需求预先设定,如备份触发条件可以为达到备份周期时触发,也可以为在数据库配置表更新时触发,还可以为数据库中更新时触发等。进一步地,若备份触发条件包括数据库更新时触发,可以根据数据库的数据量大小进行设定,如数据库数据量较小时,当数据库中数据更新时即触发备份,若数据库数据量较大时,则可以设置某些关键数据,只有在关键数据更新时才触发数据库备份,以控制数据库的备份周期,有效利用资源。通过满足备份触发条件时对当前数据库进行备份,可以保证在当前数据库处于不可用状态时,对数据库的快速恢复。
具体的,可以按照预设的备份周期,或在数据库配置表更新,或数据库配置表中参数对应的数据库中的数据更新时,对当前数据库进行备份,备份路径可以包括易失性存储器、非易失性存储器和服务器,更具体的,可以包括RAM、服务器和FLASH。在具体应用中,考虑到FLASH不可多擦写的特性,对于FLASH,可以设为只在数据库配置表更新,或数据库配置表中参数对应的数据库中的数据更新,或上电成功时,将备份数据库同步至FLASH中;而对于RAM和服务器,既可以仅通过定期备份,也可以仅在数据库配置表更新,或数据库配置表中参数对应的数据库中的数据更新时进行备份,还可以满足其中任一备份触发条件时进行备份,以对当前数据库进行及时备份,确保备份数据库的及时性。在具体应用中,如上述数据库配置表restore_config_table中,对于ran_bak_period节点的备份周期为120秒,还同时根据flash_modify_param参数被修改时,触发数据库备份操作,把备份数据库存放在RAM中,同时远程传送到文件服务器,即remode_server_path节点的值,同时根据配置表参数备份到flash_bak_path节点,即FLASH中。
进一步地,数据库恢复方法还可以包括:当当前数据库所处系统上电成功后,将数据库配置表中服务器地址与当前数据库中记载的服务器地址进行匹配;当匹配结果为不同时,将当前数据库中记载的服务器地址更新至数据库配置表中。
当前数据库中记载的服务器地址可能与数据库配置表中远程服务器地址并不相同,此时,需要对数据库配置表中的服务器地址进行更新。具体的,可以在系统上电成功后,即系统重启或复位成功后,将数据库配置表中服务器地址与当前数据库中记载的服务器地址进行匹配,当匹配结果为不同时,将当前数据库中记载的服务器地址更新至数据库配置表中。若匹配结果相同,则表明当前数据库中记载的服务器地址与数据库配置表中远程服务器地址相同,可以与服务器匹配。根据当前数据库中记载的服务器地址更新数据库配置表,这样在对当前数据库进行备份时,可以将备份数据库同步至与当前数据库中所记载的服务器地址对应的的服务器中,从而确保数据库备份路径的准确性。
在另一个实施例中,如图3所示,数据库恢复方法包括以下步骤:
步骤S301:当当前数据库所处系统上电成功后,将数据库配置表中服务器地址与当前数据库中记载的服务器地址进行匹配。
步骤S302:当匹配结果为不同时,将当前数据库中记载的服务器地址更新至数据库配置表中。
通过将数据库配置表中服务器地址与当前数据库中记载的服务器地址进行匹配,当匹配结果为不同时,将当前数据库中记载的服务器地址更新至数据库配置表中,可以确保在对当前数据库进行备份时,可以将备份数据库同步至与当前数据库中所记载的服务器地址对应的的服务器中,,从而确保数据库备份路径的准确性。
步骤S303:当满足预设的备份触发条件时,根据数据库配置表将当前数据库的备份数据库备份至RAM、服务器和FLASH中。
在满足备份触发条件时,对当前数据库进行备份,并将备份数据库储存至RAM、服务器和FLASH中,可以保证在当前数据库处于不可用状态时,对数据库的快速恢复。
步骤S304:检测当前数据库是否处于不可用状态。
步骤S305:当检测结果为当前数据库不可用时,查询数据库配置表。
通过实时或定时主动检测当前数据库是否处于不可用状态,在检测结果为不可用时,查询数据库配置表,触发数据库恢复机制,可以及时对处于不可用状态的当前数据库进行恢复,确保系统的正常运行。
步骤S306:获取当前数据库所处系统的系统状态,系统状态包括供电状态和网络状态。
步骤S307:当供电状态正常时,确定当前数据库恢复策略为从RAM进行数据库恢复。
步骤S308:当供电状态异常、且网络状态正常时,确定当前数据库恢复策略为从服务器进行数据库恢复。
步骤S309:当供电状态异常、且网络状态异常时,确定当前数据库恢复策略为从FLASH进行数据库恢复。
步骤S310:根据当前数据库恢复策略查询预设的备份数据库。
通过结合系统状态从数据库配置表中确定当前的数据库恢复策略,具体的,数据库恢复策略包括RAM恢复、服务器恢复和FLASH恢复。通过根据数据库配置表,结合当前数据库所处系统的系统状态,确定对应的数据库恢复策略,进而查询预设的备份数据库,综合考虑了数据库所处系统的各种异常场景,从而选取最优的数据库恢复策略进行数据库恢复,在解决了各种场景下数据库不可用问题的前提下,还进一步提高了数据库恢复效率。
步骤S311:将获得的备份数据库替换当前数据库,得到恢复后的数据库。
根据数据配置表查询备份数据库后,将备份数据库替换不可用的当前数据库,得到恢复后的数据库。
步骤S312:查询预设的状态配置表,得到当前数据库的运行状态数据。
步骤S313:根据运行状态数据加载恢复后的数据库。
得到运行状态数据后,根据该运行状态数据重新加载恢复后的数据库,如此,可以确保数据库运行状态的快速恢复,能够进一步确保数据库的正常运行。
本实施例的数据库恢复方法,在检测到当前数据库处于不可用状态时查询数据库配置表,根据数据库配置表结合数据库所处系统的系统状态从RAM、服务器或FLASH中查询备份数据库,并将备份数据库替换当前数据库,得到恢复后的数据库,最后重新加载恢复后的数据库。本申请的方案在数据库损坏不可用时,通过数据库配置表查询备份数据库进行替换,实现数据库恢复,不需要关闭设备进行烧写,可以在设备不重启条件下实现数据库的快速恢复,不影响业务功能,极大地节省了人力物力,提高了数据库的恢复效率。在应用于通信设备中时,在数据库损坏的情况下,既支持不重启的设备,根据数据库恢复配置表,能快速、稳定地、智能恢复损坏的数据库,又支持在数据库恢复期间,发生突然断电或别的异常重启异常时,上电能进行稳定恢复,确保了设备业务功能,大大提升了设备软件的“容灾”能力,避免了设备大规模组网中,因设备数据库损坏,导致无法正常运行的问题,特别是在长时间运行的通信设备中,如蜂窝式基站、宏基站、1588服务器等。
应该理解的是,虽然图1-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于上述数据库恢复方法,本申请还提供一种数据库恢复装置。
在一个实施例中,如图4所示,提供了一种数据库恢复装置,所述装置包括:
配置表查询模块401,用于当当前数据库处于不可用状态时,查询数据库配置表;
备份数据库查询模块402,用于根据数据库配置表查询预设的与当前数据库对应的备份数据库;
恢复数据库获取模块403,用于将查询获得的备份数据库替换当前数据库,得到恢复后的数据库;
数据库恢复模块404,用于加载恢复后的数据库。
在一个实施例中,备份数据库查询模块402包括:系统状态获取单元,用于获取当前数据库所处系统的系统状态;恢复策略确定单元,用于根据系统状态和数据库配置表确定当前数据库恢复策略;备份数据库查询单元,用于根据当前数据库恢复策略查询预设的备份数据库。
在一个实施例中,系统状态包括供电状态和网络状态,恢复策略确定单元可以包括:易失性存储器恢复子单元,用于当供电状态正常时,确定从易失性存储器中获取备份数据库,并根据从易失性存储器中获得的备份数据库进行数据库恢复;服务器恢复子单元,用于当供电状态异常、且网络状态正常时,确定从非易失性存储器中获取备份数据库,并根据从服务器中获得的备份数据库进行数据库恢复;非易失性存储器恢复子单元,用于当供电状态异常、且网络状态异常时,确定从非易失性存储器中获取备份数据库,并根据从非易失性存储器中获得的备份数据库进行数据库恢复。
在一个实施例中,数据库恢复模块404包括:状态数据获取单元,用于查询预设的状态配置表,状态配置表记录有当前数据库的运行状态数据;数据库恢复单元,用于根据运行状态数据加载恢复后的数据库。
在一个实施例中,还包括数据库备份模块,用于当满足预设的备份触发条件时,根据数据库配置表将当前数据库的备份数据库备份至易失性存储器、服务器和非易失性存储器中。
在一个实施例中,还包括服务器地址匹配单元,用于当当前数据库所处系统上电成功后,将数据库配置表中服务器地址与当前数据库中记载的服务器地址进行匹配;服务器地址更新单元,用于当匹配结果为不同时,将当前数据库中记载的服务器地址更新至数据库配置表中。
关于数据库恢复装置的具体限定可以参见上文中对于数据库恢复方法的限定,在此不再赘述。上述数据库恢复装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储计算机程序执行过程中的处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库恢复方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当当前数据库处于不可用状态时,查询数据库配置表;根据数据库配置表查询预设的与当前数据库对应的备份数据库;将查询获得的备份数据库替换当前数据库,得到恢复后的数据库;加载恢复后的数据库。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取当前数据库所处系统的系统状态;根据系统状态和数据库配置表确定当前数据库恢复策略;根据当前数据库恢复策略查询预设的备份数据库。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
当供电状态正常时,确定从易失性存储器中获取备份数据库,并根据从易失性存储器中获得的备份数据库进行数据库恢复;
当供电状态异常、且网络状态正常时,确定从服务器中获取备份数据库,并根据从服务器中获得的备份数据库进行数据库恢复;
当供电状态异常、且网络状态异常时,确定从非易失性存储器中获取备份数据库,并根据从非易失性存储器中获得的备份数据库进行数据库恢复。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
查询预设的状态配置表,状态配置表记录有当前数据库的运行状态数据;根据运行状态数据加载恢复后的数据库。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
当满足预设的备份触发条件时,根据数据库配置表将当前数据库的备份数据库备份至易失性存储器、服务器和非易失性存储器中。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
当当前数据库所处系统上电成功后,将数据库配置表中服务器地址与当前数据库中记载的服务器地址进行匹配;当匹配结果为不同时,将当前数据库中记载的服务器地址更新至数据库配置表中。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当当前数据库处于不可用状态时,查询数据库配置表;根据数据库配置表查询预设的与当前数据库对应的备份数据库;将查询获得的备份数据库替换当前数据库,得到恢复后的数据库;加载恢复后的数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取当前数据库所处系统的系统状态;根据系统状态和数据库配置表确定当前数据库恢复策略;根据当前数据库恢复策略查询预设的备份数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
当供电状态正常时,确定从易失性存储器中获取备份数据库,并根据从易失性存储器中获得的备份数据库进行数据库恢复;
当供电状态异常、且网络状态正常时,确定从服务器中获取备份数据库,并根据从服务器中获得的备份数据库进行数据库恢复;
当供电状态异常、且网络状态异常时,确定从非易失性存储器中获取备份数据库,并根据从非易失性存储器中获得的备份数据库进行数据库恢复。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
查询预设的状态配置表,状态配置表记录有当前数据库的运行状态数据;根据运行状态数据加载恢复后的数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
当满足预设的备份触发条件时,根据数据库配置表将当前数据库的备份数据库备份至易失性存储器、服务器和非易失性存储器中。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
当当前数据库所处系统上电成功后,将数据库配置表中服务器地址与当前数据库中记载的服务器地址进行匹配;当匹配结果为不同时,将当前数据库中记载的服务器地址更新至数据库配置表中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。