一种保存数据库日志的方法、装置及系统的制作方法

文档序号:6518087阅读:185来源:国知局
一种保存数据库日志的方法、装置及系统的制作方法
【专利摘要】本发明公开了一种保存数据库日志的方法、装置及系统。所述方法包括:从数据库服务器中读取数据库的日志;将读取的数据库的日志上传到云存储系统进行保存。本发明实现了对数据库日志的持久化保存,保证单节点数据库的数据持久性,并且根据持久保存数据库的日志可以在数据库灾难恢复时将数据库的数据恢复到某个特定的时间点,并且易于获取或者统一管理数据库的日志。
【专利说明】一种保存数据库日志的方法、装置及系统
【技术领域】
[0001]本发明涉及数据存储技术,尤其涉及一种保存数据库日志的方法、装置及系统。
【背景技术】
[0002]数据库系统中,数据库的日志是保证关系型数据库具有ACID (Atomicity、Consistency、Isolation>Durability,中文全称为原子性、一致性、隔离性、持久性)特性的重要组成部分,又是高性能数据库重要的核心部分,同时也是数据库主从、主主等高可用架构的核心基石。例如,数据库的日志及数据库镜像可以用于将数据库恢复到特定的时刻,因此实时快速的永久保存数据库日志对线上系统有着非常重要的作用。
[0003]在现有数据库主从架构下,日志的读取与保存需要启动一台或者多台服务器进行,而且日志都是保存在主数据库节点或者从数据库节点上,不易于获取和统一管理。以MySQL数据库为例进行说明,图1示出了 MySQL数据库主从关系图,对数据库的日志保存方法进行了说明,首先对主数据库服务器(Master)的更新和变动(Data changes)记录在主数据库节点的日志(Binary log)中,从数据库服务器启动I/O线程(I/O thread)读取(Read)主数据库节点的日志,并保存(Writer)为中继日志(Relay log),并进行重放(Replay),由SQL (Structured Query Language,结构化查询语言)线程(SQL thread)根据中继日志将日志数据写入从数据库服务器(Slave)中。如果只有一个主数据库节点的话,当主数据库宕机后,所有的数据库中的数据将会丢失,无法保证单节点数据库的数据持久性。

【发明内容】

[0004]有鉴于此,本发明实施例提供一种保存数据库日志的方法及系统,以实现对数据库日志的持久化保存,并便于对数据库日志的统一管理。
[0005]一方面,本发明实施例提供了一种保存数据库日志的方法,所述方法包括:
[0006]从数据库服务器中读取数据库的日志;
[0007]将读取的数据库的日志上传到云存储系统进行保存。
[0008]进一步地,将读取的数据库的日志上传到云存储系统进行保存之前,还包括:
[0009]对读取的数据库的日志进行合并整理。
[0010]进一步地,从数据库服务器中读取数据库的日志,包括:
[0011]通过日志读取进程从数据库服务器中读取数据库的日志,所述日志读取进程为利用数据库主从协议伪装成数据库从节点的进程;
[0012]将读取的数据库的日志上传到云存储系统进行保存,包括:
[0013]通过日志读取进程将读取的数据库的日志上传到云存储系统进行保存。
[0014]进一步地,通过日志读取进程从数据库服务器中读取数据库的日志之前,还包括:
[0015]启动所述日志读取进程。
[0016]对应地,本发明实施例还提供了 一种保存数据库日志的装置,所述装置包括:[0017]读取模块,用于从数据库服务器中读取数据库的日志;
[0018]上传模块,用于将读取的数据库的日志上传到云存储系统进行保存。
[0019]进一步地,所述装置还包括:
[0020]整理模块,用于对读取的数据库的日志进行合并整理。
[0021]进一步地,所述读取模块用于通过日志读取进程从数据库服务器中读取数据库的日志,所述日志读取进程为利用数据库主从协议伪装成数据库从节点的进程;
[0022]所述上传模块用于通过日志读取进程将读取的数据库的日志上传到云存储系统进行保存。
[0023]进一步地,所述装置还包括:
[0024]启动模块,用于启动所述日志读取进程。
[0025]另一方面,本发明实施例还提供了一种保存数据库日志的系统,所述系统包括:云存储系统和保存数据库日志的装置;
[0026]所述保存数据库日志的装置用于将数据库的日志上传到所述云存储系统进行保存。
[0027]本发明实施例提出的保存数据库日志的方法、装置及系统,通过从数据库服务器中读取数据库的日志,并将读取的数据库的日志上传到云存储系统进行保存,避免了主数据库宕机后,所有的数据库中的数据丢失的问题,实现了对数据库日志的持久化保存,保证了单节点数据库的数据持久性,并且根据持久保存数据库的日志,可以在数据库灾难恢复时将数据库的数据恢复到某个特定的时间点,易于获取或者统一管理数据库的日志。
【专利附图】

