本申请公开了日志文件处理方法、系统、电子设备和可读存储介质,该方法包括:生成日志,其中,所述日志用于记录对数据库进行的操作,将所述日志保存临时文件中;将保存有所述日志的临时文件按照日志文件的格式转换为日志文件。通过本申请解决了在生成数据库的日志文件时耗时比较长所导致的数据库稳定性下降的问题,进而提高了数据库的稳定性。进而提高了数据库的稳定性。进而提高了数据库的稳定性。
【技术实现步骤摘要】
日志文件处理方法、系统、电子设备和可读存储介质
[0001]本申请涉及到数据库领域,具体而言,涉及日志文件处理方法、系统、电子设备和可读存储介质。
技术介绍
[0002]稳定性是衡量数据库产品的一个重要指标,是在用户选择数据库产品的过程中比较看重的指标之一。
[0003]数据库在执行操作的时候,可以采用事件的方式来进行。事件是数据库在相应的时刻调用的过程式数据库对象。事件是按调度表运行的任务。这些事件可称为“调度事件”。创建事件时,会将其创建为命名数据库对象,其中包含在特定时间执行或定期重复发生的SQL语句(或存储过程)。在事件执行的过程中,会涉及到二进制日志(Binlog)文件的生成。
[0004]二进制日志(Binlog)是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到Binlog里,但是对库表等内容的查询不会记录。默认情况下,Binlog日志是二进制格式的,不能使用查看文本工具的命令查看,而使用对应的工具进行解析查看。Binlog可以用在数据库恢复中,例如,当有数据写入到数据库时,还会同时把更新的SQL语句写入到对应的Binlog文件里。在进行数据库备份的时候可以只对一段时间的数据进行全部备份,但是如果备份后发现数据库服务器故障,这个时候可以根据Binlog中记载的更新语句来进行数据库恢复。
[0005]如果一个事务包括了大量的数据库操作的情况下,该事务可以被称为大事务。在数据库执行大事务的过程中,由于日志量比较大,导致生成Binlog文件时耗时比较长,在该过程中其他事务也无法提交,导致数据库的稳定性下降,甚至会导致数据库的挂起或崩溃。
技术实现思路
[0006]本申请实施例提供了日志文件处理方法、系统、电子设备和可读存储介质,以至少解决在生成数据库的日志文件时耗时比较长所导致的数据库稳定性下降的问题。
[0007]根据本申请的一个方面,提供了一种日志文件处理方法,包括:生成日志,其中,所述日志用于记录对数据库进行的操作,将所述日志保存临时文件中;将保存有所述日志的临时文件按照日志文件的格式转换为日志文件。
[0008]根据本申请的另一个方面,还提供了一种日志文件处理系统,用于使用上述的方法对日志文件进行处理,所述日志文件中保存的日志用于记录对数据库进行的操作对应的结构化查询语言SQL语句信息。
[0009]根据本申请的另一个方面,还提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现上述的方法步骤。
[0010]根据本申请的另一个方面,还提供了一种可读存储介质,其上存储有计算机指令,其中,该计算机指令被处理器执行时实现上述的方法步骤。
[0011]在本申请实施例中,采用了生成日志,其中,所述日志用于记录对数据库进行的操作,将所述日志保存临时文件中;将保存有所述日志的临时文件按照日志文件的格式转换为日志文件。通过本申请解决了在生成数据库的日志文件时耗时比较长所导致的数据库稳定性下降的问题,进而提高了数据库的稳定性。
附图说明
[0012]构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0013]图1是根据本申请实施例的日志文件处理方法的流程图;
[0014]图2是根据本申请实施例的临时文件预留空间的示意图;以及,
[0015]图3是根据本申请实施例的日志文件处理的示意图。
具体实施方式
[0016]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0017]需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0018]在以下实施方式中涉及到数据库中的处理,下面首先对以下实施方式中涉及到的技术术语进行说明。
[0019]数据库实例
[0020]在服务器上运行起来一个数据库服务进程来对外提供数据库服务,该数据库服务进程就被称作是数据库实例。在一台服务器上如果希望运行起多个数据库服务进程,则可以开启不同的端口,通过不同的端口号来运行起多个数据库服务进程,运行起来的多个数据库服务进程就被称作是多个实例。
[0021]数据库集群
[0022]在很多场景下使用单个数据库无法满足服务的需要,在这种情况下会使用数据库集群,在数据库集群中通常会有一个主数据库(Master)和至少一个从数据库(Slave),从数据库可以看做是主数据库的备份,通过数据库集群可以提供更高的并发访问。
[0023]SQL
[0024]SQL是Structured Query Language的缩写,中文译为“结构化查询语言”。SQL是一种计算机语言,用来存储、检索和修改关系型数据库中存储的数据,例如,通过SQL可以对操作数据库进行操作,包括创建数据库、删除数据库、查询记录、修改记录、添加字段等。SQL是关系型数据库(Relational Database Service,简称为RDS)的标准语言,所有的关系型数据库管理系统都将SQL作为其标准处理语言。
[0025]数据操纵语言(Data Manipulation Language,简称为DML)是用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句,通常是数据库专用编程语言SQL之中的一个子集,例如在信息软件产业通行标准的SQL语言中,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。
[0026]数据库事件(event)
[0027]事件是数据库在相应的时刻调用的过程式数据库对象。事件是按调度表运行的任务。这些事件可称为“调度事件”。创建事件时,会将其创建为命名数据库对象,其中包含在特定时间执行或定期重复发生的SQL语句(或存储过程)。
[0028]数据库事务(transaction)
[0029]事务是由一条或多条SQL语句组成的逻辑执行单元,事务可以比喻成一个容器,里面放的就是一堆SQL语句,这些语句要么全部执行成功,要么一个都无法执行成功(原子性)。
[0030]GTID
[0031]全局事务标识(Global Transaction ID,简称为GTID)是由主库上生成的与事务绑定的唯一标识,这个标识不仅在主库上是唯一的,在数据库集群内也是唯一的。
[0032]GTID=server_uuid:transaction_id
[0033]示例:3E11FA47
‑
71CA
‑
11E1
‑
9E33
‑...
【技术保护点】
【技术特征摘要】
1.一种日志文件处理方法,包括:生成日志,其中,所述日志用于记录对数据库进行的操作,将所述日志保存临时文件中;将保存有所述日志的临时文件按照日志文件的格式转换为日志文件。2.根据权利要求1所述的方法,其中,将所述日志保存在所述临时文件中包括:在所述临时文件的对应的位置预留预定大小的空间,其中,所述预定大小的空间用于保存将所述临时文件转换为所述日志文件所缺失的信息;将所述日志保存在所述临时文件中除预留的所述空间之外的部分。3.根据权利要求2所述的方法,其中,将保存有所述日志的临时文件按照日志文件的格式转换为所述日志文件包括:将所述预定大小的空间中的所述缺失的信息保存在所述临时文件对应的位置中;将保存了所述缺失的信息的临时文件转换为所述日志文件。4.根据权利要求2所述的方法,其中,所述临时文件相比于所述日志文件缺失的信息为头部信息,和/或,所述头部信息包括以下至少之一:用于描述日志文件格式的信息、上一个日志文件结束部分记录的日志所在的数据库事务的标识信息、当前对所述数据库进行的操作所属的数据库事务的标识信息。5.根据权利要求1所述的方法,其中,生成所述日志包括:对数据库进行的每一次操作均生成一条对应的日志;在生成完一条日志之后,记录该日志的结束位置并继续生成下一条日志。6.根据权利要求1所述的方法,其中,将所述日志保存临时文件中,并将所述临时文件按照日志文件的格式转换为日志文件中包括:在通过数据库事务对所述数据库进行操作的情况下,判断所述数据库事务产生的日志大小是否超过阈值,如果超过阈值,则将所述日志保存在所述临时文件中;在所述数据库事务提交时,将所述临时文件转换成所述日志文件。7.根据权利要求1至6中任一项所述的方法,其中,在将所述日志保存在所述临时文件之前,所述方法还包括:...
【专利技术属性】
技术研发人员:武根泽,宋利兵,彭祥,李飞飞,
申请(专利权)人:阿里云计算有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。