CN110674079B - 日志文件记录方法和装置 - Google Patents

日志文件记录方法和装置 Download PDF

Info

Publication number
CN110674079B
CN110674079B CN201910851741.3A CN201910851741A CN110674079B CN 110674079 B CN110674079 B CN 110674079B CN 201910851741 A CN201910851741 A CN 201910851741A CN 110674079 B CN110674079 B CN 110674079B
Authority
CN
China
Prior art keywords
log
storage location
events
event
target
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
Application number
CN201910851741.3A
Other languages
English (en)
Other versions
CN110674079A (zh
Inventor
丁晓波
褚占峰
何华峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Dt Dream Technology Co Ltd
Original Assignee
Hangzhou Dt Dream Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Dt Dream Technology Co Ltd filed Critical Hangzhou Dt Dream Technology Co Ltd
Priority to CN201910851741.3A priority Critical patent/CN110674079B/zh
Publication of CN110674079A publication Critical patent/CN110674079A/zh
Application granted granted Critical
Publication of CN110674079B publication Critical patent/CN110674079B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/113Details of archiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出一种日志文件记录方法和装置,其中,方法包括:监测连接的数据关系服务器是否切换;当数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配;确定匹配成功的第二存储位置标识对应的目标历史日志文件所在的目标存储位置;确定目标存储位置后的首个存储位置为衔接存储位置,并以衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。由此,保证了在数据关系服务器切换重连时,可以准确定位到日志文件的衔接记录位置,实现了日志文件记录的完整性和准确性。

Description

日志文件记录方法和装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种日志文件记录方法和装置。
背景技术
通常,数据关系服务器在进行数据处理时,基于日志文件记录数据的新增、删除等事件,日志文件的记录有利于数据处理的追溯等,比如,对于MySQL数据库而言,基于binlog功能实现日志文件的功能,记录数据库发生的变更(数据增删改、结构变更等)。
然而,相关技术中,当连接的数据关系服务器发生切换时,比如发生主从数据关系服务器切换时,无法保证日志文件中记录的日志事件不重复以及不丢失。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种日志文件记录方法,以保证在数据关系服务器切换重连时,可以准确定位到日志文件的衔接记录位置,实现日志文件的完整性和准确性。
本发明的第二个目的在于提出一种日志文件记录装置。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本发明第一方面实施例提出了一种日志文件记录方法,包括以下步骤:监测连接的数据关系服务器是否切换;当所述数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将所述第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配;确定匹配成功的所述第二存储位置标识对应的目标历史日志文件所在的目标存储位置;确定所述目标存储位置后的首个存储位置为衔接存储位置,并以所述衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。
为达上述目的,本发明第二方面实施例提出了一种日志文件记录装置,包括:监测模块,用于监测连接的数据关系服务器是否切换;匹配模块,用于当所述数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将所述第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配;确定模块,用于确定匹配成功的所述第二存储位置标识对应的目标历史日志文件所在的目标存储位置;记录模块,用于确定所述目标存储位置后的首个存储位置为衔接存储位置,并以所述衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。
为达上述目的,本发明第三方面实施例提出了一种计算机设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器执行所述计算机程序时,实现如本发明第一方面实施例所述的日志文件记录方法。
为了实现上述目的,本发明第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,当所述存储介质中的指令由处理器执行时,实现如本发明第一方面实施例所述的日志文件记录方法。
上述技术方法,至少包含如下技术效果:
监测连接的数据关系服务器是否切换,当数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配,确定匹配成功的第二存储位置标识对应的目标历史日志文件所在的目标存储位置,进而,确定目标存储位置后的首个存储位置为衔接存储位置,并以衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。由此,保证了在数据关系服务器切换重连时,可以准确定位到日志文件的衔接记录位置,实现了日志文件记录的完整性和准确性。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本发明一个实施例的日志文件记录方法的流程图;
图2是根据本发明一个实施例的日志文件记录方法的应用场景示意图;
图3是根据本发明一个具体实施例的日志文件记录方法的流程图;
图4为本发明实施例提供的一种日志文件记录装置的结构示意图;以及
图5为本发明实施例提供的另一种日志文件记录装置的结构示意图;
图6为本发明实施例提供的又一种日志文件记录装置的结构示意图;
图7为本发明实施例提供的再一种日志文件记录装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的日志文件记录方法和装置。本实施例中的日志文件记录方法应用在数据关系服务器的切换中,在本发明的实施例中,以该数据关系服务器为MySQL服务器,日志文件为binlog为例来辅助说明。
基于上述背景技术记载的内容可知,相关技术中,当连接的MySQL服务器发生切换时,binlog无法再切换的服务器之间完成衔接,这是由于日志文件中,对应于多个用于记录日志时间的日志文件,在MySQL服务器发生切换时,只能行为到目前对应的最后一个用于记录数据的日志文件,但是并不能定位出日志文件当前存储到的具体存储位置,比如第几个字节,因而,相关技术中,直接在该日志文件中的首个字节开始存储,或者,直接跳过该日志文件进入下一个日志文件存储数据,都可能导致日志事件记录的不完整或者日志事件被覆盖而丢失等。
为了解决上述技术问题,本发明中提供了一种可以准确定位到日志文件中的存储子节的位置,由此,实现日志事件的衔接,保证了日志事件记录的完整性和准确性。
具体而言,图1是根据本发明一个实施例的日志文件记录方法的流程图,如图1所示,该方法包括:
步骤101,监测连接的数据关系服务器是否切换。
基于以上描述不难理解,当数据关系服务器发生切换时,日志文件才有衔接不上的风险,因而,检测连接的数据关系服务器是否切换,以判断是否需要进一步定位日志事件的衔接存储位置。
作为一种可能的实现方式,检测在数据关系服务器切换之前的服务器标识和切换后的服务器标识,比较该服务器标识是否一致,若是不一致,则显然服务器发生了切换。
举例而言,server-id是MySQL用于标识自身的一个属性,是一个整型值。当两个MySQL服务器配置成主从关系时。两个MySQL服务器的server-id必须是不同的。
在每次连接MySQL服务器的时候,记录下MySQL服务器的server-id,当MySQL服务端主服务器变为不可用时,会发生主从切换,原有数据库连接会断开,当重新连接成功后,获取MySQL服务器的server-id,与先前连接的server-id相比较,若两者不同,判断为MySQL服务器发生了主从切换。
作为另一种可能的实现方式,检测在数据关系服务器切换之前的服务器地理位置和切换后的服务器地理位置,比较该服务器地理位置是否一致,若是不一致,则显然服务器发生了切换。
步骤102,当数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配。
步骤103,确定匹配成功的第二存储位置标识对应的目标历史日志文件所在的目标存储位置。
可以理解,在与数据关系服务器连接时,迭代缓存最近产生的日志事件的第一存储位置标识,以便于后续基于该日志事件的第一存储位置标识确定出最后存储的字节的位置。其中,缓存最近产生的日志事件的第一存储位置标识越多,即缓存连读的多个第一存储位置标识,越能保证后续确定的衔接存储位置的准确性。
在本发明的一个实施例中,可以根据应用场景确定第一存储位置标识缓存的数量,比如,当数据关系服务器进行的数据服务重复率较高,则确定第一存储位置标识缓存的数量较多。
具体而言,当数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配,由于第一存储位置标识是最近缓存的,因而,可以基于和日志文件中第二存储位置标识的匹配,定位出日志文件最后的存储位置。即确定匹配成功的第二存储位置标识对应的目标历史日志文件所在的目标存储位置,该目标存储位置可以理解为日志时间最后存储的目标位置。
需要说明的是,在不同的应用场景中,存储位置标识包含的内容不同,下面示例说明:
示例一:
在本示例中,当第一存储位置标识和第二日志存储位置包括日志事件时,即与数据关系服务器连接时,迭代缓存最近产生的n个日志事件,该n个日志事件大于1,应当理解的是,n越大,衔接存储位置的确定准确率越高。
获取在切换之前最近缓存的连续n个日志事件,将n个日志事件与日志文件中存储的历史日志事件匹配,显而易见的是,基于这种匹配方式可以定位出最后日志事件存储的位置。
进一步的,确定与n个日志事件一一对应的连续n个目标历史日志事件,确定连续n个目标历史日志事件所在存储字段后的首个存储字节为衔接存储位置。
当然,在实际执行过程中,将n个日志事件与日志文件中存储的历史日志事件匹配的方式不同:
作为一种可能的方式,获取在切换数据关系服务器之前日志事件最后存储的目标日志文件,倒序遍历目标日志文件中的历史日志事件,获取与连续n个日志事件中的最后一个日志事件匹配的目标历史日志事件,以目标历史日志事件为初始日志事件倒序获取包含目标历史日志事件的连续n个候选历史日志事件,进而,判断连续n个日志事件与连续n个候选历史日志事件是否匹配,若匹配成功,则确定连续n个候选历史日志事件为连续n个目标历史日志事件,若不匹配不成功,则继续倒序遍历目标日志文件中的历史日志事件,获取下一个与连续n个日志事件中的最后一个日志事件匹配的目标历史日志事件,重复上述步骤,直到找到连续n个目标历史日志事件。
举例而言,倒序遍历MySQL服务器的binlog事件,匹配之前缓存的第n个binlog事件,若事件内容相同,记录当前事件的位置,再比较之前一个binlog事件与n-1个binlog事件内容是否相同,比较n-2个……以此类推,如果n个事件都相同。记录的位置就是主从切换后的衔接存储位置。从该位置开始分析binlog事件,即可完成衔接。
作为另一种可能的示例,获取在切换数据关系服务器之前日志事件最后存储的目标日志文件,正序遍历目标日志文件中的历史日志事件,获取与连续n个日志事件中的第一个日志事件匹配的目标历史日志事件,以目标历史日志事件为初始日志事件正序获取包含目标历史日志事件的连续n个候选历史日志事件,判断连续n个日志事件与连续n个候选历史日志事件是否匹配,若匹配成功,则确定连续n个候选历史日志事件为连续n个目标历史日志事件。由于目标日志文件是正序存储日志事件的,因而这种方式也可以排除后续记录的伪日志事件。
举例而言,如图2所示,当n为5,缓存的5个日志事件为A、B、C、D、E,则按照正序的方式与目标日志文件中的日志事件匹配,直到匹配到第二轮,发现了完全匹配的五个目标历史日志事件,则可以将该五个目标历史日志事件所在的位置确定为目标存储位置。
示例二:
在本示例中,第一存储位置标识和第二日志存储位置包括日志事件的产生时间标识,比如是时间戳等,即在基于时间戳标识存储的日志事件的唯一性。
具体而言,获取在切换之前最近缓存的日志事件的第一产生时间标识,将第一产生时间标识与日志文件中存储的历史日志事件的第二产生时间标识匹配,确定匹配成功的目标历史日志事件所在位置为目标存储位置。
步骤104,确定目标存储位置后的首个存储位置为衔接存储位置,并以衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。
由于目标存储位置是日志文件最后存储日志事件的位置,因而,确定目标存储位置后的首个存储位置为衔接存储位置,并以衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。
在本发明的一个实施例中,还可以缓存在确定出衔接存储位置之前切换后的数据关系服务器的日志事件,当确定衔接存储位置之后,从该衔接存储位置按照之前缓存的日志事件的顺序从衔接存储位置开始存储。
为了使得本领域的技术人员更清楚本发明实施例的日志文件记录方法,下面结合具体的常用场景进行说明,说明如下:
如图3所示,在每次连接MySQL服务器的时候,记录下MySQL服务器的server-id,并且使用一个队列存放MySQL服务器的最近n个binlog事件,n值可以根据实际需要调整大小。当MySQL服务端主服务器变为不可用时,会发生主从切换,原有数据库连接会断开,当重新连接成功后,获取MySQL服务器的server-id,与先前连接的server-id相比较,若两者不同,判断为MySQL服务器发生了主从切换。这时需要重新取得开始位置,用于日志衔接,保证主从切换不影响binlog事件的正确性,完整性。在本实施例中,服务器切换时,可以随便指定当前日志文件中的一个位置作为默认日志事件的存储位置。
具体方法为:倒序遍历MySQL服务器的binlog事件,匹配之前缓存的第n个binlog事件,若事件内容相同,记录当前事件的位置,再比较之前一个binlog事件与n-1个binlog事件内容是否相同,比较n-2个……以此类推,如果n个事件都相同。记录的位置就是主从切换后的衔接位置。从该位置开始分析binlog事件,即可完成衔接。
综上,本发明实施例的日志文件记录方法,监测连接的数据关系服务器是否切换,当数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配,确定匹配成功的第二存储位置标识对应的目标历史日志文件所在的目标存储位置,进而,确定目标存储位置后的首个存储位置为衔接存储位置,并以衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。由此,保证了在数据关系服务器切换重连时,可以准确定位到日志文件的衔接记录位置,实现了日志文件记录的完整性和准确性。
为了实现上述实施例,本发明还提出一种日志文件记录装置。
图4为本发明实施例提供的一种日志文件记录装置的结构示意图。
如图4所示,该日志文件记录装置包括:监测模块10、匹配模块20、确定模块30、记录模块40。
其中,监测模块10,用于监测连接的数据关系服务器是否切换。
匹配模块20,用于当数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配。
确定模块30,用于确定匹配成功的第二存储位置标识对应的目标历史日志文件所在的目标存储位置。
记录模块40,用于确定目标存储位置后的首个存储位置为衔接存储位置,并以衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。
进一步地,在本发明实施例的一种可能的实现方式中,如图5所示,在如图4所示的基础上,当第一存储位置标识和第二日志存储位置包括日志事件时,匹配模块20包括:第一获取单元21和第一匹配单元22。
其中,第一获取单元21,用于获取在切换之前最近缓存的连续n个日志事件。
第一匹配单元22,用于将n个日志事件与日志文件中存储的历史日志事件匹配。
在本实施例中,确定模块30具体用于:确定与n个日志事件一一对应的连续n个目标历史日志事件,确定连续n个目标历史日志事件所在存储字段后的首个存储字节为衔接存储位置。
在本实施例中,第一匹配单元22具体用于:
获取在切换数据关系服务器之前日志事件最后存储的目标日志文件;
倒序遍历目标日志文件中的历史日志事件,获取与连续n个日志事件中的最后一个日志事件匹配的目标历史日志事件;
以目标历史日志事件为初始日志事件倒序获取包含目标历史日志事件的连续n个候选历史日志事件;
判断连续n个日志事件与连续n个候选历史日志事件是否匹配;
若匹配成功,则确定连续n个候选历史日志事件为连续n个目标历史日志事件。
在本发明的一个实施例中,如图6所示,在如图4所示的基础上,当第一存储位置标识和第二日志存储位置包括日志事件的产生时间标识时,匹配模块20包括:第二获取单元23和第二匹配单元24。
其中,第二获取单元23,用于获取在切换之前最近缓存的日志事件的第一产生时间标识。
第二匹配单元24,用于将第一产生时间标识与日志文件中存储的历史日志事件的第二产生时间标识匹配。
在本发明的一个实施例中,如图7所示,在如图4所示的基础上,该装置还包括:缓存模块50,其中,
缓存模块50,用于在与数据关系服务器连接时,迭代缓存最近产生的日志事件的第一存储位置标识。
需要说明的是,前述对日志文件记录方法实施例的解释说明也适用于该实施例的日志文件记录装置,此处不再赘述。
综上,本发明实施例的日志文件记录装置,监测连接的数据关系服务器是否切换,当数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配,确定匹配成功的第二存储位置标识对应的目标历史日志文件所在的目标存储位置,进而,确定目标存储位置后的首个存储位置为衔接存储位置,并以衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。由此,保证了在数据关系服务器切换重连时,可以准确定位到日志文件的衔接记录位置,实现了日志文件记录的完整性和准确性。
为了实现上述实施例,本发明还提出一种计算机设备,包括存储器、处理器及存储在存储器上并可处理器上运行的计算机程序,处理器执行所述计算机程序时,实现如前述实施例描述的日志文件记录方法。
为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,当所述存储介质中的指令由处理器被执行时,使得能够执行如前述实施例描述的基于日志文件记录方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (14)

1.一种日志文件记录方法,其特征在于,包括以下步骤:
监测连接的数据关系服务器是否切换;
当所述数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将所述第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配,其中,所述第一存储位置标识包括在与数据关系服务器连接时迭代缓存的连续多个日志事件的存储位置标识,所述第一存储位置标识和所述第二存储位置标识包括所述日志事件和所述日志文件的产生时间标识;
确定匹配成功的所述第二存储位置标识对应的目标历史日志文件所在的目标存储位置;
确定所述目标存储位置后的首个存储位置为衔接存储位置,并以所述衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。
2.如权利要求1所述的方法,其特征在于,当所述第一存储位置标识和第二日志存储位置包括日志事件时,所述获取在切换之前最近缓存的日志事件的第一存储位置标识,并将所述第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配,包括:
获取在切换之前最近缓存的连续n个日志事件;
将所述n个日志事件与所述日志文件中存储的历史日志事件匹配。
3.如权利要求2所述的方法,其特征在于,所述确定匹配成功的所述第二存储位置标识对应的目标历史日志文件所在的目标存储位置,包括:
确定与所述n个日志事件一一对应的连续n个目标历史日志事件;
确定所述连续n个目标历史日志事件所在存储字段后的首个存储字节为所述衔接存储位置。
4.如权利要求3所述的方法,其特征在于,所述将所述n个日志事件与所述日志文件中存储的历史日志事件匹配,包括:
获取在切换数据关系服务器之前日志事件最后存储的目标日志文件;
倒序遍历所述目标日志文件中的所述历史日志事件,获取与所述连续n个日志事件中的最后一个日志事件匹配的目标历史日志事件;
以所述目标历史日志事件为初始日志事件倒序获取包含所述目标历史日志事件的连续n个候选历史日志事件;
判断所述连续n个日志事件与所述连续n个候选历史日志事件是否匹配;
若匹配成功,则确定所述连续n个候选历史日志事件为所述连续n个目标历史日志事件。
5.如权利要求1所述的方法,其特征在于,所述获取在切换之前最近缓存的日志事件的第一存储位置标识,并将所述第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配,包括:
获取在切换之前最近缓存的日志事件的第一产生时间标识;
将所述第一产生时间标识与所述日志文件中存储的历史日志事件的第二产生时间标识匹配。
6.如权利要求1所述的方法,其特征在于,在所述获取在切换之前最近缓存的日志事件的第一存储位置标识之前,包括:
在与数据关系服务器连接时,迭代缓存最近产生的所述日志事件的第一存储位置标识。
7.一种日志文件记录装置,其特征在于,包括:
监测模块,用于监测连接的数据关系服务器是否切换;
匹配模块,用于当所述数据关系服务器切换时,获取在切换之前最近缓存的日志事件的第一存储位置标识,并将所述第一存储位置标识与日志文件中存储的历史日志文件的第二存储位置标识匹配,其中,所述第一存储位置标识包括在与数据关系服务器连接时迭代缓存的连续多个日志事件的存储位置标识,所述第一存储位置标识和所述第二存储位置标识包括所述日志事件和所述日志文件的产生时间标识;
确定模块,用于确定匹配成功的所述第二存储位置标识对应的目标历史日志文件所在的目标存储位置;
记录模块,用于确定所述目标存储位置后的首个存储位置为衔接存储位置,并以所述衔接存储位置为初始记录位置,记录切换后的数据关系服务器的日志事件。
8.如权利要求7所述的装置,其特征在于,当所述第一存储位置标识和第二日志存储位置包括日志事件时,所述匹配模块,包括:
第一获取单元,用于获取在切换之前最近缓存的连续n个日志事件;
第一匹配单元,用于将所述n个日志事件与所述日志文件中存储的历史日志事件匹配。
9.如权利要求8所述的装置,其特征在于,所述确定模块,具体用于:
确定与所述n个日志事件一一对应的连续n个目标历史日志事件;
确定所述连续n个目标历史日志事件所在存储字段后的首个存储字节为所述衔接存储位置。
10.如权利要求8所述的装置,其特征在于,所述第一匹配单元,具体用于:
获取在切换数据关系服务器之前日志事件最后存储的目标日志文件;
倒序遍历所述目标日志文件中的所述历史日志事件,获取与所述连续n个日志事件中的最后一个日志事件匹配的目标历史日志事件;
以所述目标历史日志事件为初始日志事件倒序获取包含所述目标历史日志事件的连续n个候选历史日志事件;
判断所述连续n个日志事件与所述连续n个候选历史日志事件是否匹配;
若匹配成功,则确定所述连续n个候选历史日志事件为连续n个目标历史日志事件。
11.如权利要求7所述的装置,其特征在于,所述匹配模块,包括:
第二获取单元,用于获取在切换之前最近缓存的日志事件的第一产生时间标识;
第二匹配单元,用于将所述第一产生时间标识与所述日志文件中存储的历史日志事件的第二产生时间标识匹配。
12.如权利要求7所述的装置,其特征在于,还包括:
缓存模块,用于在与数据关系服务器连接时,迭代缓存最近产生的所述日志事件的第一存储位置标识。
13.一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-6中任一所述的日志文件记录方法。
14.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任一所述的日志文件记录方法。
CN201910851741.3A 2019-09-10 2019-09-10 日志文件记录方法和装置 Active CN110674079B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910851741.3A CN110674079B (zh) 2019-09-10 2019-09-10 日志文件记录方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910851741.3A CN110674079B (zh) 2019-09-10 2019-09-10 日志文件记录方法和装置

Publications (2)

Publication Number Publication Date
CN110674079A CN110674079A (zh) 2020-01-10
CN110674079B true CN110674079B (zh) 2022-07-12

Family

ID=69077074

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910851741.3A Active CN110674079B (zh) 2019-09-10 2019-09-10 日志文件记录方法和装置

Country Status (1)

Country Link
CN (1) CN110674079B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111737203A (zh) * 2020-06-09 2020-10-02 阿里巴巴集团控股有限公司 数据库历史日志回溯方法、装置、***、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102934A (zh) * 2016-02-22 2017-08-29 阿里巴巴集团控股有限公司 一种关系型数据库二进制日志重放的方法和设备
CN108228812A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 自适应的主节点切换方法及装置
CN109597722A (zh) * 2018-12-29 2019-04-09 北京车和家信息技术有限公司 数据库备份文件恢复方法、装置及电子设备
CN110209554A (zh) * 2019-06-14 2019-09-06 上海中通吉网络技术有限公司 数据库日志分发方法、装置及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452491B2 (en) * 2016-04-14 2019-10-22 Sap Se Scalable log partitioning system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107102934A (zh) * 2016-02-22 2017-08-29 阿里巴巴集团控股有限公司 一种关系型数据库二进制日志重放的方法和设备
CN108228812A (zh) * 2017-12-29 2018-06-29 北京奇虎科技有限公司 自适应的主节点切换方法及装置
CN109597722A (zh) * 2018-12-29 2019-04-09 北京车和家信息技术有限公司 数据库备份文件恢复方法、装置及电子设备
CN110209554A (zh) * 2019-06-14 2019-09-06 上海中通吉网络技术有限公司 数据库日志分发方法、装置及设备

Also Published As

Publication number Publication date
CN110674079A (zh) 2020-01-10

Similar Documents

Publication Publication Date Title
CN110618889A (zh) 服务可用性的探测方法、装置、计算机设备和存储介质
CN107945031B (zh) 数据处理***和再保危险单位数据生成方法
CN110971485B (zh) 业务指标的监控***及方法
CN112783725B (zh) 指标采集方法及装置
US20230008406A1 (en) File Storage Method and Apparatus, and Device and Readable Storage Medium
CN110727644A (zh) 一种区块链数据裁剪的方法、***及存储介质
CN110674079B (zh) 日志文件记录方法和装置
CN107203464B (zh) 业务问题的定位方法以及装置
CN111611057A (zh) 分布式重试方法、装置、电子设备和存储介质
CN111211993B (zh) 流式计算的增量持久化方法、装置及存储介质
CN111342986A (zh) 分布式节点管理方法及装置、分布式***、存储介质
CN112182579A (zh) 进程名单生成方法及装置、异常进程检测方法及装置
CN113448971A (zh) 基于分布式***的数据更新方法、计算节点和存储介质
CN110858223A (zh) 基于数据库的回放方法、***、服务器及客户端
CN105988890B (zh) 信息的备份方法及装置
CN109727036B (zh) 交易处理方法及其装置
CN115604286A (zh) 节点主备状态信息同步的方法、装置、设备及存储介质
CN113419885B (zh) 一种数据完整性处理方法、装置及电子设备
CN112800052A (zh) 电能表记录查询方法、电能表及计算机可读存储介质
CN113542398A (zh) 分布式集群***的管控方法、装置、介质和设备
CN112632121A (zh) 区块链数据获取方法和装置
CN109361531B (zh) 一种通信设备不易复现问题的复现方法、***和设备
CN107885640B (zh) 一种硬盘管理方法及装置
CN107203559B (zh) 一种划分数据条带的方法和装置
CN114546276B (zh) 高可用的数据存储读写方法、***、装置及设备

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
GR01 Patent grant
GR01 Patent grant