【附图说明】
[0028]图1是现有技术中MySQL数据库主从关系图;
[0029]图2是本发明第一实施例提供的保存数据库日志的方法的流程图;
[0030]图3是本发明第二实施例提供的保存数据库日志的方法的流程图;
[0031]图4是本发明第三实施例提供的保存数据库日志的装置的示意图;
[0032]图5是本发明第四实施例提供的保存数据库日志的装置的示意图;
[0033]图6是本发明第五实施例提供的保存数据库日志的系统的示意图。
【具体实施方式】
[0034]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0035]在图2中示出了本发明的第一实施例。
[0036]图2是本发明第一实施例提供的保存数据库日志的方法的流程图,本实施例中保存数据库日志的方法可通过计算机等具有网络通信功能的设备实现,该方法详述如下:
[0037]步骤201,从数据库服务器中读取数据库的日志。
[0038]其中,数据库的日志包括数据库的变化记录。所述日志可以为文本形式的日志,也可以为二进制形式的日志,所述二进制形式的日志是日志记录的一个序列,以二进制形式记录数据库发生变化的日期及相应内容,及事务被执行的情况。例如,用户对数据库的操作会产生相应的操作信息,数据库服务器接收所述操作信息,并且根据该操作信息对数据库进行相应操作,引起数据库的变化,将所述数据库的变化记录到日志中。所述数据库服务器将所述日志保存在数据库节点上。
[0039]在主从架构的数据库中,主数据库服务器的更新和变动会记录在主数据库节点的日志中,从数据库服务器启动I/o线程读取主数据库节点的日志,并保存为中继日志,对其进行重放,且由SQL线程根据中继日志将日志数据写入从数据库服务器中。
[0040]示例性的,执行保存数据库日志的方法的设备可以实时或定期从数据库服务器中读取数据库的日志。
[0041]示例性的,从数据库服务器中读取数据库的日志,可包括:通过日志读取进程从数据库服务器中读取数据库的日志。其中,所述日志读取进程为利用数据库主从协议伪装成数据库从节点的进程。与从数据库服务器的I/o线程不同的是,所述日志读取进程负责读取并上传数据库的日志,但是并不会对所述日志进行重放,因此单个日志读取进程的性能消耗非常小。在读取数据库的日志时可利用一个或者多个日志读取进程,完成日志的读取操作。
[0042]例如,执行保存数据库日志的方法的设备可通过日志读取进程,定期或者实时地从数据库服务器中读取数据库的日志,并将所述数据库的日志保存到执行保存数据库日志的方法的设备的缓存中。
[0043]示例性的,通过日志读取进程从数据库服务器中读取数据库的日志之前,还可包括:启动所述日志读取进程。
[0044]步骤202,将读取的数据库的日志上传到云存储系统进行保存。
[0045]示例性的,将读取的数据库的日志上传到云存储系统进行保存,可包括:
[0046]通过上述日志读取进程将读取的数据库的日志上传到云存储系统进行保存。
[0047]例如,执行保存数据库日志的方法的设备可通过上述日志读取进程定期或者实时将读取到的数据库的日志上传到云存储系统中进行保存。云存储系统可以保证数据的安全性,实现数据的持久化保存,以节约本地存储空间。
[0048]云存储系统是在云计算概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储系统是一个以数据存储和管理为核心的云计算系统。
[0049]如果只存在一个主数据库节点,当主数据库节点宕机后,主数据库节点中的数据及日志将会丢失,而由于上述实施例所述的保存数据库日志的方法将数据库的日志保存在云存储系统中,这样,当数据库服务器中数据库的日志丢失时,可以提取出云存储系统中保存的数据库的日志,利用数据库的日志和数据库镜像技术恢复数据库服务器中的数据到特定的时间点。上述实施例所述的保存数据库日志的方法实现了数据库日志的持久化保存,提高了单节点数据库的数据持久性,并且,在数据库灾难恢复时可以利用保存到云存储系统中数据库的日志,将数据库的数据恢复到某个特定的时间点,有利于获取或者统一管理数据库的日志。[0050]图3示出了本发明的第二实施例。
[0051]图3是本发明第二实施例提供的保存数据库日志的方法的流程图,本实施例中保存数据库日志的方法可通过计算机等具有网络通信功能的设备实现,该方法详述如下:
[0052]步骤301,从数据库服务器中读取数据库的日志。
[0053]本实施例中,步骤301同第一实施例的步骤201,这里不再赘述。
[0054]步骤302,对读取的数据库的日志进行合并整理。
[0055]本实施例中,执行保存数据库日志的方法的设备可通过上述日志读取进程定期或者实时对读取到的数据库的日志进行合并整理,可以按照数据库的数据变化的时间进行合并分类,也可以按照数据库的数据的变化进行分类,或者按照其他方式进行合并整理。
[0056]步骤303,将读取的数据库的日志上传到云存储系统进行保存。
[0057]本实施例中,步骤303在第一实施例的步骤202的基础上,上传经过合并整理后的日志,具体实现这里不再赘述。
[0058]如果只存在一个主数据库节点,当主数据库节点宕机后,主数据库节点中的数据及数据库的日志将会丢失,而由于本实施例所述的保存数据库日志的方法将数据库的日志保存在云存储系统中,这样,当数据库服务器中数据库的日志丢失时,可以提取出云存储系统中保存的数据库的日志,利用数据库的日志和数据库镜像技术恢复数据库服务器中的数据到特定的时间点。本实施例所述的保存数据库日志的方法实现了数据库日志的持久化保存,提高了单节点数据库的数据持久性,并且,在数据库灾难恢复时可以利用保存到云存储系统中数据库的日志,将数据库的数据恢复到某个特定的时间点,有利于获取或者统一管理数据库的日志,通过对数据库的日志进行合并整理可以使用户方便地了解到数据库的变化情况。
[0059]图4示出了本发明的第三实施例。
[0060]图4是本发明第三实施例提供的一种保存数据库日志的装置的示意图。本实施例所述的保存数据库日志的装置用于实现第一实施例所述的保存数据库日志的方法。如图4所示,本实施例所述的保存数据库日志的装置包括:读取模块401和上传模块402。
[0061]其中,读取模块401用于从数据库服务器中读取数据库的日志。所述读取模块401用于实现第一实施例中步骤201所述的功能,这里不再赘述。
[0062]上传模块402用于将读取的数据库的日志上传到云存储系统进行保存。所述上传模块402用于实现第一实施例中步骤202所述的功能,这里不再赘述。
[0063]如果只存在一个主数据库节点,当主数据库宕机后,数据库中的数据及日志将会丢失,而由于本实施例所述的保存数据库日志的装置将数据库的日志保存在云存储系统中,这样,当数据库服务器中数据库的日志丢失时,可以提取出云存储系统中保存的数据库的日志,利用数据库的日志和数据库镜像技术恢复数据库服务器中的数据到特定的时间点。
[0064]本实施例所述的保存数据库日志的装置通过读取模块从数据库服务器中读取数据库的日志,上传模块将读取的数据库的日志上传到云存储系统进行保存,实现了数据库日志的持久化保存,提高了单节点数据库的数据持久性,并且,在数据库灾难恢复时可以利用保存到云存储系统中数据库的日志,将数据库的数据恢复到某个特定的时间点,有利于获取或者统一管理数据库的日志。[0065]图5示出了本发明的第四实施例。
[0066]图5是本发明第四实施例提供的一种保存数据库日志的装置的示意图。本实施例所述的保存数据库日志的装置用于实现第二实施例所述的保存数据库日志的方法。如图5所示,本实施例所述的保存数据库日志的装置包括:读取模块501、整理模块502和上传模块 503。
[0067]其中,读取模块501用于从数据库服务器中读取数据库的日志。所述读取模块501用于实现第二实施例中步骤301所述的功能,这里不再赘述。
[0068]整理模块502用于对读取的数据库的日志进行合并整理。所述整理模块502用于实现第二实施例中步骤302所述的功能,这里不再赘述。
[0069]上传模块503用于将读取的数据库的日志上传到云存储系统进行保存。所述上传模块503用于实现第二实施例中步骤303所述的功能,这里不再赘述。
[0070]本实施例所述的保存数据库日志的装置通过读取模块从数据库服务器中读取数据库的日志,整理模块对读取的数据库的日志进行合并整理,上传模块将读取的数据库的日志上传到云存储系统进行保存,实现了数据库日志的持久化保存,提高了单节点数据库的数据持久性,并且,在数据库灾难恢复时可以利用保存到云存储系统中数据库的日志,将数据库的数据恢复到某个特定的时间点,有利于获取或者统一管理数据库的日志,并且可以使用户方便地了解到数据库的变化情况。
[0071]图6示出了本发明的第五实施例。
[0072]图6是本发明第五实施例中的一种保存数据库日志的系统的示意图。如图6所示,本实施例所述的保存数据库日志的系统包括:保存数据库日志的装置601和云存储系统602 ;所述保存数据库日志的装置用于将数据库的日志上传到所述云存储系统进行保存。
[0073]其中,保存数据库日志的装置601包括:读取模块6011,用于从数据库服务器中读取数据库的日志;上传模块6012,用于将读取的数据库的日志上传到云存储系统进行保存。其中各模块的功能同第三实施例的各模块功能,这里不再赘述。优选地,保存数据库日志的装置601还包括:整理模块,用于对读取的数据库的日志进行合并整理。
[0074]云存储系统602用于保存所述数据库的日志。具体而言,云存储系统接收保存数据库的装置601上传的数据库的日志,并实现对所述数据库的日志的持久化保存。云存储系统可以保证数据的安全性,实现数据的持久化保存,并且可以节约本地存储空间。
[0075]本实施例通过保存数据库日志的装置将数据库的日志上传到所述云存储系统进行保存;实现了数据库日志的持久化保存,保证单节点数据库的数据持久性,有利于获取或者统一管理数据库的日志,并且根据持久保存数据库的日志可以在数据库灾难恢复时将数据库的数据恢复到某个特定的时间点。
[0076]注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
【权利要求】
1.一种保存数据库日志的方法,其特征在于,所述方法包括: 从数据库服务器中读取数据库的日志; 将读取的数据库的日志上传到云存储系统进行保存。
2.根据权利要求1所述的方法,其特征在于,将读取的数据库的日志上传到云存储系统进行保存之前,还包括: 对读取的数据库的日志进行合并整理。
3.根据权利要求1或2所述的方法,其特征在于,从数据库服务器中读取数据库的日志,包括: 通过日志读取进程从数据库服务器中读取数据库的日志,所述日志读取进程为利用数据库主从协议伪装成数据库从节点的进程; 将读取的数据库的日志上传到云存储系统进行保存,包括: 通过日志读取进程将读取的数据库的日志上传到云存储系统进行保存。
4.根据权利要求3所述的方法,其特征在于,通过日志读取进程从数据库服务器中读取数据库的日志之前,还包括: 启动所述日志读取进程。
5.一种保存数据库日志的装置,其特征在于,所述装置包括: 读取模块,用于从数据库服务器中读取数据库的日志; 上传模块,用于将读取的数据库的日志上传到云存储系统进行保存。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括: 整理模块,用于对读取的数据库的日志进行合并整理。
7.根据权利要求5或6所述的装置,其特征在于,所述读取模块用于通过日志读取进程从数据库服务器中读取数据库的日志,所述日志读取进程为利用数据库主从协议伪装成数据库从节点的进程; 所述上传模块用于通过日志读取进程将读取的数据库的日志上传到云存储系统进行保存。
8.通过权利要求7所述的装置,其特征在于,所述装置还包括: 启动模块,用于启动所述日志读取进程。
9.一种保存数据库日志的系统,其特征在于,所述系统包括:云存储系统和权利要求5-8中任一项所述的保存数据库日志的装置; 所述保存数据库日志的装置用于将数据库的日志上传到所述云存储系统进行保存。
【文档编号】G06F17/30GK103577577SQ201310547491
【公开日】2014年2月12日 申请日期:2013年11月6日 优先权日:2013年11月6日
【发明者】郭理靖 申请人:北京京东尚科信息技术有限公司, 北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1