CN105787135A - 一种用于数据库日志备份的方法与设备 - Google Patents
一种用于数据库日志备份的方法与设备 Download PDFInfo
- Publication number
- CN105787135A CN105787135A CN201610222115.4A CN201610222115A CN105787135A CN 105787135 A CN105787135 A CN 105787135A CN 201610222115 A CN201610222115 A CN 201610222115A CN 105787135 A CN105787135 A CN 105787135A
- Authority
- CN
- China
- Prior art keywords
- journal file
- daily record
- log
- list
- file list
- 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.)
- Pending
Links
Classifications
-
- 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/21—Design, administration or maintenance of databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请的目的是提供一种用于数据库日志备份的方法与设备。具体地,获取数据库日志文件列表;将所述日志文件列表放入传输队列,其中,所述文件列表中日志以预置日志次序排列;获取所述日志文件列表对应的日志文件;根据所述日志次序传输所述日志文件至对应服务器。与现有技术相比,本申请通过获取数据库日志文件列表,并将其排序后放入传输队列,在获取所述日志文件列表对应的日志文件后,根据传输队列中日志次序传输所述日志文件至对应服务器,使得在RAC环境中的ASM系统中的日志能够被自动备份,达到有序传输完整日志文件的目的,减少人力成本、提升备份效率,不影响用户在数据库中的原有设置。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种用于数据库日志备份的技术。
背景技术
随着大数据时代的来临,数据安全问题日益受到重视,在数据库中对归档日志进行备份即为保护数据安全的有效手段,在现有技术中,数据库往往采用RAC(RealApplicationClusters,实时应用集群)环境保证其高可用性,而在RAC环境中日志通常存储在ASM(AutomaticStorageManagement,存储自动管理)文件系统中,在这一文件系统中数据需要借助工具读取,实时监测文件产生即备份的方法无法进行,因此在归档日志备份时仅能采用人工备份,或借助ASM提供的工具进行自动备份。然而,人工备份存在备份周期不确定、效率低下等问题,借助工具自动备份存在重复备份,会受到外界环境干扰,以及备份会对用户设置造成影响等状况。
发明内容
本申请的一个目的是提供一种用于数据库日志备份的方法与设备。
为实现上述目的,根据本申请的一个方面,提供了一种用于数据库日志备份的方法,该方法包括:
获取数据库日志文件列表;
将所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列;
获取所述日志文件列表对应的日志文件;
根据所述日志次序传输所述日志文件至对应服务器。
根据本申请的另一个方面,提供了一种用于数据库日志备份的设备,该设备包括:
日志文件列表获取装置,用于获取数据库日志文件列表;
传输队列处理装置,将所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列;
日志文件获取装置,用于获取所述日志文件列表对应的日志文件;
日志文件传输装置,用于根据所述日志次序传输所述日志文件至对应服务器。
与现有技术相比,本申请通过获取数据库日志文件列表,并将其排序后放入传输队列,在获取所述日志文件列表对应的日志文件后,根据传输队列中日志次序传输所述日志文件至对应服务器,使得在RAC环境中的ASM系统中的日志能够被自动备份,达到有序传输完整日志文件的目的,减少人力成本、提升备份效率,不影响用户在数据库中的原有设置。进一步地,通过使用RMAN(RecoveryManager,恢复管理工具)这一用于备份(backup)、还原(restore)和恢复(recover)数据库的工具,按日志在传输队列中的排序列表对需要备份的日志文件进行统一获取,使得本申请的备份方式得以在不同版本的数据库中使用。更进步一地,通过设置重传队列存储备份失败的日志文件列表,在环境稳定后送入传输队列进行重传,使得备份稳定可靠,降低数据丢失风险。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种用于数据库日志备份的设备示意图;
图2示出根据本申请另一个方面的一种用于数据库日志备份的设备示意图;
图3示出根据本申请另一个方面的一种用于数据库日志备份的方法流程图;
图4示出根据本申请另一个方面的一种用于数据库日志备份的方法流程图;
图5示出根据本申请一个方面的优选实例示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
图1示出根据本申请一个方面的一种用于数据库日志备份的设备示意图。所述设备1包括日志文件列表获取装置11、传输队列处理装置12、日志文件获取装置13以及日志文件传输装置14。
其中,日志文件列表获取装置11获取数据库日志文件列表;传输队列处理装置12将所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列;日志文件获取装置13获取所述日志文件列表对应的日志文件;日志文件传输装置14根据所述日志次序传输所述日志文件至对应服务器。
具体地,日志文件列表获取装置11获取数据库日志文件列表是指获取用于备份的数据库日志文件列表。在此,所述日志文件列表是指包含日志字段、日志状态及其它相关信息的列表,其中,日志字段包括但不限于日志文件名称(包含文件路径)、生成日志文件的线程号、日志序号、重置日志ID。优选地,用于备份的数据库日志通常是指归档日志但不限于此,如图5所示,查询数据库中视图V$ARCHIVED_LOG获得数据库归档日志列表,其中,获取数据库需要备份的日志列表的方法还包括从数据库字典X$KCCAL中查询,及利用RMAN(RecoveryManager)这一用于备份(backup)、还原(restore)和恢复(rec.ver)数据库的工具查询。基于所获取的数据库日志文件列表可对需要备份的日志进行文件获取,或针对性处理例如筛选、过滤,或用于已备份文件清单对比等操作,为实现自动备份数据库日志做准备。
本领域技术人员应能理解上述获取数据库日志文件列表的方式仅为举例,其他现有的或今后可能出现的获取数据库日志文件列表的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接着,传输队列处理装置12将所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列是指根据所获取的日志文件列表,将其中需要备份的日志按预定的次序进行排序,并将排序后的日志文件列表放入传输队列。在此,所述传输队列是指存储用于备份的数据库的日志列表或文件的队列,备份时,从传输队列中依次取出,将相应的日志文件进行备份。所述预置日志次序是指日志排序的标准,例如,依照日志生成时间排序,或依照日志文件大小排序但不限于此。将列表中的日志按预置日志次序进行排序的目的是使得日志备份有序且连续,在日志备份中断或其它导致未备份完全或文件备份时上传失败的情况下,使得备份恢复时可按次序优先查找或恢复日志。例如,将日志按照日志序号LSN(LogSequenceNumber)备份,假设需要备份的日志文件LSN分别为1、2、3、4、5,若不排序乱序备份,如1、2、5、3、4,则从2之后的文件都无法使用;若备份过程中调过某些文件,如1、2、4、5,则从2之后的都无法使用。
本领域技术人员应能理解上述按预置日志次序排序日志文件列表的方式仅为举例,其他现有的或今后可能出现的按预置日志次序排序日志文件列表的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接着,日志文件获取装置13获取所述日志文件列表对应的日志文件是指根据日志文件列表获取列表中日志对应的日志文件,在此,这一获取操作优选在日志文件列表排序后进行,更优选地,将所获取的日志文件统一放入另建的指定目录,例如/tmp目录,从而避免获取不需要备份的日志文件而造成资源浪费,并在传输时可从同一目录下提取日志文件,提高日志备份的效率。优选地,当从RAC环境中的ASM系统中获取相应的日志文件时,首先判断归档日志文件是否处于ASM系统中,即判断文件路径是否以加号(+)开头。在判断文件处于ASM系统中后,获取日志文件的方法包括但不限于如下方式:将日志文件进行复制从而进行获取;或使用ASM相关编程接口直接访问ASM中的文件和数据进行获取;或者使用ASM提供的命令行工具将ASM中归档日志复制;或为了保证兼容各个数据库版本,使用RMAN的BACKUPASCOPYARCHIVELOGLIKE'XXX'FORMAT'XXX'命令进行日志文件复制。
获取所述日志文件列表对应的日志文件使得日志备份实现自动化,降低人工成本,提升工作效率,且适用于RAC环境中的ASM系统中日志自动备份,且因使用目录存储所获取的日志文件,使得用户原有设置,例如归档日志大小,原有归档日志自动生成周期等不受影响
本领域技术人员应能理解上述获取所述日志文件列表对应的日志文件的方式仅为举例,其他现有的或今后可能出现的获取所述日志文件列表对应的日志文件的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接着,日志文件传输装置14根据所述日志次序传输所述日志文件至对应服务器是指将所获取的日志文件传输至对应的服务器从而进行备份,例如从/tmp目录中按传输队列中的日志列表次序取出日志文件传输至对应的服务器。如图5中所示,日志传输时可优选对日志文件进行压缩和加密,使得备份过程安全可靠。
图2示出根据本申请另一个方面的一种用于数据库日志备份的设备示意图。所述设备1包括日志文件列表获取装置21、传输队列处理装置22、日志文件获取装置23以及日志文件传输装置24、传输失败处理装置25、传输成功处理装置26。
具体地,日志文件列表获取装置21获取数据库日志文件列表,根据过滤条件筛选所述日志文件列表;传输队列处理装置22将筛选后的所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列;日志文件获取装置23若所述日志文件处于存储自动管理系统中,使用RMAN获取所述日志文件列表对应的日志文件;日志文件传输装置24更新所述日志次序,根据所述日志次序传输所述日志文件至对应服务器;传输失败处理装置25若所述日志文件传输失败,将传输失败的所述日志文件列表放入重传队列;传输成功处理装置26若所述日志文件传输成功,将所述重传队列中日志文件列表放入所述传输队列。
具体地,所述日志文件列表获取装置21获取数据库日志文件列表,根据过滤条件筛选所述日志文件列表。因为通过需要备份的数据库中视图V$ARCHIVED_LOG,或数据库字典X$KCCAL中查询,或利用RMAN工具查询所获取的数据块日志文件列表可能包含所有曾经生成的归档日志(如果存在catalog数据库)或者最近生成的有限次数的归档日志记录(无catalog数据库,受限于控制文件大小),这些记录中包含若干类型的归档日志记录,因此,需要根据具体类型情况对日志列表进行过滤和筛选。具体包括以下四类但不限于这四类,其它需要筛选和剔除的类型均包含于此:不需要备份的归档日志,归档日志备份的起点应是最近一次level0的数据文件备份,在此之前的归档日志不需要备份;已备份的归档日志:已备份的归档日志将被程序记录在一份清单文件中,视图中包含在清单文件中的归档日志记录将被排除,不需要备份;备份失败的归档日志,归档日志文件获取失败的主要原因可能包括权限不足、文件被删除、磁盘空间不足等,对于这些情况,失败的原因将被记录,且通知数据库管理员,这些归档日志文件不会再次尝试获取。此外,不完整的日志、不可用的日志以及重复日志可通过设置过滤条件,通过日志状态信息以及相关字段信息进行过滤。通过对日志文件列表进行过滤,排除了不稳定的情况,使得备份日志完整,备份过程稳定,避免了存在多个归档日志路径且生成多份重复的归档日志,或存在多个归档日志路径但并非每一路径下均存在归档日志等不良备份状况。
优选地,所述过滤条件包括以下至少一项:排除指定日志文件信息缺失的日志;排除日志状态是不可用的日志;排除重复的日志。其中,所述排除指定日志文件缺失的日志是指如图5中所示,归档日志文件列表获取模块中排除不完整的归档日志,即新的归档日志生成过程中,在数据库进程完成对新归档日志修改前,新的记录即会被添加进此视图,为防止读取到不完整的归档日志文件,需要排除日志文件信息中包括如下字段名的日志,包括但不限于:日志文件名称(包含文件路径),如字段NAME;生成日志文件的线程号,如字段THREAD#、日志序号,如字段SEQUENCE#、重置日志ID,如字段RESETLOGS_ID且内容为NULL的记录。所述排除日志状态是不可用的日志是指如图5中所示归档日志文件列表获取模块中排除已删除的归档日志,即归档日志文件有可能已被删除,但记录依旧存在,为排除已删除的归档日志,需排除日志状态信息中包括已删除信息的日志,例如字段名为STATUS且内容不是’A’的记录。所述排除重复的日志是指如图5中所示归档日志文件列表获取模块中去除重复归档日志记录,即如存在多个归档日志路径,有可能存在多份重复的归档日志,可按照归档日志线程号(THREAD#)和日志序号(SEQUENCE#)分组,相同的线程号和日志序号的归档日志记录只取其中一条,因为满足前述条件的日志文件内容都是相同的,原则上任何一条均可,因此实际上选取是随机的。
接着,传输队列处理装置22将筛选后的所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列。即将上述筛选后的日志按一定的日志次序排序后放入传输列表,从而使得在传输列表中的日志均为经过过滤的日志,避免了重复备份日志,或者备份日志不完整、缺失的情况,因而备份过程稳定可依靠。优选地,所述以预置日志次序排列包括以所述日志文件生成时间排序。将列表中的日志按生成时间进行排序的目的是使得日志备份连续,例如,将日志按照日志序号LSN(LogSequenceNumber)备份,假设需要备份的日志文件LSN分别为1、2、3、4、5,若不排序乱序备份,如1、2、5、3、4,则从2之后的文件都无法使用;若备份过程中调过某些文件,如1、2、4、5,则从2之后的都无法使用,因此按生成时间排序备份日志,使得日志备份中断或其它导致未备份完全或文件备份时上传失败的情况下,使得备份恢复时可按次序优先查找或恢复日志,否则一旦中间某归档日志文件未备份,之后的归档日志在恢复时也是无法使用的。
接着,日志文件获取装置23若所述日志文件处于存储自动管理系统中,使用RMAN获取所述日志文件列表对应的日志文件。即如图5中归档日志文件获取模块中所示,判断归档日志文件是否处于ASM中,即判断文件路径是否以加号(+)开头,是以加号开头则;把ASM中归档日志复制进/tmp目录,为了保证兼容各个数据库版本,选择的复制方法为使用RMAN的BACKUPASCOPYARCHIVELOGLIKE'XXX'FORMAT'XXX'命令。优选地,等待归档日志文件输完,/tmp目录下的归档日志文件过多会导致数据库视图中归档日志记录增加。对此,再使用RMAN的DELETENOPROMPTARCHIVELOG'XXX'命令,删除此归档日志文件和记录。在此,/tmp目录的创建是可选的,只要空间足够即可,同时,ASM的兼容困难在于ASM不同版本需要不同的方式访问文件,通过RMAN是一个兼容性很高的方法。通过使用RMAN(RecoveryManager)这一用于备份(backup)、还原(restore)和恢复(recover)数据库的工具,按日志在传输队列中的排序列表对需要备份的日志文件进行统一获取,使得本申请的备份方式得以在不同版本的数据库中使用。同时,日志文件的来源都是已生成的日志文件。这些日志文件的生成位置是用户原有的设定,日志文件的生成方式和计划也是用户的设定,RMAN复制日志文件传输后,即删除复制的日志文件和记录,对于用户原有的日志文件记录不产生影响。
接着,日志文件传输装置24更新所述日志次序,根据所述日志次序传输所述日志文件至对应服务器。正常情况下,按日志列表次序从从传输队列中取出第一个,将其备份至服务器,在发送故障或其它导致备份传输失败的情况后,如图5中归档日志列表排序模块所示,在网络恢复时更新日志次序,将重传队列中记录移至传输队列的头部,使得尽快传输最旧的归档日志,以保证归档日志的连续性。在此,更新日志次序根据具体情况而定,通常用在存在重传队列需要放入传输队列对之前因各种状况传输失败的文件进行重传的情况。
接着,传输失败处理装置25若所述日志文件传输失败,将传输失败的所述日志文件列表放入重传队列。即如图5中归档日志列表排序模块所示,将传输队列中传输失败的归档日志记录加入重传队列。在此重传队列是指用于存储因各种状况,例如,网络故障、网络连接频繁、长时间断开。网络带宽短时间内不足、备份进程被异常杀死或重启等情况,而导致的日志文件传输失败从而需要进行重传再次尝试备份的日志文件列表。例如下例所示:有传输队列:abcdef;重传队列:。当a传输成功,有传输队列:bcdef;重传队列:。当b传输失败,有传输队列:cdef;重传队列:b。当c传输失败,有传输队列:def;重传队列:bc。
接着,传输成功处理装置26若所述日志文件传输成功,将所述重传队列中日志文件列表放入所述传输队列。即例如某归档日志传输成功,检查重传队列是否为空,如不为空,将重传队列中归档日志移至传输队列头部。接上文示例:当d传输成功,检查重传队列中有bc,移至传输队列头部,因此有传输队列:bcef;重传队列:。当b传输成功,有传输队列:cef;重传队列:。当c传输成功,有传输队列:ef;重传队列:。通过设置重传队列存储备份失败的日志文件列表,在环境稳定后送入传输队列进行重传,使得备份稳定可靠,降低数据丢失风险。
图3示出根据本申请另一个方面的一种用于数据库日志备份的方法流程图。所述方法包括步骤S1、步骤S2、步骤S3以及步骤S4。
其中,在步骤S1中设备1获取数据库日志文件列表;在步骤S2中设备1将所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列;在步骤S3中设备1获取所述日志文件列表对应的日志文件;在步骤S4中设备1根据所述日志次序传输所述日志文件至对应服务器。
具体地在步骤S1中设备1获取数据库日志文件列表是指获取用于备份的数据库日志文件列表。在此,所述日志文件列表是指包含日志字段、日志状态及其它相关信息的列表,其中,日志字段包括但不限于日志文件名称(包含文件路径)、生成日志文件的线程号、日志序号、重置日志ID。优选地,用于备份的数据库日志通常是指归档日志但不限于此,如图5所示,查询需要备份的数据库中视图V$ARCHIVED_LOG获得数据库归档日志列表,其中,获取数据库需要备份的日志列表的方法还包括从数据库字典X$KCCAL中查询,及利用RMAN(RecoveryManager)这一用于备份(backup)、还原(restore)和恢复(recover)数据库的工具查询。基于所获取的数据库日志文件列表可对需要备份的日志进行文件获取,或针对性处理例如筛选、过滤,或用于已备份文件清单对比等操作,为实现自动备份数据库日志做准备。
本领域技术人员应能理解上述获取数据库日志文件列表的方式仅为举例,其他现有的或今后可能出现的获取数据库日志文件列表的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接着,在步骤S2中设备1将所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列是指根据所获取的日志文件列表,将其中需要备份的日志按预定的次序进行排序,并将排序后的日志文件列表放入传输队列。在此,所述传输队列是指存储用于备份的数据库的日志列表或文件的队列,备份时,从传输队列中依次取出,将相应的日志文件进行备份。所述预置日志次序是指日志排序的标准,例如,依照日志生成时间排序,或依照日志文件大小排序但不限于此。将列表中的日志按预置日志次序进行排序的目的是使得日志备份有序且连续,在日志备份中断或其它导致未备份完全或文件备份时上传失败的情况下,使得备份恢复时可按次序优先查找或恢复日志。例如,将日志按照日志序号LSN(LogSequenceNumber)备份,假设需要备份的日志文件LSN分别为1、2、3、4、5,若不排序乱序备份,如1、2、5、3、4,则从2之后的文件都无法使用;若备份过程中调过某些文件,如1、2、4、5,则从2之后的都无法使用。
本领域技术人员应能理解上述按预置日志次序排序日志文件列表的方式仅为举例,其他现有的或今后可能出现的按预置日志次序排序日志文件列表的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接着,在步骤S3中设备1获取所述日志文件列表对应的日志文件是指根据日志文件列表获取列表中日志对应的日志文件,在此,这一获取操作优选在日志文件列表排序后进行,更优选地,将所获取的日志文件统一放入另建的指定目录,例如/tmp目录,从而避免获取不需要备份的日志文件而造成资源浪费,并在传输时可从同一目录下提取日志文件,提高日志备份的效率。优选地,当从RAC环境中的ASM系统中获取相应的日志文件时,首先判断归档日志文件是否处于ASM系统中,即判断文件路径是否以加号(+)开头。在判断文件处于ASM系统中后,获取日志文件的方法包括但不限于如下方式:将日志文件进行复制从而进行获取;或使用ASM相关编程接口直接访问ASM中的文件和数据进行获取;或者使用ASM提供的命令行工具将ASM中归档日志复制;或为了保证兼容各个数据库版本,使用RMAN的BACKUPASCOPYARCHIVELOGLIKE'XXX'FORMAT'XXX'命令进行日志文件复制。
获取所述日志文件列表对应的日志文件使得日志备份实现自动化,降低人工成本,提升工作效率,且适用于RAC环境中的ASM系统中日志自动备份,且因使用目录存储所获取的日志文件,使得用户原有设置,例如归档日志大小,原有归档日志自动生成周期等不受影响
本领域技术人员应能理解上述获取所述日志文件列表对应的日志文件的方式仅为举例,其他现有的或今后可能出现的获取所述日志文件列表对应的日志文件的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
接着,在步骤S4中设备1根据所述日志次序传输所述日志文件至对应服务器是指将所获取的日志文件传输至对应的服务器从而进行备份,例如从/tmp目录中按传输队列中的日志列表次序取出日志文件传输至对应的服务器。如图5中所示,日志传输时可优选对日志文件进行压缩和加密,使得备份过程安全可靠。
图4示出根据本申请另一个方面的一种用于数据库日志备份的方法流程图。所述方法包括步骤S1、步骤S2、步骤S3、步骤S4、步骤S5、步骤S6。
具体地,在步骤S1中设备1获取数据库日志文件列表,根据过滤条件筛选所述日志文件列表;在步骤S2中设备1将筛选后的所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列;在步骤S3中设备1若所述日志文件处于存储自动管理系统中,使用RMAN获取所述日志文件列表对应的日志文件;在步骤S4中设备1更新所述日志次序,根据所述日志次序传输所述日志文件至对应服务器;在步骤S5中设备1若所述日志文件传输失败,将传输失败的所述日志文件列表放入重传队列;在步骤S6中设备1若所述日志文件传输成功,将所述重传队列中日志文件列表放入所述传输队列。
具体地,在步骤S1中设备1获取数据库日志文件列表,根据过滤条件筛选所述日志文件列表。因为通过需要备份的数据库中视图V$ARCHIVED_LOG,或数据库字典X$KCCAL中查询,或利用RMAN工具查询所获取的数据块日志文件列表可能包含所有曾经生成的归档日志(如果存在catalog数据库)或者最近生成的有限次数的归档日志记录(无catalog数据库,受限于控制文件大小),这些记录中包含若干类型的归档日志记录,因此,需要根据具体类型情况对日志列表进行过滤和筛选。具体包括以下四类但不限于这四类,其它需要筛选和剔除的类型均包含于此:不需要备份的归档日志,归档日志备份的起点应是最近一次level0的数据文件备份,在此之前的归档日志不需要备份;已备份的归档日志:已备份的归档日志将被程序记录在一份清单文件中,视图中包含在清单文件中的归档日志记录将被排除,不需要备份;备份失败的归档日志,归档日志文件获取失败的主要原因可能包括权限不足、文件被删除、磁盘空间不足等,对于这些情况,失败的原因将被记录,且通知数据库管理员,这些归档日志文件不会再次尝试获取。此外,不完整的日志、不可用的日志以及重复日志可通过设置过滤条件,通过日志状态信息以及相关字段信息进行过滤。通过对日志文件列表进行过滤,排除了不稳定的情况,使得备份日志完整,备份过程稳定,避免了存在多个归档日志路径且生成多份重复的归档日志,或存在多个归档日志路径但并非每一路径下均存在归档日志等不良备份状况。
优选地,所述过滤条件包括以下至少一项:排除指定日志文件信息缺失的日志;排除日志状态是不可用的日志;排除重复的日志。其中,所述排除指定日志文件缺失的日志是指如图5中所示,归档日志文件列表获取模块中排除不完整的归档日志,即新的归档日志生成过程中,在数据库进程完成对新归档日志修改前,新的记录即会被添加进此视图,为防止读取到不完整的归档日志文件,需要排除日志文件信息中包括如下字段名的日志,包括但不限于:日志文件名称(包含文件路径),如字段NAME;生成日志文件的线程号,如字段THREAD#、日志序号,如字段SEQUENCE#、重置日志ID,如字段RESETLOGS_ID且内容为NULL的记录。所述排除日志状态是不可用的日志是指如图5中所示归档日志文件列表获取模块中排除已删除的归档日志,即归档日志文件有可能已被删除,但记录依旧存在,为排除已删除的归档日志,需排除日志状态信息中包括已删除信息的日志,例如字段名为STATUS且内容不是’A’的记录。所述排除重复的日志是指如图5中所示归档日志文件列表获取模块中去除重复归档日志记录,即如存在多个归档日志路径,有可能存在多份重复的归档日志,可按照归档日志线程号(THREAD#)和日志序号(SEQUENCE#)分组,相同的线程号和日志序号的归档日志记录只取其中一条,因为满足前述条件的日志文件内容都是相同的,原则上任何一条均可,因此实际上选取是随机的。
接着,在步骤S2中设备1将筛选后的所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列。即将上述筛选后的日志按一定的日志次序排序后放入传输列表,从而使得在传输列表中的日志均为经过过滤的日志,避免了重复备份日志,或者备份日志不完整、缺失的情况,因而备份过程稳定可依靠。优选地,所述以预置日志次序排列包括以所述日志文件生成时间排序。将列表中的日志按生成时间进行排序的目的是使得日志备份连续,例如,将日志按照日志序号LSN(LogSequenceNumber)备份,假设需要备份的日志文件LSN分别为1、2、3、4、5,若不排序乱序备份,如1、2、5、3、4,则从2之后的文件都无法使用;若备份过程中调过某些文件,如1、2、4、5,则从2之后的都无法使用,因此按生成时间排序备份日志,使得日志备份中断或其它导致未备份完全或文件备份时上传失败的情况下,使得备份恢复时可按次序优先查找或恢复日志,否则一旦中间某归档日志文件未备份,之后的归档日志在恢复时也是无法使用的。
接着,在步骤S3中设备1若所述日志文件处于存储自动管理系统中,使用RMAN获取所述日志文件列表对应的日志文件。即如图5中归档日志文件获取模块中所示,判断归档日志文件是否处于ASM中,即判断文件路径是否以加号(+)开头,是以加号开头则;把ASM中归档日志复制进/tmp目录,为了保证兼容各个数据库版本,选择的复制方法为使用RMAN的BACKUPASCOPYARCHIVELOGLIKE'XXX'FORMAT'XXX'命令。优选地,等待归档日志文件输完,/tmp目录下的归档日志文件过多会导致数据库视图中归档日志记录增加。对此,再使用RMAN的DELETENOPROMPTARCHIVELOG'XXX'命令,删除此归档日志文件和记录。在此,/tmp目录的创建是可选的,只要空间足够即可,同时,ASM的兼容困难在于ASM不同版本需要不同的方式访问文件,通过RMAN是一个兼容性很高的方法。通过使用RMAN(RecoveryManager)这一用于备份(backup)、还原(restore)和恢复(recover)数据库的工具,按日志在传输队列中的排序列表对需要备份的日志文件进行统一获取,使得本申请的备份方式得以在不同版本的数据库中使用。同时,日志文件的来源都是已生成的日志文件。这些日志文件的生成位置是用户原有的设定,日志文件的生成方式和计划也是用户的设定,RMAN复制日志文件传输后,即删除复制的日志文件和记录,对于用户原有的日志文件记录不产生影响。
接着,在步骤S4中设备1更新所述日志次序,根据所述日志次序传输所述日志文件至对应服务器。正常情况下,按日志列表次序从从传输队列中取出第一个,将其备份至服务器,在发送故障或其它导致备份传输失败的情况后,如图5中归档日志列表排序模块所示,在网络恢复时更新日志次序,将重传队列中记录移至传输队列的头部,使得尽快传输最旧的归档日志,以保证归档日志的连续性。在此,更新日志次序根据具体情况而定,通常用在存在重传队列需要放入传输队列对之前因各种状况传输失败的文件进行重传的情况。
接着,在步骤S5中设备1若所述日志文件传输失败,将传输失败的所述日志文件列表放入重传队列。即如图5中归档日志列表排序模块所示,将传输队列中传输失败的归档日志记录加入重传队列。在此重传队列是指用于存储因各种状况,例如,网络故障、网络连接频繁、长时间断开。网络带宽短时间内不足、备份进程被异常杀死或重启等情况,而导致的日志文件传输失败从而需要进行重传再次尝试备份的日志文件列表。例如下例所示:有传输队列:abcdef;重传队列:。当a传输成功,有传输队列:bcdef;重传队列:。当b传输失败,有传输队列:cdef;重传队列:b。当c传输失败,有传输队列:def;重传队列:bc。
接着,在步骤S6中设备1若所述日志文件传输成功,将所述重传队列中日志文件列表放入所述传输队列。即例如某归档日志传输成功,检查重传队列是否为空,如不为空,将重传队列中归档日志移至传输队列头部。接上文示例:当d传输成功,检查重传队列中有bc,移至传输队列头部,因此有传输队列:bcef;重传队列:。当b传输成功,有传输队列:cef;重传队列:。当c传输成功,有传输队列:ef;重传队列:。通过设置重传队列存储备份失败的日志文件列表,在环境稳定后送入传输队列进行重传,使得备份稳定可靠,降低数据丢失风险。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
Claims (14)
1.一种用于数据库日志备份的方法,其中,该方法包括:
获取数据库日志文件列表;
将所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列;
获取所述日志文件列表对应的日志文件;
根据所述日志次序传输所述日志文件至对应服务器。
2.根据权利要求1所述的方法,其中,所述获取数据库日志文件列表包括:
获取数据库日志文件列表,根据过滤条件筛选所述日志文件列表;
其中,所述将所述日志文件列表放入传输队列包括:
将筛选后的所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列。
3.根据权利要求2所述的方法,其中,所述过滤条件包括以下至少一项:
排除指定日志文件信息缺失的日志;
排除日志状态是不可用的日志;
排除重复的日志。
4.根据权利要求1所述的方法,其中,所述以预置日志次序排列包括以所述日志文件生成时间排序。
5.根据权利要求1所述的方法,其中,所述方法还包括:
若所述日志文件传输失败,将传输失败的所述日志文件列表放入重传队列;
若所述日志文件传输成功,将所述重传队列中日志文件列表放入所述传输队列。
6.根据权利要求1或5所述的方法,其中,所述根据所述日志次序传输所述日志文件至对应服务器包括:
更新所述日志次序,根据所述日志次序传输所述日志文件至对应服务器。
7.根据权利要求1所述的方法,其中,所述获取所述日志文件列表对应的日志文件包括:
若所述日志文件处于存储自动管理系统中,使用RMAN获取所述日志文件列表对应的日志文件。
8.一种用于数据库日志备份的设备,其中,该设备包括:
日志文件列表获取装置,用于获取数据库日志文件列表;
传输队列处理装置,用于将所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列;
日志文件获取装置,用于获取所述日志文件列表对应的日志文件;
日志文件传输装置,用于根据所述日志次序传输所述日志文件至对应服务器。
9.根据权利要求8所述的设备,其中,所述日志文件列表获取装置用于:
获取数据库日志文件列表,根据过滤条件筛选所述日志文件列表;
其中,所述传输队列处理装置用于:
将筛选后的所述日志文件列表放入传输队列,其中,所述日志文件列表中日志以预置日志次序排列。
10.根据权利要求9所述的设备,其中,所述过滤条件包括以下至少一项:
排除指定日志文件信息缺失的日志;
排除日志状态是不可用的日志;
排除重复的日志。
11.根据权利要求8所述的设备,其中,所述以预置日志次序排列包括以所述日志文件生成时间排序。
12.根据权利要8所述的设备,其中,所述设备还包括:
传输失败处理装置,用于若所述日志文件传输失败,将传输失败的所述日志文件列表放入重传队列;
传输成功处理装置,用于若所述日志文件传输成功,将所述重传队列中日志文件列表放入所述传输队列。
13.根据权利要求8或12所述的设备,其中,所述日志文件传输装置用于:
更新所述日志次序,根据所述日志次序传输所述日志文件至对应服务器。
14.根据权利要求8所述的设备,其中,所述日志文件获取装置用于:
若所述日志文件处于存储自动管理系统中,使用RMAN获取所述日志文件列表对应的日志文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610222115.4A CN105787135A (zh) | 2016-04-11 | 2016-04-11 | 一种用于数据库日志备份的方法与设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610222115.4A CN105787135A (zh) | 2016-04-11 | 2016-04-11 | 一种用于数据库日志备份的方法与设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105787135A true CN105787135A (zh) | 2016-07-20 |
Family
ID=56395264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610222115.4A Pending CN105787135A (zh) | 2016-04-11 | 2016-04-11 | 一种用于数据库日志备份的方法与设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105787135A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659247A (zh) * | 2018-06-13 | 2020-01-07 | 中国移动通信集团江西有限公司 | 话单文件连续性检测方法、装置、设备及介质 |
CN110807064A (zh) * | 2019-10-28 | 2020-02-18 | 北京优炫软件股份有限公司 | Rac分布式数据库集群系统中的数据恢复装置 |
CN112732488A (zh) * | 2021-01-11 | 2021-04-30 | 浪潮云信息技术股份公司 | 一种采用cmsp同步数据实现虚机内数据库备份的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101163265A (zh) * | 2007-11-20 | 2008-04-16 | 中兴通讯股份有限公司 | 基于分布式数据库的彩信日志查询方法与系统 |
CN102780726A (zh) * | 2011-05-13 | 2012-11-14 | 中兴通讯股份有限公司 | 一种基于web平台的日志分析方法及系统 |
US20140379991A1 (en) * | 2013-06-22 | 2014-12-25 | Microsoft Corporation | Latch-free, log-structured storage for multiple access methods |
-
2016
- 2016-04-11 CN CN201610222115.4A patent/CN105787135A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101163265A (zh) * | 2007-11-20 | 2008-04-16 | 中兴通讯股份有限公司 | 基于分布式数据库的彩信日志查询方法与系统 |
CN102780726A (zh) * | 2011-05-13 | 2012-11-14 | 中兴通讯股份有限公司 | 一种基于web平台的日志分析方法及系统 |
US20140379991A1 (en) * | 2013-06-22 | 2014-12-25 | Microsoft Corporation | Latch-free, log-structured storage for multiple access methods |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659247A (zh) * | 2018-06-13 | 2020-01-07 | 中国移动通信集团江西有限公司 | 话单文件连续性检测方法、装置、设备及介质 |
CN110807064A (zh) * | 2019-10-28 | 2020-02-18 | 北京优炫软件股份有限公司 | Rac分布式数据库集群系统中的数据恢复装置 |
CN110807064B (zh) * | 2019-10-28 | 2022-08-26 | 北京优炫软件股份有限公司 | Rac分布式数据库集群系统中的数据恢复装置 |
CN112732488A (zh) * | 2021-01-11 | 2021-04-30 | 浪潮云信息技术股份公司 | 一种采用cmsp同步数据实现虚机内数据库备份的方法 |
CN112732488B (zh) * | 2021-01-11 | 2023-02-28 | 浪潮云信息技术股份公司 | 一种采用cmsp同步数据实现虚机内数据库备份的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8234475B2 (en) | Save set bundling for staging | |
US9002801B2 (en) | Systems and/or methods for distributed data archiving amongst a plurality of networked computing devices | |
US9235606B1 (en) | Simplified database/log backup and restore | |
US9223661B1 (en) | Method and apparatus for automatically archiving data items from backup storage | |
CN103605585B (zh) | 一种基于数据发现的智能备份方法 | |
US7913044B1 (en) | Efficient incremental backups using a change database | |
CN103761165B (zh) | 日志备份方法及装置 | |
CN101430691A (zh) | 直接将数据从去重复存储器导出到非去重复存储器的系统和方法 | |
CN107256182A (zh) | 一种数据库还原的方法及设备 | |
CN105787135A (zh) | 一种用于数据库日志备份的方法与设备 | |
CN103927252A (zh) | 一种跨组件日志记录方法、装置及系统 | |
CN109753381B (zh) | 一种基于对象存储的持续数据保护方法 | |
CN106487852B (zh) | 实现客户端文件同步的方法、装置、终端设备及系统 | |
CN104636218A (zh) | 数据恢复方法及装置 | |
US8312237B2 (en) | Automated relocation of in-use multi-site protected data storage | |
CN108829813A (zh) | 一种基于分布式存储系统的文件快照方法及系统 | |
US9002788B2 (en) | System for configurable reporting of network data and related method | |
CN109587202B (zh) | 文件校验和数据处理之间的协同处理方法、装置及系统 | |
CN110515916B (zh) | 一种主从分布式文件处理方法、主节点、从节点及系统 | |
US8615491B2 (en) | Archiving tool for managing electronic data | |
CN104239182B (zh) | 一种集群文件系统脑裂处理方法和装置 | |
CN111611107A (zh) | 获取数据库日志的方法及装置 | |
CN108874918B (zh) | 一种数据处理装置、数据库一体机及其数据处理方法 | |
US20190065772A1 (en) | Converged Mechanism for Protecting Data | |
CN109660611B (zh) | 一种云备份的数据存储方法及存储系统的数据云备份方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160720 |