CN115878382A - 数据库连续日志备份的方法、系统、装置以及存储介质 - Google Patents
数据库连续日志备份的方法、系统、装置以及存储介质 Download PDFInfo
- Publication number
- CN115878382A CN115878382A CN202211625662.9A CN202211625662A CN115878382A CN 115878382 A CN115878382 A CN 115878382A CN 202211625662 A CN202211625662 A CN 202211625662A CN 115878382 A CN115878382 A CN 115878382A
- Authority
- CN
- China
- Prior art keywords
- log
- file
- offset
- redo log
- redo
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 241000246099 Legionellales Species 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库连续日志备份的方法、系统、装置以及存储介质,属于日志备份技术领域,包括:查询归档日志列表,拷贝所有的归档日志文件;拷贝所有的重做日志文件,生成重做日志副本文件,获取当前正在写的重做日志文件路径和该文件的偏移,读取当前重做日志内容从开始位置到偏移位置,覆盖写对应的副本文件,以校准当前的重做日志副本文件内容;若偏移位置发生变化,则从当前重做日志文件中读取上次偏移和当前偏移之间的内容,覆盖写到对应的副本文件中,该数据库连续日志备份的方法、系统、装置以及存储介质,不需要安装驱动,对系统和应用没有性能影响,不会造成系统崩溃宕机,无需提前额外准备目标机,降低实施成本。
Description
技术领域
本发明属于日志备份技术领域,具体涉及数据库连续日志备份的方法、系统、装置以及存储介质。
背景技术
当前Oracle备份方法有三种:
现有第一种方法、利用Oracle自身提供的备份接口,备份接口只有备份数据文件和归档日志(archive log),没有重做日志(redo log),恢复时会丢失一部分重做日志记录的数据,对于银行等金融行业来说是无法容忍的;
现有第二种方法、整机持续数据保护,又称CDP,通过磁盘扇区层面备份数据,并安装驱动来实时捕获并备份系统和应用的数据变化,以达到备份Oracle的目的,该方法需要对生产系统安装驱动,驱动会拦截系统中变化的数据,并拷贝一份副本保存,再放行系统的变化数据,放行的越慢,对Oracle应用的性能影响就越大,另外,驱动如果存在问题,运行不稳定的话,可能会造成生产系统的崩溃宕机,导致业务中断;
现有第三种方法、Oracle同步技术方案,需要额外准备一台目标端机器,安装Oracle应用,通过解析源端Oracle的日志内容,得到SQL语句,在目标端依次重放Oralce的操作记录,已达到Oracle的备份目的,该方案只能保证目标端的数据同步到最新,没有历史时间点的数据,当源端发生勒索病毒等,目标端同样也会被勒索。本发明提供一种连续备份Oracle日志的方法,通过日志可以将Oracle恢复到指定的历史时间点数据;
当前的三种方法缺点如下:
现有第一种方法中,利用Oracle自身提供的备份接口(RMAN Image Copy),只能备份数据文件和归档日志,不能备份重做日志。需要恢复时只能恢复已经备份的数据文件和归档日志里的数据,没有重做日志会丢失一部分数据,此方法中,不支持重做日志备份,恢复时会丢失部分数据;
现有第二种方法中,Oracle应用更新或插入数据量很大时,驱动来不及处理,阻塞Oracle的操作时间长,甚至是无法继续连续备份,转为记位图的模式,等到变化数据不频繁时,再根据位图内容去读取磁盘上对应扇区的内容,并进行保存。驱动处于位图模式的时间段,备份数据是不可用的。另外,开发的驱动如果存在问题,运行不稳定的话,可能会造成生产系统的崩溃宕机,导致业务中断。总体而言该方法对用户的生产系统有性能影响,并且对系统的稳定性构成威胁,此方法影响生产机性能,对生产系统构成威胁,并且IO压力大的时候,可能该时间段无可用数据;
现有第三种方法中,需要额外准备一台目标端机器,并安装Oracle应用,在源端和目标端机器,分别安装代理程序。通过源端代理程序解析源端Oracle的日志内容,得到SQL语句,并发送给目标端的代理程序。目标端代理程序依次执行SQL语句,对目标端Oracle进行操作,达到备份Oracle的目的。该方案只能保证目标端的数据同步到最新,没有历史时间点的数据,不能回退,当源端发生勒索病毒等,目标端同样也会被勒索,此方法没有历史数据,并且需要提前额外准备一台机器,成本高;
因此,需要研发一种新的数据库连续日志备份的方法、系统、装置以及存储介质来解决现有的问题。
发明内容
本发明的目的在于提供一种数据库连续日志备份的方法、系统、装置以及存储介质,以解决无法连续备份日志的问题。
为实现上述目的,本发明提供如下技术方案:一种数据库连续日志备份的方法,包括:
查询归档日志列表,拷贝所有的归档日志文件;
拷贝所有的重做日志文件,生成重做日志副本文件,获取当前正在写的重做日志文件路径和该文件的偏移,读取当前重做日志内容从开始位置到偏移位置,覆盖写对应的副本文件,以校准当前的重做日志副本文件内容;
获取当前正在写的重做日志文件路径和该文件的偏移,若偏移位置发生变化,则从当前重做日志文件中读取上次偏移和当前偏移之间的内容,覆盖写到对应的副本文件中。
优选的,所述获取当前正在写的重做日志文件路径和该文件的偏移,若日志序号变化,产生新的归档日志文件,拷贝此归档日志文件,将上次重做日志文件的剩余内容拷贝到对应副本文件,并取当前重做日志内容从开始位置到偏移位置,覆盖写对应的副本文件。
优选的,所述查询归档日志列表步骤之前,通过Oracle的备份接口,进行完全备份,备份数据文件。
优选的,所述查询归档日志列表包括:通过Oracle的SQL语句查询归档日志列表,所述SQL语句为select name from v$archived_log。
优选的,所述获取当前正在写的重做日志文件路径和该文件的偏移方法包括:
select l.status,lf.member,k.CPODR_SEQ,k.CPODR_BNO,(k.CPODR_BNO+1)*512,k.CPODR_BOF from v$logl,v$logfilelf,x$kcccp k where l.group#=lf.group#and l.sequence#=k.CPODR_SEQ;
(k.CPODR_BNO+1)*512表示重做日志文件下一次开始写的位置;
k.CPODR_SEQ日志序号,若日志序号发生变化,则重做日志文件发生切换,备份新产生的归档日志。
本发明另提供一种数据库连续日志备份系统,所述系统包括:
查询模块,用于查询归档日志列表;
拷贝模块,用于拷贝所有的归档日志文件;
生成模块,用于重做日志副本文件;
获取模块,用于获取当前正在写的重做日志文件路径和该文件的偏移;
读取模块,用于读取当前重做日志内容从开始位置到偏移位置。
本发明另提供一种数据库连续日志备份装置,包括:
存储器,用于存储非暂时性计算机可读指令;以及
处理器,用于运行所述计算机可读指令,使得所述计算机可读指令被所述处理器执行时实现根据上述任意一项所述的数据库连续日志备份方法。
本发明另提供一种存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行上述任意一项所述的数据库连续日志备份方法。
本发明的技术效果和优点:该数据库连续日志备份的方法、系统、装置以及存储介质,通过Oracle的相关查询语句,确定当前正在写的重做日志文件和偏移位置,通过计算获得文件偏移位置,确定需要备份的归档日志文件和重做日志文件的偏移位置之间的内容,通过其他查询命令直接或者间隔获得文件偏移位置都能达到这个效果,方便恢复时使用重做日志文件,减少恢复数据丢失,使用的Oracle的查询语句和文件备份方式,不需要安装驱动,对系统和应用没有性能影响,不会造成系统崩溃宕机,无需提前额外准备目标机,降低实施成本;通过Oracle自身的视图可以获取当前正在使用的重做日志文件和对应的文件偏移位置,通过偏移来读取对应的重做日志文件内容,并写到副本文件中,循环进行,以达到连续备份重做日志文件的目的。
附图说明
图1为本发明方法的实施例的流程图;
图2为本发明方法实施例中步骤一、步骤二中的拷贝方法图;
图3为本发明方法实施例中日志序号无变化,重做日志文件没有发生切换时,获取当前偏移位置,从当前重做日志文件中读取上次偏移和当前偏移之间的内容,覆盖写到对应的副本文件中的方法示意图;
图4为本发明方法实施例中序号发生变化时原位置和备份位置拷贝归档日志和重做日志文件部分内容的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了如图1中所示的一种数据库连续日志备份的方法,包括:
步骤一:通过Oracle的SQL语句查询归档日志列表,拷贝所有的archive log文件,如图2所示,查询归档日志列表的查询语句:select name from v$archived_log;
步骤二:拷贝所有的redo log文件,生成redo log副本文件,一一对应,并通过Oracle的视图获取Oracle当前正在写的redo log文件和该文件的偏移,读取当前redo log内容从开始位置到偏移位置,覆盖写对应的副本文件,以校准当前的redo log副本文件内容,如图2所示,其中,查询当前活动redo日志文件路径,以及当前正在写的文件偏移位置的方法包括,
select l.status,lf.member,k.CPODR_SEQ,k.CPODR_BNO,(k.CPODR_BNO+1)*512,k.CPODR_BOF from v$logl,v$logfilelf,x$kcccp k where l.group#=lf.group#and l.sequence#=k.CPODR_SEQ;其中,(k.CPODR_BNO+1)*512就是redo日志下一次开始写的位置;
k.CPODR_SEQ日志序号,日志序号发生变化,说明redo log发生切换,需要备份新产生的归档日志;
步骤三:通过Oracle的视图获取Oracle当前正在写的redo log文件和该文件的偏移,如果日志序号没有变化,说明Oracle还在写同一个redo log,偏移位置没变则没有数据变化,不进行拷贝,偏移位置发生变化,从当前redo log文件中读取上次偏移和当前偏移之间的内容,覆盖写到对应的副本文件中,如图3所示,当oralce有新数据变化,但是没有发生redo log文件的切换即日志序号没变,只需要从当前redo log中拷贝上次偏移和当前偏移之间的文件内容;如图4所示,当oralce有新数据变化,并且发生redo log文件的切换即日志序号有改变,需要拷贝新archive log文件,上次redo log文件的剩余内容,以及当前redo log文件从开头位置到当前偏移位置的内容;
步骤四:循环步骤三,达到连续日志备份的目的;
步骤一中,查询归档日志列表之前,先通过Oracle的备份接口,进行完全备份,备份数据文件;
当Oracle数据库有数据插入或者更新等时,优先将操作记录保存到重做日志里,重做日志一般由固定大小的几个文件组成,并且按照次序循环覆盖写。比如redo1.log、redo2.log、redo3.log,Oracle会按照redo1.log、redo2.log、redo3.log次序覆盖写文件,当redo3.log也写满时,切换到redo1.log进行写,以此循环切换;
归档日志即archive log,是由重做日志拷贝过来的,是重做日志的归档,当redo3.log写满时,切换到redo1.log进行写,在对redo1.log进行覆盖写之前,redo1.log之前的内容已经被拷贝为归档日志文件例如archive15.log;
本发明另提供一种数据库连续日志备份系统,所述系统包括:
查询模块,用于查询归档日志列表;
拷贝模块,用于拷贝所有的归档日志文件;
生成模块,用于重做日志副本文件;
获取模块,用于获取当前正在写的重做日志文件路径和该文件的偏移;
读取模块,用于读取当前重做日志内容从开始位置到偏移位置。
本发明另提供一种数据库连续日志备份装置,包括:
存储器,用于存储非暂时性计算机可读指令;以及
处理器,用于运行所述计算机可读指令,使得所述计算机可读指令被所述处理器执行时实现根据上述任意一项所述的数据库连续日志备份方法。
本发明另提供一种存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行上述任意一项所述的数据库连续日志备份方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据库连续日志备份的方法,其特征在于:包括:
查询归档日志列表,拷贝所有的归档日志文件;
拷贝所有的重做日志文件,生成重做日志副本文件,获取当前正在写的重做日志文件路径和该文件的偏移,读取当前重做日志内容从开始位置到偏移位置,覆盖写对应的副本文件,以校准当前的重做日志副本文件内容;
获取当前正在写的重做日志文件路径和该文件的偏移,若偏移位置发生变化,则从当前重做日志文件中读取上次偏移和当前偏移之间的内容,覆盖写到对应的副本文件中。
2.根据权利要求1所述的一种数据库连续日志备份的方法,其特征在于:所述获取当前正在写的重做日志文件路径和该文件的偏移,若日志序号变化,产生新的归档日志文件,拷贝此归档日志文件,将上次重做日志文件的剩余内容拷贝到对应副本文件,并取当前重做日志内容从开始位置到偏移位置,覆盖写对应的副本文件。
3.根据权利要求1所述的一种数据库连续日志备份的方法,其特征在于:所述查询归档日志列表步骤之前,通过Oracle的备份接口,进行完全备份,备份数据文件。
4.根据权利要求1所述的一种数据库连续日志备份的方法,其特征在于:所述查询归档日志列表包括:通过Oracle的SQL语句查询归档日志列表,所述SQL语句为select namefrom v$archived_log。
5.根据权利要求1所述的一种数据库连续日志备份的方法,其特征在于:所述获取当前正在写的重做日志文件路径和该文件的偏移方法包括:
select l.status,lf.member,k.CPODR_SEQ,k.CPODR_BNO,(k.CPODR_BNO+1)*512,k.CPODR_BOF from v$logl,v$logfilelf,x$kcccp k where l.group#=lf.group# andl.sequence#=k.CPODR_SEQ;
(k.CPODR_BNO+1)*512表示redo日志下一次开始写的位置;
k.CPODR_SEQ日志序号,若日志序号发生变化,则重做日志发生切换,备份新产生的归档日志。
6.一种数据库连续日志备份系统,所述系统包括:
查询模块,用于查询归档日志列表;
拷贝模块,用于拷贝所有的归档日志文件;
生成模块,用于重做日志副本文件;
获取模块,用于获取当前正在写的重做日志文件路径和该文件的偏移;
读取模块,用于读取当前重做日志内容从开始位置到偏移位置。
7.一种数据库连续日志备份装置,包括:
存储器,用于存储非暂时性计算机可读指令;以及
处理器,用于运行所述计算机可读指令,使得所述计算机可读指令被所述处理器执行时实现根据权利要求1到5中任意一项所述的数据库连续日志备份方法。
8.一种存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时,使得所述计算机执行权利要求1到5中任意一项所述的数据库连续日志备份方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211625662.9A CN115878382A (zh) | 2022-12-16 | 2022-12-16 | 数据库连续日志备份的方法、系统、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211625662.9A CN115878382A (zh) | 2022-12-16 | 2022-12-16 | 数据库连续日志备份的方法、系统、装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115878382A true CN115878382A (zh) | 2023-03-31 |
Family
ID=85753862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211625662.9A Pending CN115878382A (zh) | 2022-12-16 | 2022-12-16 | 数据库连续日志备份的方法、系统、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115878382A (zh) |
-
2022
- 2022-12-16 CN CN202211625662.9A patent/CN115878382A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108376109B (zh) | 将来源阵列的卷复制到目标阵列的设备和方法、存储介质 | |
US7421551B2 (en) | Fast verification of computer backup data | |
EP0733235B1 (en) | Incremental backup system | |
US9645892B1 (en) | Recording file events in change logs while incrementally backing up file systems | |
US9934104B2 (en) | Metadata generation for incremental backup | |
US9563517B1 (en) | Cloud snapshots | |
US7802134B1 (en) | Restoration of backed up data by restoring incremental backup(s) in reverse chronological order | |
US8341460B2 (en) | Verification of computer backup data | |
US7310654B2 (en) | Method and system for providing image incremental and disaster recovery | |
US7484051B2 (en) | Apparatus, system and method for reliably updating a data group in a read-before-write data replication environment using a comparison file | |
US20070208918A1 (en) | Method and apparatus for providing virtual machine backup | |
US9886351B2 (en) | Hybrid image backup of a source storage | |
US20120221816A1 (en) | Incremental backup of source to target storage volume | |
KR20150081810A (ko) | 데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치 | |
US8966200B1 (en) | Pruning free blocks out of a decremental backup chain | |
US20230116105A1 (en) | On-the-fly pit selection in cloud disaster recovery | |
US9804926B1 (en) | Cataloging file system-level changes to a source storage between image backups of the source storage | |
US20160092316A1 (en) | Staged restore of a decremental backup chain | |
US20210081431A1 (en) | Any point in time replication to the cloud | |
US20050240584A1 (en) | Data protection using data distributed into snapshots | |
US11620056B2 (en) | Snapshots for any point in time replication | |
CN115878382A (zh) | 数据库连续日志备份的方法、系统、装置以及存储介质 | |
US10423494B2 (en) | Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage | |
US20170262349A1 (en) | Filtering a directory enumeration of a directory of an image backup | |
US9208033B1 (en) | Consolidating decremental backups in a decremental backup chain |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Building 1, 6th Floor, Changfeng Building, No.14 Xinghuo Road, Research and Innovation Park, Jiangbei New District, Nanjing City, Jiangsu Province, 210031 Applicant after: Aerospace One System (Jiangsu) Information Technology Co.,Ltd. Address before: 210000 floor 3, building B, building C, building 5, Baixia high tech Industrial Park, No. 5, Yongzhi Road, Qinhuai District, Nanjing, Jiangsu Province Applicant before: NANJING UNARY INFORMATION TECHNOLOGY Co.,Ltd. |