CN103761165B - 日志备份方法及装置 - Google Patents
日志备份方法及装置 Download PDFInfo
- Publication number
- CN103761165B CN103761165B CN201410018623.1A CN201410018623A CN103761165B CN 103761165 B CN103761165 B CN 103761165B CN 201410018623 A CN201410018623 A CN 201410018623A CN 103761165 B CN103761165 B CN 103761165B
- Authority
- CN
- China
- Prior art keywords
- backup process
- journal file
- backup
- metadata
- newly
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 206
- 230000008569 process Effects 0.000 claims abstract description 183
- 238000001514 detection method Methods 0.000 claims description 15
- 238000011084 recovery Methods 0.000 description 10
- 238000012544 monitoring process Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000002230 centromere Anatomy 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
Abstract
本发明公开了一种日志备份方法及装置,该方法包括:启动备份一个或多个实例对应的日志文件的一个或多个备份进程;每隔预定周期扫描由所述一个或多个备份进程中的每一个备份进程切分过的日志文件,存储每一个备份进程切分出的日志文件。采用本发明的技术方案,可以实现对日志文件的实时备份以及日志文件的中心化管理。
Description
技术领域
本发明涉及数据库技术领域,具体涉及一种日志备份方法及装置。
背景技术
MySQL关系数据库的二进制日志文件用来记录所有用户对数据库的操作,因此,当数据库发生意外时,可以通过二进制日志文件查看到用户在此文件记录的时间段内用户所做的操作,再和数据库备份配合使用,即可再现用户操作,使数据库恢复。
然而,现有技术中并没有实现对二进制日志进行实时备份的方案,如果主服务器宕机,二进制日志很有可能丢失,也就无法完成数据恢复。并且,由于所有对数据库操作的记录均会被记录到二进制文件,当二进制文件长时间开启之后,日志文件就会变得很大,占用磁盘空间,现有技术中一般通过设置日志保留时长,只保留一段时间的日志,例如,MySQL使用expire_logs_days参数设置日志的过期天数,过了指定天数后,日志将被自动删除。从而导致以前的日志丢失,不会保存完整的二进制日志;或者,定期从Master(主库所在服务器)使用数据镜像备份传送命令(rsync)或者文件复制命令(scp)等类似命令拉取至中心节点保存。现有技术存在如下缺点:
(1)查找日志需要查找主库所在服务器并登录才能取得日志,没有实现日志的中心化管理。
(2)没有实现日志的实时备份,如果主库所在服务器(Master)宕机,二进制日志很有可能丢失。
(3)二进制日志记录了对数据库执行更改的所有操作以及执行数据库操作的时间和执行时间等信息,因此,一旦需要恢复某一时间点(Point-in-time)的数据,如果没有完整的二进制日志,即使有数据库的冷备份,也无法完成数据的恢复。由于冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供一个完整的数据库,因而,当数据库处于打开状态时执行数据库文件系统备份是无效的,并且,单独使用冷备份只能提供到某一时间点上的恢复,未备份到的时间点上的数据无法恢复。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服现有技术缺陷,解决上述问题或者至少部分地解决上述问题的备份日志的装置和相应的备份日志的方法。
依据本发明的一个方面,提供了一种日志备份方法,包括:启动备份一个或多个实例对应的日志文件的一个或多个备份进程;每隔预定周期扫描由所述一个或多个备份进程中的每一个备份进程切分过的日志文件,存储每一个备份进程切分出的日志文件。
其中,所述一个或多个实例对应的日志文件的元数据被记录在元数据表中,所述元数据包括:日志文件的主库信息和备份进程最后读取的日志文件的标识和时间戳;其中,所述主库信息至少包括:主库地址、端口。
进一步地,还包括:每隔预定时间检测所述一个或多个备份进程的状态,并更新所述元数据表;其中,如果检测到正常运行的备份进程,则更新所述元数据表中所述正常运行的备份进程最后读取的日志文件的标识和时间戳;或者,如果检测到中断的备份进程,则重新启动所述中断的备份进程。
进一步地,还包括:如果重新启动所述中断的备份进程成功,则更新所述元数据表中所述中断的备份进程最后读取的日志文件的标识和时间戳;或者,如果重新启动所述中断的备份进程失败,则检测所述中断的备份进程对应的实例是否进行过主库切换;其中,如果是,则更新所述元数据表中所述实例对应的日志文件的元数据,并再次重新启动所述备份进程。
进一步地,还包括:检测是否存在新增的实例,将新增的实例对应的日志文件的元数据写入所述元数据表,并启动备份所述新增的实例对应的日志文件的备份进程。
进一步地,还包括:获取存储的每一个备份进程切分出的日志文件的时间戳,并将所述切分出的日志文件的元数据写入数据库。
根据本发明的另一方面,提供了一种日志备份装置,包括:备份模块,用于启动备份一个或多个的实例对应的日志文件的一个或多个备份进程;存储模块,用于每隔预定周期扫描由所述一个或多个备份进程中的每一个备份进程切分过的日志文件,存储每一个备份进程切分出的日志文件。
其中,所述一个或多个的实例对应的日志文件的元数据被记录在元数据表中,所述元数据包括:日志文件的主库信息和备份进程最后读取的日志文件的标识和时间戳;其中,所述主库信息至少包括:主库地址、端口。
进一步地,还包括:更新模块,用于每隔预定时间检测所述一个或多个备份进程的状态,并更新所述元数据表;进一步用于:如果检测到正常运行的备份进程,则更新所述元数据表中所述正常运行的备份进程最后读取的日志文件的标识和时间戳;或者,如果检测到中断的备份进程,则重新启动所述中断的备份进程。
进一步地,所述更新模块进一步用于:如果重新启动所述中断的备份进程成功,则更新所述元数据表中所述中断的备份进程最后读取的日志文件的标识和时间戳;或者,如果重新启动所述中断的备份进程失败,则检测所述中断的备份进程对应的实例是否进行过主库切换;其中,如果是,则更新所述元数据表中所述实例对应的日志文件的元数据,并再次重新启动所述备份进程。
进一步地,还包括:检测模块,用于检测是否存在新增的实例,将新增的实例对应的日志文件的元数据写入所述元数据表;并且,所述备份模块进一步用于启动备份所述新增的实例对应的日志文件的备份进程。
进一步地,还包括:获取模块,用于获取存储的每一个备份进程切分出的日志文件的时间戳,并将所述切分出的日志文件的元数据写入数据库。
与现有技术相比,根据本发明的技术方案存在以下有益效果:
(1)可以实现对日志文件的实时备份以及完整备份,从而能够结合数据库的备份实现很长一段时间甚至是任意时间点的数据恢复。
(2)便于对数据进行统计,例如,对每个业务的写入量,平台的日志增长量等进行统计。
(3)实现了日志的中心化管理,能够取到指定时间的日志文件,进而快速恢复指定时间点的数据。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的日志备份方法的总流程图;
图2示出了根据本发明一个实施例的每隔预定时间检测每一个备份进程的状态的流程图;以及
图3示出了根据本发明一个实施例的日志备份装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明的技术方案可以应用于对日志文件进行备份,尤其是在MySQL关系数据库中对二进制日志进行备份。MySQL关系数据库所有对数据库执行更改的操作都记录在二进制日志中,可以通过备份二进制日志,并结合数据库的备份恢复数据库。
如图1所示,图1是根据本发明一个实施例的日志备份方法的总流程图。
在步骤S101处,启动备份一个或多个实例对应的日志文件的一个或多个备份进程。即,针对数据库当前运行的一个或多个实例中每一个实例,分别创建对应的备份进程,并启动该对应的备份进程。
其中,实例就是指计算机内存中处于运行状态的数据库程序,以及为这些程序分配的一些内存空间。实例是位于内存中的,只在数据库处于运行状态时才存在。实例负责实现给用户提供网络连接、读写数据文件等等各种功能。例如,该一个或多个实例可以对应主库提供的一个或多个服务。
所述一个或多个实例可以包括“IP”(主库地址)和“端口”(端口号)标识。
其中,所述一个或多个实例对应的日志文件的元数据被记录在元数据表中,所述元数据包括:日志文件的主库信息和备份进程最后读取的日志文件的标识(即,当前日志文件的标识,例如当前日志文件名)和时间戳;其中,所述主库信息至少包括:主库地址、端口。如前所述,一个或多个实例可以对应主库的一个或多个服务,主库地址可以为该一个实例(服务)所在的主库的IP地址;端口,即该实例的端口号。
该元数据表可以如表1所示:
表1
在步骤S102处,每隔预定周期扫描由所述一个或多个备份进程中的每一个备份进程切分过的日志文件,存储每一个备份进程切分出的日志文件。
具体地,在备份进程进行日志备份时,可以基于一定规则切分日志,例如,按照日志的大小进行切分,即,当日志文件达到预设大小时进行切分,因此,可以每隔预定周期进行一次扫描,例如,以20分钟为周期,每隔20分钟扫描每个备份进程是否存在切分过的日志文件,当扫描到备份进程切分出的日志文件时,存储该切分出的日志文件,在存储该切分出的日志文件时,可以先将该切分过的日志文件进行压缩及加密,再传输至预定存储单元进行存储。
根据本发明的一个实施例,还可以包括获取存储的每一个备份进程切分出的日志文件的时间戳,并将所述切分出的日志文件的元数据写入数据库的步骤。其中,每一个备份进程切分出的日志文件的时间戳例如可以为切分过的日志文件的结束时间戳,并且,可以将每一个切分过的日志文件的元数据写入数据库中,并更新在元数据表中对应的元数据。
根据本发明的一个实施例,还可以将存储的每一个备份进程切分出的日志文件统计信息写入备份信息表中,所述备份信息表中记录的统计信息可以包括:每一个备份进程切分出的日志文件的开始时间戳、结束时间戳、更新时间戳以及该切分出的日志文件的标识(例如:日志文件名)、端口信息等,该备份信息表可以如表2所示:
表2
当想要恢复指定时间段的数据时,可以根据该备份信息表中记录的统计信息,找出在该指定时间段的日志文件,例如,可以根据该备份信息表中记录的每个切分过的日志文件的开始时间戳和结束时间戳,查找该指定时间段的日志,从而查找到该指定时间段的日志,再结合数据库的备份进行该指定时间段的数据的恢复。
根据本发明的一个实施例,还可以设置备份过滤表,该备份过滤表中可以记录写入量相对很大但数据相对不重要的实例的端口信息,根据该备份过滤表可以对写入量相对很大,但数据相对并不重要的端口的日志文件不进行备份,以节省存储空间。该备份过滤表可如表3所示:
表3
例如,可以根据实际情况,将写入量很大但是不需要备份的数据的实例端口信息添加至备份过滤表,当进行日志备份时,根据该备份过滤表,不备份该端口的日志。
上述的将日志进行备份并进行存储的过程,不仅可以实现日志文件的实时备份,并且,由于对日志文件进行了归档存储,能够实现对日志文件的完整备份以及中心化管理,进而还能够较快速的取到指定时间点的数据的日志文件,实现基于指定的时间点的数据快速恢复。
根据本发明的一个实施例,还可以包括每个预定时间检测所述一个或多个备份进程的状态,并更新所述元数据表的步骤。即,每隔预定时间检测每一个备份进程的状态,例如,检测每一个备份进程是否正常运行、是否中断等,并更新每一个备份进程对应的日志文件在元数据表中的元数据。
具体地,如果检测到正常运行的备份进程,则更新所述元数据表中所述正常运行的备份进程最后读取的日志文件的标识和时间戳;或者,如果检测到中断的备份进程,则重新启动所述中断的备份进程。
进一步地,如果重新启动所述中断的备份进程成功,则更新所述元数据表中所述中断的备份进程最后读取的日志文件的标识和时间戳,或者,如果重新启动所述中断的备份进程失败,则检测所述中断的备份进程对应的实例是否进行过主库切换。其中,主库切换是指数据库一般会采用一主多从的方式来部署,当主库出现如宕机,网络中断等情况不能正常提供写入服务时,就从主库切换到备库来恢复写入服务。
进一步地,如果所述中断的备份进程对应的实例进行过主库切换,则更新所述元数据表中所述实例对应的日志文件的元数据,并再次重新启动所述备份进程。
本发明中对所述一个或多个备份进程中每个备份进程的状态进行检测的流程都是相同,因此,下面以一个备份进程为例,具体描述检测备份进程的状态的步骤。
如图2所示,图2是根据本发明一个实施例的每隔预定时间检测每一个备份进程的状态的流程图。
在步骤S201处,每隔预定时间检测所述备份进程的状态。即,检测该备份进程处于正常运行的状态还是中断状态。例如,可以每隔一分钟去检测该备份进程的状态,即,检测该进程是否存在。其中,可以根据元数据表中记录的每个备份进程的元数据,检测每一个元数据对应的备份进程是否存在,如果检测到该备份进程存在(该进程正常运行),则进行步骤S202。
在步骤S202处,更新所述元数据表中所述备份进程最后读取的日志文件的标识和时间戳。即,更新元数据表中记录的该备份进程的最后读取的日志文件标识(例如,日志文件的名称)以及该最后读取的日志文件的时间戳(更新时间戳)。
如果在步骤S201处检测到所述备份进程中断,元数据表中已经记录了该备份进程的元数据(元数据表中记录了每一个备份进程的元数据),但根据元数据表没有检测到该备份进程的运行,则可以说明该备份进程已经中断,则进行步骤S203。
在步骤S203处,重新启动所述中断的备份进程。也就是说,如果检测到备份进程中断,则尝试重新启动该中断的备份进程,例如,设备突然断电等原因导致的备份进程中断,那么,如果重新启动该中断的备份进程成功,即,该备份进程正常运行,则执行步骤S202,更新所述元数据表中所述中断的备份进程最后读取的日志文件的标识和时间戳,由于该进程中断过,因此,重新启动后需要更新该备份进程的最后读取的日志文件以及该最后读取的日志文件的时间戳,如果重新启动所述中断的备份进程失败,则执行步骤S204。
在步骤S204处,检测所述中断的备份进程对应的实例是否进行过主库切换。也就是说,重新启动该中断的备份进程未成功,则检测该备份进程中断是否是因为该备份进程对应的实例切换了主库而导致的。例如,在MySQL关系数据库中,可以通过调度MySQL中的异常主库切换事件(abnormal_master_modification)进行定时检测,其中,如果该中断的备份进程对应的实例进行过主库切换,则可以获取该实例切换主库后的主库信息(例如,MySQL关系数据库中,可以从平台监控库的Hosts表中获取主库信息),更新元数据表中所述实例对应的日志文件的元数据,并返回步骤S203处,再次尝试重新启动该备份进程。
根据本发明的一个实施例,还可以包括检测是否存在新增的实例,将新增的实例对应的日志文件的元数据写入所述元数据表,并启动备份所述新增的实例对应的日志文件的备份进程的步骤。其中,检测是否存在新增的实例可以每隔一定时间进行一次检测,具体地,可以检测是否有没有记录当前的日志文件的新增端口,即初始化的新端口(例如,新上线的服务),如果检测到有新增的实例(初始化新端口),可以获取该新增实例的对应的日志文件的主库信息、当前产生的日志文件的标识等元数据,例如,在MySQL关系数据库中,可以对目前运行的实例进行监控,并将监控到的实例的信息记录在监控记录表中,该监控记录表中记录的信息可以包括端口号和主库地址,当有新增的实例时,调度MySQL中的update_binlog_meta事件,从该监控记录表中获取该新增实例的主库地址和端口号,并将该新增的实例对应的日志文件的元数据写入元数据表中,同时创建该新增的实例对应的日志文件的备份进程,并启动该备份进程。
下面以MySQL数据库为例,对该方法进行详细说明:
首先,根据元数据表中记录的每个实例的元数据,创建备份每个实例对应的二进制日志的备份进程,并启动。
在执行备份的过程中,对数据库上运行的实例进行监控,如果有新增实例(上线的新服务),将该实例的主库信息记录在监控记录表中,监控记录表中记录的当前正在运行的实例的主库信息,记录的格式可以为:“m_3551_172.168.3.3”,其中,m表示master,即,主库,也就是说,该记录表示地址为172.168.3.3的主库上运行一个端口号为3551的MySQL实例。通过调度MySQL中的update_binlog_meta事件,从监控记录表中获取新增实例的主库地址和端口号并写入元数据表,从而根据元数据表中创建备份该实例对应的日志文件的备份进程。
在备份进程执行备份的过程中,根据元数据表中记录的每个备份进程的元数据,通过定时任务check_mysqlbinlog_alive.sh,每隔预定时间检测每一个元数据对应的备份进程是否存在,其中,备份进程不存在的情况,一种原因可能是因为设备突然断电等原因导致的中断,则可以重启该中断的备份进程,还有另一种原因,可能是因为切换了主库造成的备份进程中断,重启时不会起作用,则可以检测是否有实例进行了主库切换,并更新该实例对应的元数据,在MySQL数据库中,可以通过异常主库切换事件(abnormal_master_modification event)进行定时检测,如果有主库切换的操作,abnormal_master_modification event会生效,扫描到主库并不是元数据中的主库时更新元数据表,并且在下次执行计划任务check_mysqlbinlog_alive.sh检测备份进程状态时,重启该备份进程,以备份新主库上的二进制日志。
在每个备份进程执行对日志文件的备份时,如果日志的写入量达到一定阈值,就会进行日志切分,产生一个完整的日志文件,通过执行计划任务archive_binlog.sh进行扫描,从而将产生的完整的日志归档到存储上。并将存储的每一个备份进程切分出的日志文件统计信息写入备份信息表中,当想要恢复指定时间段的数据时,根据该备份信息表中记录的每个切分过的日志文件的开始时间戳和结束时间戳,查找该指定时间段的日志,从而查找到该指定时间段的日志,再结合数据库的备份进行该指定时间段的数据的恢复。
本发明还提供了一种备份日志的装置。如图3所示,图3是根据本发明一实施例的日志备份装置300的结构框图。
装置300可以包括:备份模块301、存储模块302。
其中,备份模块301可以用于启动备份一个或多个的实例对应的日志文件的一个或多个备份进程。即,针对数据库当前运行的一个或多个实例中每一个实例,分别创建对应的备份进程,并启动该对应的备份进程。所述实例例如可以对应一个服务。其中,所述一个或多个的实例对应的日志文件的元数据被记录在元数据表中,所述元数据包括:日志文件的主库信息和备份进程最后读取的日志文件的标识和时间戳;其中,所述主库信息至少包括:主库地址、端口。该模块具体实现的处理还可以参见步骤S101。
存储模块302可以用于每隔预定周期扫描由所述一个或多个备份进程中的每一个备份进程切分过的日志文件,存储每一个备份进程切分出的日志文件。在备份进程进行日志备份时,可以基于一定规则切分日志,例如,按照日志的大小进行切分,即,当日志文件达到预设大小时进行切分,存储模块可以每隔预定周期进行一次扫描,当扫描到备份进程切分出的日志文件时,存储该切分出的日志文件,在存储该切分出的日志文件时,可以先将将该切分过的日志文件进行压缩及加密,再传输至预定存储单元进行存储。该模块具体实现的处理可以参见步骤S102。
根据本发明的一个实施例,装置300还可以包括更新模块,该模块可以用于每隔预定时间检测所述一个或多个备份进程的状态,并更新所述元数据表,并且进一步用于:如果检测到正常运行的备份进程,则更新所述元数据表中所述正常运行的备份进程最后读取的日志文件的标识和时间戳;或者,如果检测到中断的备份进程,则重新启动所述中断的备份进程。
根据本发明的一个实施例,所述更新模块可以进一步用于如果重新启动所述中断的备份进程成功,则更新所述元数据表中所述中断的备份进程最后读取的日志文件的标识和时间戳;或者,如果重新启动所述中断的备份进程失败,则检测所述中断的备份进程对应的实例是否进行过主库切换,进一步地,如果所述中断的备份进程对应的实例进行过主库切换,则所述更新模块可以更新所述元数据表中所述实例对应的日志文件的元数据,并再次重新启动所述备份进程。该模块具体实现的处理还可以参见步骤S201~S204。
根据发明的一个实施例,装置300还可以包括:检测模块,该检测模块可以用于检测是否存在新增的实例,将新增的实例对应的日志文件的元数据写入所述元数据表,并且,所述备份模块可以进一步用于启动备份所述新增的实例对应的日志文件的备份进程。其中,检测模块可以每隔一定时间进行检测是否存在新增的实例,具体地,可以检测是否有没有记录最后一个日志文件的新增端口,即初始化的新端口(例如,新上线的服务),如果检测到有新增的实例(初始化新端口),可以获取该新增实例的对应的日志文件的主库信息、当前产生的日志文件的标识等元数据。
根据本发明的一个实施例,装置300还可以包括获取模块,可以用于获取存储的每一个备份进程切分出的日志文件的时间戳,并将所述切分出的日志文件的元数据写入数据库。其中,每一个备份进程切分出的日志文件的时间戳例如可以为切分过的日志文件的结束时间戳,并且,可以将每一个切分过的日志文件的元数据写入数据库中,并更新在元数据表中对应的元数据。
根据本发明的一个实施例,装置300还可以包括统计模块,该模块可以用于将存储的每一个备份进程切分出的日志文件统计信息写入备份信息表中,所述备份信息表中记录的统计信息可以包括:每一个备份进程切分出的日志文件的开始时间戳、结束时间戳、更新时间戳以及该切分出的日志文件的标识、端口信息等,当想要恢复指定时间点的数据时,可以根据该备份信息表中记录的每个切分过的日志文件的结束时间戳,先查找该指定时间点的数据的日志的位置,从而查找到该指定时间点的日志,进行该指定时间点的数据的恢复。
根据本发明的一个实施例,装置300还可以包括过滤表设置模块,该模块可以用于设置备份过滤表,该备份过滤表中可以记录写入量相对很大当数据相对不重要实例的端口的信息,根据该备份过滤表可以对写入量相对很大,但数据相对并不重要的端口的数据的日志文件不进行备份,以节省存储空间。
由于本实施例的装置所实现的功能基本相应于前述图1至图2所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此不做赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的备份日志的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (12)
1.一种日志备份方法,其包括:
启动备份一个或多个实例对应的日志文件的一个或多个备份进程,其中在备份进程进行备份时,基于预设规则切分日志;所述基于预设规则切分日志,包括:按照日志的大小进行日志切分;
每隔预定周期扫描所述一个或多个备份进程中的每一个备份进程是否存在切分过的日志文件,若是,则实时存储每一个备份进程切分出的日志文件。
2.根据权利要求1所述的方法,其中,所述一个或多个实例对应的日志文件的元数据被记录在元数据表中,所述元数据包括:日志文件的主库信息和备份进程最后读取的日志文件的标识和时间戳;其中,所述主库信息至少包括:主库地址、端口。
3.根据权利要求2所述的方法,其中,还包括:
每隔预定时间检测所述一个或多个备份进程的状态,并更新元数据表;其中,
如果检测到正常运行的备份进程,则更新所述元数据表中所述正常运行的备份进程最后读取的日志文件的标识和时间戳;或者,
如果检测到中断的备份进程,则重新启动所述中断的备份进程。
4.根据权利要求3所述的方法,其中,还包括:
如果重新启动所述中断的备份进程成功,则更新所述元数据表中所述中断的备份进程最后读取的日志文件的标识和时间戳;或者,
如果重新启动所述中断的备份进程失败,则检测所述中断的备份进程对应的实例是否进行过主库切换;其中,如果是,则更新所述元数据表中所述实例对应的日志文件的元数据,并再次重新启动所述备份进程。
5.根据权利要求3所述的方法,其中,还包括:
检测是否存在新增的实例,将新增的实例对应的日志文件的元数据写入所述元数据表,并启动备份所述新增的实例对应的日志文件的备份进程;和/或
获取存储的每一个备份进程切分出的日志文件的时间戳,并将所述切分出的日志文件的元数据写入数据库。
6.根据权利要求2或4所述的方法,其中,还包括:
检测是否存在新增的实例,将新增的实例对应的日志文件的元数据写入所述元数据表,并启动备份所述新增的实例对应的日志文件的备份进程;和/或
获取存储的每一个备份进程切分出的日志文件的时间戳,并将所述切分出的日志文件的元数据写入数据库。
7.一种日志备份装置,其中,包括:
备份模块,用于启动备份一个或多个的实例对应的日志文件的一个或多个备份进程,其中在备份进程进行备份时,基于预设规则切分日志;所述基于预设规则切分日志,包括:按照日志的大小进行日志切分;
存储模块,用于每隔预定周期扫描所述一个或多个备份进程中的每一个备份进程是否存在切分过的日志文件,若是,则实时存储每一个备份进程切分出的日志文件。
8.根据权利要求7所述的装置,其中,所述备份模块还包括:
所述一个或多个的实例对应的日志文件的元数据被记录在元数据表中,所述元数据包括:日志文件的主库信息和备份进程最后读取的日志文件的标识和时间戳;其中,所述主库信息至少包括:主库地址、端口。
9.根据权利要求8所述的装置,其中,还包括:
更新模块,用于每隔预定时间检测所述一个或多个备份进程的状态,并更新元数据表;进一步用于:
如果检测到正常运行的备份进程,则更新所述元数据表中所述正常运行的备份进程最后读取的日志文件的标识和时间戳;或者,
如果检测到中断的备份进程,则重新启动所述中断的备份进程。
10.根据权利要求9所述的装置,其中,所述更新模块进一步用于:
如果重新启动所述中断的备份进程成功,则更新所述元数据表中所述中断的备份进程最后读取的日志文件的标识和时间戳;或者,
如果重新启动所述中断的备份进程失败,则检测所述中断的备份进程对应的实例是否进行过主库切换;其中,如果是,则更新所述元数据表中所述实例对应的日志文件的元数据,并再次重新启动所述备份进程。
11.根据权利要求9所述的装置,其中,还包括:
检测模块,用于检测是否存在新增的实例,将新增的实例对应的日志文件的元数据写入所述元数据表;并且,所述备份模块进一步用于启动备份所述新增的实例对应的日志文件的备份进程;和/或
获取模块,用于获取存储的每一个备份进程切分出的日志文件的时间戳,并将所述切分出的日志文件的元数据写入数据库。
12.根据权利要求8或10所述的装置,其中,还包括:
检测模块,用于检测是否存在新增的实例,将新增的实例对应的日志文件的元数据写入所述元数据表;并且,所述备份模块进一步用于启动备份所述新增的实例对应的日志文件的备份进程;和/或
获取模块,用于获取存储的每一个备份进程切分出的日志文件的时间戳,并将所述切分出的日志文件的元数据写入数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410018623.1A CN103761165B (zh) | 2014-01-15 | 2014-01-15 | 日志备份方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410018623.1A CN103761165B (zh) | 2014-01-15 | 2014-01-15 | 日志备份方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103761165A CN103761165A (zh) | 2014-04-30 |
CN103761165B true CN103761165B (zh) | 2017-10-24 |
Family
ID=50528407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410018623.1A Active CN103761165B (zh) | 2014-01-15 | 2014-01-15 | 日志备份方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103761165B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391891B (zh) * | 2014-11-11 | 2017-12-05 | 上海新炬网络信息技术股份有限公司 | 一种数据库异构复制方法 |
CN105045679B (zh) * | 2015-07-08 | 2018-01-30 | 安徽兆尹信息科技股份有限公司 | 一种用于金融管理网络系统的数据库备份与恢复方法 |
KR101643729B1 (ko) * | 2015-10-28 | 2016-07-29 | 주식회사 인피니플럭스 | 시간 기반 데이터에 대한 백업, 리스토어, 및 마운트를 위한 데이터 관리 시스템 및 방법 |
CN105677515B (zh) * | 2016-01-08 | 2018-08-07 | 上海达梦数据库有限公司 | 一种数据库联机备份方法及系统 |
CN105955845A (zh) * | 2016-04-26 | 2016-09-21 | 浪潮电子信息产业股份有限公司 | 一种数据恢复方法及装置 |
CN107844386B (zh) * | 2016-09-19 | 2020-11-27 | 北京金山云网络技术有限公司 | 一种数据备份、恢复方法及装置 |
CN107480166A (zh) * | 2017-06-26 | 2017-12-15 | 杭州沃趣科技股份有限公司 | 一种数据库数据对象审计的方法 |
CN107357919A (zh) * | 2017-07-21 | 2017-11-17 | 携程旅游网络技术(上海)有限公司 | 行为日志查询系统及方法 |
CN107766208B (zh) * | 2017-10-27 | 2021-01-05 | 深圳市中润四方信息技术有限公司 | 一种监控业务系统的方法、系统及装置 |
CN108170584A (zh) * | 2017-12-26 | 2018-06-15 | 广东欧珀移动通信有限公司 | 日志处理方法、装置、存储介质及终端设备 |
CN108874592B (zh) * | 2018-06-20 | 2020-04-10 | 焦点科技股份有限公司 | 一种针对Log-structured存储引擎的数据冷备方法及系统 |
CN112579616A (zh) * | 2019-09-29 | 2021-03-30 | 北京国双科技有限公司 | 任务处理方法、装置、存储介质和电子设备 |
CN111949627B (zh) * | 2020-08-14 | 2023-12-15 | 深圳市智汇云网络科技有限公司 | 用于表格化日志文件的方法、装置、电子设备和介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339298A (zh) * | 2010-07-28 | 2012-02-01 | 中国移动通信集团公司 | Sql脚本元数据的更新方法、装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7249281B2 (en) * | 2003-07-28 | 2007-07-24 | Microsoft Corporation | Method and system for backing up and restoring data of a node in a distributed system |
CN103268351B (zh) * | 2013-05-31 | 2017-05-03 | 网易(杭州)网络有限公司 | 一种数据同步方法和设备 |
-
2014
- 2014-01-15 CN CN201410018623.1A patent/CN103761165B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102339298A (zh) * | 2010-07-28 | 2012-02-01 | 中国移动通信集团公司 | Sql脚本元数据的更新方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
使用linux自带的logrotate对nginx日志进行分割;matthew0701;《51CTO博客》;20110315;第1-2页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103761165A (zh) | 2014-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103761165B (zh) | 日志备份方法及装置 | |
US9183268B2 (en) | Partition level backup and restore of a massively parallel processing database | |
CN110249321B (zh) | 用于从分布式数据源中捕获变更数据以供异构目标使用的系统和方法 | |
US8250033B1 (en) | Replication of a data set using differential snapshots | |
US20070208918A1 (en) | Method and apparatus for providing virtual machine backup | |
CN102981931B (zh) | 虚拟机备份方法及装置 | |
US8239348B1 (en) | Method and apparatus for automatically archiving data items from backup storage | |
US20070027935A1 (en) | Backing up source files in their native file formats to a target storage | |
US20170060701A1 (en) | File-based cluster-to-cluster replication recovery | |
US20160048427A1 (en) | Virtual subdirectory management | |
US8712966B1 (en) | Backup and recovery of distributed storage areas | |
US11675741B2 (en) | Adaptable multi-layered storage for deduplicating electronic messages | |
US20140156603A1 (en) | Method and an apparatus for splitting and recovering data in a power system | |
EP3238063B1 (en) | Techniques for data backup and restoration | |
US7415585B1 (en) | Space-optimized backup repository grooming | |
US11573861B2 (en) | Continuous data protection using a write filter | |
US7941619B1 (en) | Space-optimized backup set conversion | |
WO2017014814A1 (en) | Replicating memory volumes | |
CN114968966A (zh) | 分布式元数据远程异步复制方法、装置和设备 | |
CN104636218B (zh) | 数据恢复方法及装置 | |
US11099946B1 (en) | Differential restore using block-based backups | |
CN107402841B (zh) | 大规模分布式文件系统数据修复方法及设备 | |
CN110895545A (zh) | 共享数据同步方法及装置 | |
US8595271B1 (en) | Systems and methods for performing file system checks | |
US7865472B1 (en) | Methods and systems for restoring file systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220725 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |