CN114791901A - 数据处理方法、装置、设备及存储介质 - Google Patents

数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114791901A
CN114791901A CN202110100477.7A CN202110100477A CN114791901A CN 114791901 A CN114791901 A CN 114791901A CN 202110100477 A CN202110100477 A CN 202110100477A CN 114791901 A CN114791901 A CN 114791901A
Authority
CN
China
Prior art keywords
log data
file descriptor
target
data
host
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
Application number
CN202110100477.7A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202110100477.7A priority Critical patent/CN114791901A/zh
Publication of CN114791901A publication Critical patent/CN114791901A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

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

Abstract

本发明实施例公开了一种数据处理方法、装置、设备及存储介质,其中方法包括:当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从主机备份的备份日志数据的文件描述符,任一日志数据对应的文件描述符用于反映任一日志数据产生的顺序,备机按照每个日志数据产生的顺序不断从主机中备份日志数据;根据备份日志数据的文件描述符确定参考文件描述符,以及基于参考文件描述符获取待清理的目标日志数据对应的目标文件描述符,目标文件描述符小于或等于参考文件描述符;基于目标文件描述符对目标日志数据进行虚拟清理,并异步对目标日志数据进行删除处理。采用本发明实施例可防止由于日志数据清理导致的磁盘抖动。

Description

数据处理方法、装置、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。
背景技术
MySQL中的日志数据(也可称为二进制日志)是以二进制形式存储在数据库中的,二进制日志主要用于记录数据库的变化,包含了所有更新或者潜在更新的数据,是主从复制的基础,同时也可用于数据容灾。所谓数据容灾是指建立一个异地的数据系统,将数据库中数据备份到异地的数据系统中,以保护数据的安全和提高数据的持续可用性。
二进制日志通常存储在磁盘中,对于比较繁忙的业务,每天可能生成大量的二进制日志,这些日志数据如果长时间不清理,将会对磁盘空间带来很大的浪费,因此二进制日志数据的清理是保证磁盘高利用率的一个重要工作。目前常用的二进制日志清理方法是设置日志过期时间,当到达过期时间时,日志将会自动清理。过期日志的清理是将整个日志数据同步删除,如果日志数据较多,可能会引起磁盘抖动,从而导致MySQL抖动。因此,在MySQL应用领域中,如何有效地清理日志数据成为当今研究的热点问题之一。
发明内容
本发明实施例提供了一种数据处理方法、装置、设备及存储介质,采用虚拟清理和异步删除的方式进行日志数据清理,可以避免同步删除较大的日志数据导致磁盘空间抖动。
一方面,本发明实施例提供了一种数据处理方法,包括:
当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从所述主机备份的备份日志数据的文件描述符,所述主机中存储多个日志数据,每个日志数据对应一个文件描述符,所述任一日志数据对应的文件描述符用于反映所述任一日志数据产生的顺序,所述备机按照所述每个日志数据产生的顺序不断从所述主机中备份日志数据;
根据备份日志数据的文件描述符确定参考文件描述符,以及基于参考文件描述符获取主机数据库中待清理的目标日志数据对应的目标文件描述符,目标文件描述符小于或等于参考文件描述符;
基于目标文件描述符对目标日志数据进行虚拟清理,并异步对目标日志数据进行删除处理。
一方面,本发明实施例提供了一种数据处理装置,该数据处理装置运行有如下单元:
获取单元,用于当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从主机备份的备份日志数据的文件描述符,主机中存储多个日志数据,每个日志数据对应一个文件描述符,任一日志数据对应的文件描述符用于反映任一日志数据产生的顺序,备机按照每个日志数据产生的顺序不断从主机中备份日志数据;
确定单元,用于根据备份日志数据的文件描述符确定参考文件描述符;
获取单元,还用于基于参考文件描述符获取主机数据库中待清理的日志数据对应的目标文件描述符,目标文件描述符小于或等于参考文件描述符;
处理单元,用于基于目标文件描述符对目标日志数据进行虚拟清理,并异步对目标日志数据进行删除处理。
在一个实施例中,所述处理单元在基于所述目标文件描述符对所述目标日志数据进行虚拟清理时,执行如下步骤:
为所述目标文件描述符进行硬链接创建处理,得到与所述目标文件描述符对应的候选文件描述符;建立所述候选文件描述符和所述目标日志数据之间的对应关系,并将所述目标文件描述符从所述主机中删除。
在一个实施例中,所述处理单元在基于所述目标文件描述符对所述目标日志数据进行虚拟清理时,执行如下步骤:
为所述目标文件描述符添加已删除标记。
在一个实施例中,所述处理单元在异步对所述目标日志数据进行删除处理时,执行如下步骤:
根据所述候选文件描述符或添加已删除标记的目标文件描述符,从所述主机的磁盘中获取所述目标日志数据;按照目标阈值对所述目标日志数据的数据内容进行分批次删除。
在一个实施例中,所述处理单元在按照目标阈值对所述目标日志数据的数据内容进行分批次删除时,执行如下步骤:
按照所述目标阈值对所述目标日志数据的数据内容进行拆分,拆分得到的每个批次的待删除数据的数据内容的大小均小于或等于所述目标阈值;按照每个批次的拆分顺序依次进行删除。
在一个实施例中,对主机中日志数据的清理事件是指:磁盘的存储空间小于存储阈值,且所述主机数据库处于业务低峰期;
所述确定单元,还用于确定所述主机数据所对应的业务类型;所述获取单元,还用于获取所述业务类型对应的吞吐量阈值;所述确定单元,还用于如果所述主机数据库的吞吐量小于所述吞吐量阈值,则确定所述主机数据库处于业务低峰期。
在一个实施例中,所述备机的数量为至少一个,所述备份日志数据包括至少一个备机最近一次从所述主机备份的至少一个备份日志数据,所述确定单元在根据所述备份日志数据的文件描述符确定参考文件描述符时,执行如下步骤:
基于所述备份日志数据的文件描述符确定所述主机中已被完整备份的日志数据对应的第一文件描述符,所述已被完整备份的日志数据是指所述至少一个备机的每个备机中均备份的日志数据;选取小于或等于所述第一文件描述符的文件描述符,作为所述参考文件描述符,其中,越大的文件描述符对应的日志数据,被所述至少一个备机中每个备机备份的顺序越靠后。
在一个实施例中,若所述第一文件描述符的数量为至少一个,则小于或等于所述第一文件描述符的文件描述符是指:小于或等于至少一个文件描述符中较大者的文件描述符。
在一个实施例中,数据处理装置还包括发送单元;至少一个备机包括主机的业务从机和数据容灾备机;
发送单元,用于若检测到所述数据容灾备机的日志数据备份事件,且所述日志数据备份事件所指示的待备份的日志数据对应的文件描述符,小于所述参考文件描述符,则向所述数据容灾备机发送从所述业务从机备份所述待备份的日志数据的通知信息;所述通知信息用于通知所述数据容灾备机待备份的日志数据已从所述主机中清理,并指示所述数据容灾备机需从所述业务从机中获取待备份的日志数据。
一方面,本发明实施例提供了一种数据处理设备,其特征在于,包括:处理器,适于实现一条或多条计算机程序;以及计算机存储介质,计算机存储介质存储有一条或多条计算机程序,一条或多条计算机程序适于由处理器加载并执行:
当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从主机备份的备份日志数据的文件描述符,主机中存储多个日志数据,每个日志数据对应一个文件描述符,任一日志数据对应的文件描述符用于反映任一日志数据产生的顺序,备机按照每个日志数据产生的顺序不断从主机中备份日志数据;
根据备份日志数据的文件描述符确定参考文件描述符,以及基于参考文件描述符获取待清理的目标日志数据对应的目标文件描述符,目标文件描述符小于或等于参考文件描述符;
基于目标文件描述符对目标日志数据进行虚拟清理,并异步对目标日志数据进行删除处理。
一方面,本发明实施例提供了一种计算机存储介质,其特征在于,计算机存储介质中存储有计算机程序,计算机程序被处理器执行时,用于执行如下步骤:
当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从主机备份的备份日志数据的文件描述符,主机中存储多个日志数据,每个日志数据对应一个文件描述符,任一日志数据对应的文件描述符用于反映任一日志数据产生的顺序,备机按照每个日志数据产生的顺序不断从主机中备份日志数据;
根据备份日志数据的文件描述符确定参考文件描述符,以及基于参考文件描述符获取待清理的目标日志数据对应的目标文件描述符,目标文件描述符小于或等于参考文件描述符;
基于目标文件描述符对目标日志数据进行虚拟清理,并异步对目标日志数据进行删除处理。
一方面,本发明实施例提供了一种计算机程序产品或计算机程序,计算机程序产品包括计算机程序,计算机程序存储在计算机存储介质中;数据处理设备的处理器从计算机存储介质中读取计算机程序,处理器执行计算机程序,使得数据处理设备执行:
当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从主机备份的备份日志数据的文件描述符,主机中存储多个日志数据,每个日志数据对应一个文件描述符,任一日志数据对应的文件描述符用于反映任一日志数据产生的顺序,备机按照每个日志数据产生的顺序不断从主机中备份日志数据;
根据备份日志数据的文件描述符确定参考文件描述符,以及基于参考文件描述符获取待清理的目标日志数据对应的目标文件描述符,目标文件描述符小于或等于参考文件描述符;
基于目标文件描述符对目标日志数据进行虚拟清理,并异步对目标日志数据进行删除处理。
本发明实施例中,当存在对主机数据库中日志数据的清理事件时,获取备机已从主机数据库中备份的备份日志数据的文件描述符;进一步的,根据备份日志数据的描述符确定参考文件描述符,并选择文件描述符小于或等于该参考文件描述符的目标参考描述符,然后基于目标文件描述符对该目标文件描述符指示的目标日志数据进行虚拟清理和异步删除处理。在上述日志数据的清理过程中,确定待清理的目标日志数据时参考了备机中已备份的备份日志数据,如此可避免主机数据库中日志清理造成备机中日志数据丢失的情况发生。并且,采用虚拟清理和异步删除的方式从主机数据库中删除目标日志数据,避免同步删除目标日志数据引起的磁盘抖动。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据管理系统的结构示意图;
图2是本发明实施例提供的一种数据处理方法的流程示意图;
图3是本发明实施例提供的一种虚拟清理和异步删除目标日志数据的示意图;
图4是本发明实施例提供的另一种数据处理方法的流程示意图;
图5是本发明实施例提供的一种确定参考文件描述符的示意图;
图6是本发明实施例提供的一种数据处理装置的结构示意图;
图7是本发明实施例提供的一种数据处理设备的结果示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表,而不是将所有数据方在一个大仓库内,如此增加了速度并提供了灵活性。由于MySQL数据库的这一优点,使其成为最受欢迎的数据库之一。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言,也就是说对MySQL数据库的访问是基于SQL语言的语句实现的。对MySQL数据库的访问可以包括在数据库中增加数据、删除数据库中数据以及修改数据库中数据等等。
MySQL数据库中的变化均是以一个二进制日志(后面将二进制日志简称为日志数据)的形式记录的。二进制日志记录了对MySQL数据库执行更改的所有操作,并且记录了语句发生时间、执行时长、操作数据等其他额外信息,但是不会记录SELECT、SHOW等不修改数据的SQL语句。
MySQL二进制日志是实现数据库主从复制的基础,同时也可以用于数据容灾。其中,主从复制是指主机数据库中的数据完全拷贝到从机中,以实现主机提供写服务,从机提供只读服务器,从而做到读写分离,同时还通过从机来实现数据库的高可用,当主机故障后自动切换到从机。数据容灾是指建立一个异地的数据系统,将主机数据库中的数据备份到异地的数据系统中,以保护数据库中数据的安全。在某些应用系统中比如金融级的支付系统中,数据容灾是重中之重。
基于上述描述,本发明实施例提供了一种数据管理系统,参见图1,为本发明实施例提供的一种数据管理系统的结构示意图。图1所示的数据管理系统中可包括一个主机101、至少一个业务从机102以及一个用于数据容灾的数据容灾备机103。其中,主机101、业务从机102以及数据容灾备机103均可以是一个数据库服务器,为了方便描述,后续可以将业务从机102可以数据容灾备机103统称为主机101的备机。其中,该业务从机102可以是主机101的下游业务的从机,主要用于提供只读业务,从而实现数据库的读写业务分离。
在一个实施例中,主机101数据库中的数据可以是异步复制到业务从机102中的,也就是说主机101不需要与从机102一直保持连接,从机102甚至可以通过拨号断断续续地连接主机101以复制主机101数据库中的数据。从机102可以从主机101复制数据库中的所有数据,或者数据库中的某一部分数据。同理的,数据容灾备机103可以从主机101复制主机101数据库中的数据。需要说明的,本发明实施例中所述主机可以是指需要进行日志数据清理的设备,该主机可以是真正的主机,也可以是某个主机的备机。
为了保证主机101和业务从机102中内数据始终保持一致,那么主机101中数据发生了什么变化,业务从机102中的数据也要随着发生相同的改变。由前述可知,数据库中数据的变化均是以二进制日志形式记录的,因此,业务从机102需要备份主机中二进制日志,根据二进制日志维护业务从机102数据库中的数据。
基于此,业务从机102从主机101复制数据的工作原理大致可以概括如下:业务从机102首先对主机101上的数据进行准确的拷贝,然后激活主机101上的二进制日志功能;接着,业务从机102将定期连接主机101并检测二进制日志,如果自从上次连接后,存在新增的二进制日志,业务从机102则备份新增的二进制日志,并根据新增的二进制日志维护业务从机102中的数据。由此可见,二进制日志是主从复制的基础。
数据容灾备机103中对数据库中数据的备份是通过数据库快照备份和增量的二进制日志备份实现的。当主机101所在网络发送异常时,需要使用数据容灾来恢复数据。恢复时先将数据备份快照导入一个空实例,再将备份的二进制日志回放到故障前的时间点。比如数据快照备份是每个一个星期执行一次的,比如上周一执行了数据快照备份,那么从上周一到当前这段时间数据库中数据的所有变化是记录在二进制日志中的,这些二进制日志称为增量的二进制日志备份。
在一个实施例中,主机101中产生的日志数据通常是存储在磁盘中,如果长时间不对日志数据进行清理,可能会导致磁盘存储空间紧张。基于此,本发明实施例提供了一种数据处理方案,用于对日志数据进行清理。具体实现中,当检测到主机数据库的日志数据的清理事件时,获取备机中已获取到哪些备份日志数据;进而基于备机中获取到的备份日志数据确定待清理的日志数据;最后采用虚拟清理和异步删除的方式对待清理的日志数据进行清理。
其中,本发明实施例中在确定待清理的目标日志数据时,是以备机中获取到的备份日志数据为依据的,这样可以保证删除待清理的目标日志数据对备机中数据库的维护没有影响,或者说可以保证删除了待清理的目标日志数据后,备机中维护的数据仍能保持与主机数据库相应的数据是相同的。现有技术中常用的清理日志的方式可以包括当检测到对日志数据的清理事件时,直接将日志数据全部删除,并没有考虑待删除的日志数据是否对备机中数据维护产生影响。与现有技术相比,本发明实施例可以保证业务从机或者数据容灾备机不会受到日志清理的影响,避免因日志清理导致备机数据丢失的问题。
另外,本发明实施例中在清理待清理的目标日志数据时,不是同步删除待清理的目标日志数据的所有数据内容的,而是采用先虚拟清理,再异步删除的方式,虚拟清理可以理解为先公布目标日志数据已删除的消息,但是此时目标日志数据并没有真正的删除;异步删除是指在公布消息后,分批次的将目标日志数据中的数据内容进行真正意义上的清理。与现有技术中同步且一次性删除待清理的目标日志数据的方法相比,本发明实施例实现了待清理的日志数据的平滑删除,避免磁盘抖动。
基于上述数据管理系统,本发明实施例提供了一种数据处理方法,参见图2,为本发明实施例提供的一种数据处理方法的流程示意图。图2所示的数据处理方法可由主机执行,具体可由主机的处理器执行,图2所示的数据处理方法可包括如下步骤:
步骤201、当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从主机备份的备份日志数据的文件描述符。
在一个实施例中,由前述可知,日志数据主要是存储在磁盘中,如果当磁盘的存储空间较小,无法存储其他有用的数据时,考虑删除磁盘中一部分日志数据。基于此,对主机数据库的日志数据的清理事件可以指磁盘的存储空间小于存储阈值。换句话说,如果磁盘的存储空间充足则无需清理日志数据,尽可能多的保留日志文件;如果磁盘空间不足则开始清理日志数据。
在其他实施例中,为了减小日志清理对数据库业务的影响比如业务耗时增加,可以选择在业务低峰期进行日志清理。此种情况下,对主机数据库的日志数据的清理事件可以指:磁盘空间小于存储阈值,且主机数据库处于业务低峰期。换句话说,由于日志数据清理会有一定的资源占用,如果在业务高峰期进行日志清理,则可能会导致访问耗时增加、
可选的,主机数据库的吞吐量越高,表明主机数据库的处理的事务越多,此时可能处于业务高峰期;反之,主机数据库的吞吐量越低,表明主机数据库处理的事务越小,可能处于业务低峰期。
在一个实施例中,可以采用选择使用TPS(Transactions Per Second,每秒传输的事务处理个数)来衡量主机数据库的吞吐量,TPS越大,主机数据库的吞吐量越大,反之,TPS越小,主机数据库的吞吐量越小。在本发明实施例中,对于数据库业务来说,上述事务是指在数据库中添加数据、删除数据以及修改数据等操作。基于此,本发明实施例可以设置一个吞吐量阈值,若TPS小于吞吐量阈值,则确定处于业务低峰期;若TPS大于吞吐量阈值,则确定处于业务高峰期。
应当理解的,不同类型业务对TPS的敏感度不一样,例如,对于业务A来讲,TPS达到1000表明已达到业务高峰期,但是对于业务B来讲,TPS达到3000才表明其已达到业务高峰期。本发明实施例中可动态调整吞吐量阈值,针对不同业务类型的数据库设置不同阈值。具体实现中,可以根据TPS监控数据,智能推荐数据库管理员(Database Administrator,简称DBA)为不同数据库设置合适吞吐量阈值。数据管理员是从事管理和维护数据库管理系统(Database Management System,DBMS)的相关工作人工的统称,属于运维工程师的一个分支,主要负责业务数据库从设计、测试到部署交付的全声明周期管理。
基于上述描述,主机判断主机数据库是否处于业务低峰期的方式可以为:确定所述主机数据库所对应的业务类型;获取所述业务类型对应的吞吐量阈值;如果所述主机数据库的吞吐量小于所述吞吐量阈值,则确定所述主机数据库处于业务低峰期。
为了保证备机中日志数据不丢失,在开始日志清理之前,本发明实施例会获取备机最近一次从主机备份的备份日志数据,根据该备份日志数据确定主机中哪些日志数据可以清理。
具体实现中,主机中每个日志数据对应一个文件描述符,任一日志数据对应的文件描述符相当于日志数据对应的编号,根据该编号可以从磁盘中找到相应的日志数据。任一日志数据对应的文件描述符可以用于反映该任一日志数据产生的顺序,比如第一个产生的日志数据对应的文件描述符可以表示为binlog01,第二个产生的日志数据对应的文件描述符可以表示为binlog02。备机是按照每个日志数据产生的顺序不断从主机中备份日志数据的,比如备机先从主机中备份文件描述符为binlog01的日志数据,再备份文件描述符为binlog02的日志数据。
当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从主机备份的备份日志数据对应的文件描述符,然后在步骤S202中根据备份日志数据的文件描述符确定参考文件描述符,进而从主机中选择小于或等于参考文件描述符的目标文件描述符,并将目标文件描述符对应的目标日志数据作为待清理的日志数据。
此处重点介绍如何获取备机最近一次从主机备份的备份日志数据对应的文件描述符,关于如何确定参考文件描述符以及如何选择目标文件描述符将在步骤S202中具体介绍。
在一个实施例中,主机对应的备机数量可以为至少一个,备份日志数据可以包括至少一个备机最近一次从主机备份的至少一个备份日志数据,具体可选的,至少一个备机可以包括主机下游业务对应的一个或多个业务从机以及一个或多个数据容灾备机,那么备份日志数据可以包括业务从机最近一次从所述主机备份的日志数据,和/或数据容灾备机最近一次从所述主机备份的一个或多个日志数据。
此种情况下,步骤S201中获取到的备份日志数据的文件描述符的数量可以为一个或多个,比如,主机的备机包括一个业务从机和一个数据容灾,业务从机最近一次从主机备份的备份日志数据对应的文件描述符为binlog02,数据容灾备机最近一次从主机备份的日志数据对应的文件描述符为binlog03。
步骤S202、根据备份日志数据的文件描述符确定参考文件描述符,以及基于参考文件描述符获取待清理的目标日志数据对应的目标文件描述符。
其中,参考文件描述符是指主机中允许清理的日志数据对应的文件描述符中最大值,换句话说,主机的日志数据中文件描述符小于或等于该参考文件描述符的日志数据均可以被删除。
目标文件描述符是指主机包括的多个文件描述符中小于或等于参考文件描述符的文件描述符。比如参考描述符为binlog02,那么文件描述符binlog01和文件描述符binlog02均可以看做是目标文件描述符。
在一个实施例中,所述备机的数量为至少一个,所述备份日志数据包括至少一个备机最近一次从所述主机备份的至少一个备份日志数据,参考文件描述符可以是根据主机包括的多个日志数据中,已被完整备份的日志数据对应的第一文件描述符确定的,已被完整备份的日志数据是指至少一个备机包括的每个备机中均备份的日志数据,比如备机包括业务从机和数据容灾备机,日志数据A已被业务从机备份,也已被数据容灾备机备份,那么日志数据A就是已被完整备份的日志数据;再如,日志数据B已被业务从机备份,但是未被数据容灾备机备份,那么日志数据B则不是以被完整备份的日志数据。
具体实现中,如果备机的数量为至少一个,所述备份日志数据包括至少一个备机最近一次从所述主机备份的至少一个备份日志数据,则根据所述备份日志数据的文件描述符确定参考数据描述,可以包括:基于备份日志数据的文件描述符确定主机中已被完整备份的日志数据对应的第一文件描述符,已被完整备份的日志数据是指所述至少一个备机的每个备机中均备份的日志数据;选取小于或等于所述第一文件描述符的文件描述符,作为所述参考文件描述符,其中,越大的文件描述符对应的日志数据,被所述至少一个备机中每个备机备份的顺序越靠后。
应当理解的,主机的备机是按照每个日志数据产生的顺序不断从主机中备份日志数据的,也就是说越先产生的日志数据越先被备机备份到,那么一个备机最近一次备份的备份日志数据的文件描述符就代表了该备机中已从主机备份到的最大的日志数据,比如一个备机最近一次从主机备份的日志数据的文件描述符为binlog03,那就表明该备机中从主机中备份的最大的日志数据就是binlog03所指示的日志数据,也就是说小于等于binlog03的文件描述符对应的日志数据均已被该备机备份。
基于此,根据备份日志数据的文件描述符确定主机中已被完整备份的日志数据对应的第一文件描述符,可以包括:将至少一个备份日志数据的文件描述符中,较小者作为主机中已被完整备份的日志数据对应的最大文件描述符;将小于或等于该最大文件描述符的文件描述符确定为主机中已被完整备份的日志数据对应的第一文件描述符。比如,业务从机最近一次从机中备份的备份日志数据的文件描述符为binlog02,数据容灾备机最近一次从主机中备份的备份日志数据的文件描述符为binlog03,此时主机中已被完整备份的日志数据对应的第一文件描述符为binlog01和binlog02,binlog02是已被完整备份的日志数据中的最大者,同时也是不同备机最近一次备份的备份日志数据对应的文件描述符中最小者。
应当理解的,第一文件描述符的数量可以为一个或多个,如果第一文件描述的数量为一个,那么小于或等于第一文件描述符的文件描述符可以指:小于或等于该第一文件描述符的文件描述符;比如第一文件描述符为binlog01,那么小于或等于第一文件描述符的文件描述符包括binlog01。如果第一文件描述符的数量为多个,那么小于或等于第一文件描述符的文件描述符可以指:小于或等于多个第一文件符中较大者的文件描述符。比如,第一文件描述符包括binlog01和binlog02,那么小于或小于第一文件描述符的文件描述符为:binlog01和binlog02。
在一个实施例中,由前述可知,备机可以包括业务从机和数据容灾备机,上述备份日志数据包括至少一个备机从主机最近一次备份的至少一个备份日志数据可以理解为:上述所提到的备份日志数据可以指业务从机最近一次从主机备份的日志数据;或者,上述备份日志数据可以是指数据容灾备机最近一次从主机备份的日志数据;或者,上述备份日志数据可以指业务从机最近一次从主机备份的日志数据和数据容灾备机最近一次从主机备份的日志数据。
应当理解的,如果上述的备份日志数据是业务从机或者数据容灾备机最近一次从主机备份的日志数据,则表明在确定参考文件描述符时,只遍历了业务从机或者数据容灾备机最近一次备份的日志数据,或者说此时参考文件描述符只表示业务从机或者数据容灾备机中已完整备份的日志数据。这样一来,可以减少所需遍历的备机中最近一次备份日志数据的数量,加快日志清理进度。
但是在这种方式下存在的问题是:如果确定参考文件描述符时只遍历了业务从机最近一次备份的备份日志数据的文件描述符,则可能有一部分在业务从机中已备份的日志数据,在数据容灾备机中并未备份。为了解决此问题。数据容灾设备可以与业务从机进行交互,以从备机中获取数据容灾还未备份的日志数据。
同理的,如果确定参考文件描述符时只遍历了数据容灾备机中已备份的备份日志数据的文件描述符,则可以有一部分在数据容灾备机中已备份的日志数据,在业务从机中还没有备份,此时业务从机可以与数据容灾备机进行通信,以从数据容灾设备获取业务从机还未备份的日志数据。
例如,所述备份日志数据包括所述业务从机从所述主机数据库中备份的日志数据,则在所述异步对所述目标日志数据进行删除处理之后,所述方法还包括:若检测到所述数据容灾备机的日志数据备份事件,且所述日志数据备份事件所指示的待备份的日志数据对应的文件描述符,小于所述参考文件描述符,则向所述数据容灾备机发送从所述业务从机备份所述待备份的日志数据的通知信息;所述通知信息用于通知所述数据容灾备机待备份的日志数据已从所述主机中清理,并指示所述数据容灾备机需从所述业务从机中获取待备份的日志数据。
在其他实施例中,如果所述备机的数量为至少一个,所述备份日志数据包括至少一个备机从所述主机备份的至少一个备份日志数据;则为了在一次日志数据清理过程中尽可能多的清理日志数据,参考文件描述符还可以是根据备机中已备份的备份日志数据对应的文件描述符的最大值确定的。
具体实现中,根据备份日志数据的文件描述符确定参考文件描述符包括:获取至少一个备份日志数据中各个备份日志数据对应的文件描述符;从各个备份日志数据对应的文件描述符中选取最大文件描述符;将小于或等于该最大文件描述符的文件描述符作为参考文件描述符。例如,假设备份日志数据中包括备份日志数据A和备份日志数据B,备份日志数据A对应的文件描述符为binlog01,备份日志数据B对应的文件描述符为binlog02,那么binlog02是最大文件描述符,将小于或等于binlog02的文件描述符作为参考文件描述符。
在这种情况下,可能存在一个备机中已备份的备份日志数据在其他备机中没有备份,那么此时可以通过备机之间的相互交互来保证各个备机中的备份日志数据相同。
步骤S203、基于目标文件描述符对目标日志数据进行虚拟清理,并异步对目标日志数据进行删除处理。
其中,对目标日志数据进行虚拟清理可以是指只是先发出该目标日志数据已被清理的消息,但是此时目标日志数据被未被清理,仍然存储在磁盘中;异步对目标日志数据进行删除处理是指:发布了目标日志数据已被清理的消息后,将磁盘中的日志数据分批次进行删除。采用虚拟清理和异步删除的方式相结合的方式,可以避免同步删除较大的目标日志文件对磁盘IO(磁盘IO是指磁盘的输入Input和输出Output)造成影响,导致磁盘抖动。
一次性删除较大的目标日志文件对磁盘IO造成影响是导致日志清理过程中业务耗时增高的一个原因,本发明可以有效避免。导致业务耗时增高的另外一个原因是数据库自身响应不及时,日志清理时会涉及到数据库锁的占用,当锁等待时间增加业务耗时也会随着升高。其中,锁(LOCKING)是最常用的并发控制机构,是防止其他事务访问执行的资源控制、实现并发控制的一种主要手段。锁是事务对某个数据库中的资源(如表和记录)存取前,先提出申请,封锁该资源,事务获得锁后,即取得对数据的控制权,在事务释放锁之前,其他事务不能更改词数据。当事务撤销后,释放被锁定的资源。通俗来讲,当一个用户锁住数据库中的某个对象时,其他用户就不能在访问该对象。
本发明实施例在分批次删除目标日志数据可以指每次删除目标日志数据中一定大小的数据内容,比如每次只删除20M数据内容,在每次删除时可以都重新获取用于锁定目标日志数据的锁,每次需要删除的数据较小,能够较快的删除完成,避免了对锁的长时间占用而导致的业务耗时增高的问题。
在一个实施例中,基于目标文件描述符对目标日志数据进行虚拟清理可以指:为目标文件描述符添加已删除标记。这样一来,当存在根据目标文件描述符对目标日志数据的操作时,比如拷贝目标日志数据,则会提示目标日志数据已删除,但是实际目标日志数据并未被真正的删除,这样便实现了对目标日志数据的虚拟清理。
在其他实施例中,基于目标文件描述符对目标日志数据进行虚拟清理,还可以包括:为目标文件描述符进行硬链接创建处理,得到与目标文件描述符对应的候选文件描述符;建立候选文件描述符和目标日志数据之间的对应关系,并将目标日志文件描述符从主机中删除。
硬链接(hard link,也称链接)就是指为一个日志数据创建多个文件描述符,硬链接就是让多个不在或同在一个目录下的文件描述符同时能够修改同一个日志数据。也就是说存在硬链接关系的两个文件描述符都指向同一个日志数据,可以基于这两个文件描述符对同一个日志数据进行修改或者其他操作。
上述目标文件描述符进行硬链接创建处理后,目标文件描述符与候选文件描述符之间就是硬链接关系。
可选的,对目标日志数据进行了虚拟清理后,可以异步对目标日志数据进行删除处理。在一个实施例中,异步对目标日志数据进行删除处理,包括:根据所述候选文件描述符或已添加删除标记的目标文件描述符,获取所述目标日志数据;按照目标阈值对所述目标日志数据的数据内容进行分批次删除。
其中,目标阈值可以预先设定的任意值,比如20M,30M等等。可选的,按照目标阈值对所述目标日志数据的数据内容进行分批次删除,包括:按照所述目标阈值对所述目标日志数据的数据内容进行拆分,拆分得到的每个批次的待删除数据的数据内容的大小均小于或等于所述目标阈值;按照每个批次的拆分顺序依次进行删除。
例如,参见如3,为本发明实施例提供的一种虚拟清理和异步删除目标日志数据的示意图,假设目标日志文件描述符为binlog01,对目标日志文件描述对应的目标日志文件进行虚拟清理和异步删除可以包括:(1)建立binlog01的硬链接binlog01.h;(2)将目标文件描述符删除,此处删除可以指将数据库中的目标文件描述符和磁盘中的目标文件描述符均删除;(3)异步磁盘中删除目标日志文件。
本发明实施例中,当存在对主机数据库中日志数据的清理事件时,获取备机已从主机数据库中备份的备份日志数据的文件描述符;进一步的,根据备份日志数据的描述符确定参考文件描述符,并选择文件描述符小于或等于该参考文件描述符的目标参考描述符,然后基于目标文件描述符对该目标文件描述符指示的目标日志数据进行虚拟清理和异步删除处理。在上述日志数据的清理过程中,确定待清理的目标日志数据时参考了备机中已备份的备份日志数据,如此可避免主机数据库中日志清理造成备机中日志数据丢失的情况发生。并且,采用虚拟清理和异步删除的方式从主机数据库中删除目标日志数据,避免同步删除目标日志数据引起的磁盘抖动。
基于上述的数据处理方法实施例,本发明实施例还通过了另一种数据处理方法。参见图4,为本发明实施例提供的另一种数据处理方法的流程示意图。图4所示的数据处理方法中备机包括主机的业务从机和数据容灾备机。图3所示的数据处理方法可包括如下步骤:
步骤S401、检测磁盘的存储空间是否小于存储阈值;
步骤S402、若磁盘的存储空间小于存储阈值,则计算主机业务数据的吞吐量以及获取主机数据库对应的吞吐量阈值;
步骤S403、检测主机数据库业务的吞吐量是否小于吞吐量阈值;
步骤S404、若小于,则获取业务从机从最近一次从主机备份的备份日志数据的文件描述符,以及获取数据容灾备机最近一次从主机备份的备份日志数据的文件描述符;
步骤S405、从获取到的两个文件描述符中选取最小的文件描述符作为参考文件描述符;
由前述可知,参考文件描述符是指主机中所允许删除的各个日志数据对应的文件描述符中的最大值,将各个备机中最近一次备份到的备份日志数据对应的文件描述符中最小值作为参考文件描述符,可以保证主机中将要删除的日志数据是各个备机中已经备份完成的。
现有技术中用于清理日志数据的方法可以包括:第一种,设置日志数据的过期时间,到期自动清理日志;第二种,直接执行PURGE工具,PURGE可以支持清理到某个日志数据或者某个时间点之前,该方案一般是手工执行或添加到定时任务执行。这样存在的问题是,不能准确的判断应该将哪些日志数据清理,或者说应该清理到哪个时间产生的日志数据。如果清理少了则无法达到释放磁盘的存储控件的目的;如果清理多则可能导致备机中数据丢失。
与上述两种现有技术相比,本发明实施例可以保证备机能够备份到主机中所有备份日志,避免备机中日志数据丢失。
举例来说,参见图5,为本发明实施例提供的一种确定参考文件描述符的示意图。假设主机包括6个日志数据,每个日志数据对应的文件描述符分别为binlog01、binlog02、binlog03、binlog04、binlog05以及binlog06;假设主机对应两个业务从机和一个数据容灾备机,假设第一业务从机最近一次从主机备份的备份日志数据对应的文件描述符为binlog06;第二业务最近一次从主机备份的备份日志数据对应的文件描述符为binlog04;数据容灾备机最近一次从主机备份的备份日志数据对应的文件描述符为binlog05;在上述各个备机中最近一次备份的备份日志数据的文件描述符中,最小的文件描述符为binlog04,那么将binlog04作为参考文件数据描述符。
步骤S406、依次遍历主机中的各个文件描述符,若一个文件描述符小于或等于参考文件描述符,则将该文件描述符作为目标文件描述符,并对该目标文件描述符进行硬链接处理,得到目标文件描述符对应的候选文件描述符;
步骤S407、将目标文件描述符删除;
步骤S408、分批次删除目标文件描述符所指示的目标日志文件;
可选的,为了避免删除日志数据对业务的影响,以及尽可能多的保留日志文件,在每次删除一个日志数据后,可再次判断磁盘的存储空间是否小于存储阈值,如果小于,则重复执行步骤S408;如果磁盘的存储空间大于或等于存储阈值,则可以执行日志删除操作。
经在实践中验证,本发明实施例的数据处理方法极大的减少了日志清理带来的业务影响,因日志清理导致备机中数据丢失率减少至0%,因日志清理导致的备份数据失效率减少至0%。
本发明实施例中,在磁盘的存储空间小于存储阈值时,并且主机数据库处于业务低峰期时,启动对主机中日志数据的清理;在日志数据的清理过程中,获取到各个备机中已备份的日志数据对应的文件描述符,从多个文件描述符中选择一个最小的文件描述符作为,主机中所允许删除的多个日志数据对应的文件描述中最大的文件描述符,进而将主机中所有小于该最大文件描述符的日志数据进行虚拟清理以及异步分批次删除,保证主机中清理的日志数据已在所有备机中均已备份,可有效避免备机中数据丢失;并且,分批次删除待清理的日志数据,可以避免一次性删除较大的日志数据造成磁盘抖动。
需要说明的是,图2和图4中所述的数据处理方法均是在MyQSL数据库外部实现的,后续如果有自研需要,可以将上述的数据处理方法实现在MyQSL内部。
基于上述的数据处理方法,本发明实施例提供了一种数据处理装置。参见图6,为本发明实施例提供的一种数据处理装置的结果示意图。图6所示的数据处理装置可运行如下单元:
获取单元601,用于当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从所述主机备份的备份日志数据的文件描述符,所述主机中存储多个日志数据,每个日志数据对应一个文件描述符,所述任一日志数据对应的文件描述符用于反映所述任一日志数据产生的顺序,所述备机按照所述每个日志数据产生的顺序不断从所述主机中备份日志数据;
确定单元602,用于根据所述备份日志数据的文件描述符确定参考文件描述符;
所述获取单元601还用于基于所述参考文件描述符获取所述主机数据库中待清理的日志数据对应的目标文件描述符,所述目标文件描述符小于或等于所述参考文件描述符;
处理单元603,用于基于所述目标文件描述符对所述目标日志数据进行虚拟清理,并异步对所述目标日志数据进行删除处理。
在一个实施例中,所述处理单元603在基于所述目标文件描述符对所述目标日志数据进行虚拟清理时,执行如下步骤:
为所述目标文件描述符进行硬链接创建处理,得到与所述目标文件描述符对应的候选文件描述符;建立所述候选文件描述符和所述目标日志数据之间的对应关系,并将所述目标文件描述符从所述主机中删除。
在一个实施例中,所述处理单元603在基于所述目标文件描述符对所述目标日志数据进行虚拟清理时,执行如下步骤:为所述目标文件描述符添加已删除标记。
在一个实施例中,所述处理单元603在异步对所述目标日志数据进行删除处理时,执行如下步骤:
根据所述候选文件描述符或添加已删除标记的目标文件描述符,从所述主机的磁盘中获取所述目标日志数据;按照目标阈值对所述目标日志数据的数据内容进行分批次删除。
在一个实施例中,所述处理单元603在按照目标阈值对所述目标日志数据的数据内容进行分批次删除时,执行如下步骤:
按照所述目标阈值对所述目标日志数据的数据内容进行拆分,拆分得到的每个批次的待删除数据的数据内容的大小均小于或等于所述目标阈值;按照每个批次的拆分顺序依次进行删除。
在一个实施例中,所述对主机中日志数据的清理事件是指:磁盘的存储空间小于存储阈值,且所述主机数据库处于业务低峰期;所述确定单元602,还用于确定所述主机数据库所对应的业务类型;所述获取单元601,还用于获取所述业务类型对应的吞吐量阈值;所述确定单元602,还用于如果所述主机数据库的吞吐量小于所述吞吐量阈值,则确定所述主机数据库处于业务低峰期。
在一个实施例中,备机的数量为至少一个,所述备份日志数据包括至少一个备机最近一次从所述主机备份的至少一个备份日志数据,所述确定单元602在根据所述备份日志数据的文件描述符确定参考文件描述符时,执行如下步骤:
基于所述备份日志数据的文件描述符确定所述主机中已被完整备份的日志数据对应的第一文件描述符,所述已被完整备份的日志数据是指所述至少一个备机的每个备机中均备份的日志数据;
选取小于或等于所述第一文件描述符的文件描述符,作为所述参考文件描述符,其中,越大的文件描述符对应的日志数据,被所述至少一个备机中每个备机备份的顺序越靠后。
在一个实施例中,若所述第一文件描述符的数量为至少一个,则小于或等于所述第一文件描述符的文件描述符是指:小于或等于至少一个文件描述符中较大者的文件描述符。
在一个实施例中,图6所示的数据处理装置还包括发送单元604;所述至少一个备机包括所述主机的业务从机和数据容灾备机,若所述备份日志数据包括所述业务从机最后一次从所述主机数据库中备份的日志数据,则所述发送单元604用于:
若检测到所述数据容灾备机的日志数据备份事件,且所述日志数据备份事件所指示的待备份的日志数据对应的文件描述符,小于所述参考文件描述符,则向所述数据容灾备机发送从所述业务从机备份所述待备份的日志数据的通知信息;所述通知信息用于通知所述数据容灾备机待备份的日志数据已从所述主机中清理,并指示所述数据容灾备机需从所述业务从机中获取待备份的日志数据。
根据本发明的一个实施例,图2和图4所示的数据处理方法所涉及各个步骤可以是由图6所示的数据处理装置中的各个单元来执行的。例如,图2所述的步骤S201可由图6所示的数据处理装置中的获取单元601来执行,步骤S202可由图6所示的数据处理装置中获取单元601和确定单元602来执行,步骤S203可由图6所示的数据处理装置中的处理单元603来执行;再如,图4所示的数据处理方法中步骤S401、步骤S403以及步骤S405-步骤S408可由图6所示的数据处理装置中的处理单元603来执行,步骤S402可由图6所述的数据处理装置中的确定单元602和获取单元601来执行,步骤S404可由图6所示的数据处理装置中的获取单元601来执行。
根据本发明的另一个实施例,图6所示的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于信息共享装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2和图3所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6中所示的数据处理装置,以及来实现本发明实施例数据处理方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本发明实施例中,当存在对主机数据库中日志数据的清理事件时,获取单元601获取备机已从主机数据库中备份的备份日志数据的文件描述符;进一步的,确定单元602根据备份日志数据的描述符确定参考文件描述符,并选择文件描述符小于或等于该参考文件描述符的目标参考描述符,然后处理单元603基于目标文件描述符对该目标文件描述符指示的目标日志数据进行虚拟清理和异步删除处理。在上述日志数据的清理过程中,确定待清理的目标日志数据时参考了备机中已备份的备份日志数据,如此可避免主机数据库中日志清理造成备机中日志数据丢失的情况发生。并且,采用虚拟清理和异步删除的方式从主机数据库中删除目标日志数据,避免同步删除目标日志数据引起的磁盘抖动。
基于上述的方法实施例以及装置实施例,本发明实施例还提供了一种数据处理设备,该数据处理设备可以对应于前述的主机。参见图7,为本发明实施例提供的一种数据处理设备的结构示意图。图7所示的数据处理设备可至少包括处理器701、输入接口702、输出接口703以及计算机存储介质704。其中,处理器701、输入接口702、输出接口703以及计算机存储介质704可通过总线或其他方式连接。
计算机存储介质704可以存储在数据处理设备的存储器中,所述计算机存储介质704用于存储计算机程序,所述处理器801用于执行所述计算机存储介质704存储的计算机程序。处理器701(或称CPU(Central Processing Unit,中央处理器))是数据处理设备的计算核心以及控制核心,其适于实现一条或多条计算机程序,具体适于加载并执行:
当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从所述主机备份的备份日志数据的文件描述符,所述主机中存储多个日志数据,每个日志数据对应一个文件描述符,所述任一日志数据对应的文件描述符用于反映所述任一日志数据产生的顺序,所述备机按照所述每个日志数据产生的顺序不断从所述主机中备份日志数据;根据备份日志数据的文件描述符确定参考文件描述符,以及基于参考文件描述符获取主机数据库中待清理的目标日志数据对应的目标文件描述符,目标文件描述符小于或等于参考文件描述符;基于目标文件描述符对目标日志数据进行虚拟清理,并异步对目标日志数据进行删除处理。
本发明实施例中,当存在对主机数据库中日志数据的清理事件时,获取备机已从主机数据库中备份的备份日志数据的文件描述符;进一步的,根据备份日志数据的描述符确定参考文件描述符,并选择文件描述符小于或等于该参考文件描述符的目标参考描述符,然后基于目标文件描述符对该目标文件描述符指示的目标日志数据进行虚拟清理和异步删除处理。在上述日志数据的清理过程中,确定待清理的目标日志数据时参考了备机中已备份的备份日志数据,如此可避免主机数据库中日志清理造成备机中日志数据丢失的情况发生。并且,采用虚拟清理和异步删除的方式从主机数据库中删除目标日志数据,避免同步删除目标日志数据引起的磁盘抖动。
本发明实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是数据处理设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括数据处理设备的内置存储介质,当然也可以包括数据处理设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了数据处理设备的操作系统。并且,在该存储空间中还存放了适于被处理器701加载并执行的一条或多条的计算机程序。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,所述计算机存储介质可由处理器701加载并执行计算机存储介质中存放的一条或多条计算机程序,以实现上述图2和图4所示的数据处理方法的相应步骤。具体实现中,计算机存储介质中的一条或多条计算机程序由处理器701加载并执行如下步骤:
当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从所述主机备份的备份日志数据的文件描述符,所述主机中存储多个日志数据,每个日志数据对应一个文件描述符,所述任一日志数据对应的文件描述符用于反映所述任一日志数据产生的顺序,所述备机按照所述每个日志数据产生的顺序不断从所述主机中备份日志数据;根据备份日志数据的文件描述符确定参考文件描述符,以及基于参考文件描述符获取主机数据库中待清理的目标日志数据对应的目标文件描述符,目标文件描述符小于或等于参考文件描述符;基于目标文件描述符对目标日志数据进行虚拟清理,并异步对目标日志数据进行删除处理。
在一个实施例中,所述处理器701在基于所述目标文件描述符对所述目标日志数据进行虚拟清理时,执行如下步骤:
为所述目标文件描述符进行硬链接创建处理,得到与所述目标文件描述符对应的候选文件描述符;建立所述候选文件描述符和所述目标日志数据之间的对应关系,并将所述目标文件描述符从所述主机中删除。
在一个实施例中,所述处理器701在基于所述目标文件描述符对所述目标日志数据进行虚拟清理时,执行如下步骤:为所述目标文件描述符添加已删除标记。
在一个实施例中,所述处理器701在异步对所述目标日志数据进行删除处理时,执行如下步骤:
根据所述候选文件描述符或添加已删除标记的目标文件描述符,从所述主机的磁盘中获取所述目标日志数据;按照目标阈值对所述目标日志数据的数据内容进行分批次删除。
在一个实施例中,所述处理器701在按照目标阈值对所述目标日志数据的数据内容进行分批次删除时,执行如下步骤:按照所述目标阈值对所述目标日志数据的数据内容进行拆分,拆分得到的每个批次的待删除数据的数据内容的大小均小于或等于所述目标阈值;按照每个批次的拆分顺序依次进行删除。
在一个实施例中,对主机中日志数据的清理事件是指:磁盘的存储空间小于存储阈值,且所述主机数据库处于业务低峰期;所述处理器701还用于:
确定所述主机数据库所对应的业务类型;获取所述业务类型对应的吞吐量阈值;如果所述主机数据库的吞吐量小于所述吞吐量阈值,则确定所述主机数据库处于业务低峰期。
在一个实施例中,所述备机的数量为至少一个,所述备份日志数据包括至少一个备机最近一次从所述主机备份的至少一个备份日志数据,所述处理器701在根据所述备份日志数据的文件描述符确定参考文件描述符时,执行如下步骤:
基于所述备份日志数据的文件描述符确定所述主机中已被完整备份的日志数据对应的第一文件描述符,所述已被完整备份的日志数据是指所述至少一个备机的每个备机中均备份的日志数据;
选取小于或等于所述第一文件描述符的文件描述符,作为所述参考文件描述符,其中,越大的文件描述符对应的日志数据,被所述至少一个备机中每个备机备份的顺序越靠后。
在一个实施例中,若所述第一文件描述符的数量为至少一个,则小于或等于所述第一文件描述符的文件描述符是指:小于或等于至少一个文件描述符中较大者的文件描述符。
在一个实施例中,所述至少一个备机包括所述主机的业务从机和数据容灾备机,若所述备份日志数据包括所述业务从机最后一次从所述主机数据库中备份的日志数据,则在所述异步对所述目标日志数据进行删除处理之后;所述处理器701还用于:
若检测到所述数据容灾备机的日志数据备份事件,且所述日志数据备份事件所指示的待备份的日志数据对应的文件描述符,小于所述参考文件描述符,则向所述数据容灾备机发送从所述业务从机备份所述待备份的日志数据的通知信息;所述通知信息用于通知所述数据容灾备机待备份的日志数据已从所述主机中清理,并指示所述数据容灾备机需从所述业务从机中获取待备份的日志数据。
本发明实施例中,当存在对主机数据库中日志数据的清理事件时,获取备机已从主机数据库中备份的备份日志数据的文件描述符;进一步的,根据备份日志数据的描述符确定参考文件描述符,并选择文件描述符小于或等于该参考文件描述符的目标参考描述符,然后基于目标文件描述符对该目标文件描述符指示的目标日志数据进行虚拟清理和异步删除处理。在上述日志数据的清理过程中,确定待清理的目标日志数据时参考了备机中已备份的备份日志数据,如此可避免主机数据库中日志清理造成备机中日志数据丢失的情况发生。并且,采用虚拟清理和异步删除的方式从主机数据库中删除目标日志数据,避免同步删除目标日志数据引起的磁盘抖动。
根据本申请的一个方面,本发明实施例还提供了一种计算机产品或计算机程序,该计算机产品中包括计算机程序,该计算机程序存储在计算机可读存储介质中。处理器701从计算机可读存储介质中读取该计算机程序,处理器701执行该计算机程序,使得终端执行图2和图4所示的数据处理方法,具体地:
当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从所述主机备份的备份日志数据的文件描述符,所述主机中存储多个日志数据,每个日志数据对应一个文件描述符,所述任一日志数据对应的文件描述符用于反映所述任一日志数据产生的顺序,所述备机按照所述每个日志数据产生的顺序不断从所述主机中备份日志数据;根据备份日志数据的文件描述符确定参考文件描述符,以及基于参考文件描述符获取主机数据库中待清理的目标日志数据对应的目标文件描述符,目标文件描述符小于或等于参考文件描述符;基于目标文件描述符对目标日志数据进行虚拟清理,并异步对目标日志数据进行删除处理。
本发明实施例中,当存在对主机数据库中日志数据的清理事件时,获取备机已从主机数据库中备份的备份日志数据的文件描述符;进一步的,根据备份日志数据的描述符确定参考文件描述符,并选择文件描述符小于或等于该参考文件描述符的目标参考描述符,然后基于目标文件描述符对该目标文件描述符指示的目标日志数据进行虚拟清理和异步删除处理。在上述日志数据的清理过程中,确定待清理的目标日志数据时参考了备机中已备份的备份日志数据,如此可避免主机数据库中日志清理造成备机中日志数据丢失的情况发生。并且,采用虚拟清理和异步删除的方式从主机数据库中删除目标日志数据,避免同步删除目标日志数据引起的磁盘抖动。

Claims (12)

1.一种数据处理方法,其特征在于,包括:
当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从所述主机备份的备份日志数据的文件描述符,所述主机中存储多个日志数据,每个日志数据对应一个文件描述符,所述任一日志数据对应的文件描述符用于反映所述任一日志数据产生的顺序,所述备机按照所述每个日志数据产生的顺序不断从所述主机中备份日志数据;
根据所述备份日志数据的文件描述符确定参考文件描述符,以及基于所述参考文件描述符获取待清理的目标日志数据对应的目标文件描述符,所述目标文件描述符小于或等于所述参考文件描述符;
基于所述目标文件描述符对所述目标日志数据进行虚拟清理,并异步对所述目标日志数据进行删除处理。
2.如权利要求1所述的方法,其特征在于,所述基于所述目标文件描述符对所述目标日志数据进行虚拟清理,包括:
为所述目标文件描述符进行硬链接创建处理,得到与所述目标文件描述符对应的候选文件描述符;
建立所述候选文件描述符和所述目标日志数据之间的对应关系,并将所述目标文件描述符从所述主机中删除。
3.如权利要求1所述的方法,其特征在于,所述基于所述目标文件描述符对所述目标日志数据进行虚拟清理,包括:
为所述目标文件描述符添加已删除标记。
4.如权利要求2或3所述的方法,其特征在于,所述异步对所述目标日志数据进行删除处理,包括:
根据所述候选文件描述符或添加已删除标记的目标文件描述符,从所述主机的磁盘中获取所述目标日志数据;
按照目标阈值对所述目标日志数据的数据内容进行分批次删除。
5.如权利要求4所述的方法,其特征在于,所述按照目标阈值对所述目标日志数据的数据内容进行分批次删除,包括:
按照所述目标阈值对所述目标日志数据的数据内容进行拆分,拆分得到的每个批次的待删除数据的数据内容的大小均小于或等于所述目标阈值;
按照每个批次的拆分顺序依次进行删除。
6.如权利要求1所述的方法,其特征在于,所述对主机中日志数据的清理事件是指:磁盘的存储空间小于存储阈值,且所述主机数据库处于业务低峰期;所述方法还包括:
确定所述主机数据库所对应的业务类型;
获取所述业务类型对应的吞吐量阈值;
如果所述主机数据库的吞吐量小于所述吞吐量阈值,则确定所述主机数据库处于业务低峰期。
7.如权利要求1所述的方法,其特征在于,所述备机的数量为至少一个,所述备份日志数据包括至少一个备机最近一次从所述主机备份的至少一个备份日志数据,所述根据所述备份日志数据的文件描述符确定参考文件描述符,包括:
基于所述备份日志数据的文件描述符确定所述主机中已被完整备份的日志数据对应的第一文件描述符,所述已被完整备份的日志数据是指所述至少一个备机的每个备机中均备份的日志数据;
选取小于或等于所述第一文件描述符的文件描述符,作为所述参考文件描述符,其中,越大的文件描述符对应的日志数据,被所述至少一个备机中每个备机备份的顺序越靠后。
8.如权利要求7所述的方法,其特征在于,若所述第一文件描述符的数量为至少一个,则小于或等于所述第一文件描述符的文件描述符是指:小于或等于至少一个文件描述符中较大者的文件描述符。
9.如权利要求7所述的方法,其特征在于,所述至少一个备机包括所述主机的业务从机和数据容灾备机,若所述备份日志数据包括所述业务从机最后一次从所述主机数据库中备份的日志数据,则在所述异步对所述目标日志数据进行删除处理之后,所述方法还包括:
若检测到所述数据容灾备机的日志数据备份事件,且所述日志数据备份事件所指示的待备份的日志数据对应的文件描述符,小于所述参考文件描述符,则向所述数据容灾备机发送从所述业务从机备份所述待备份的日志数据的通知信息;
所述通知信息用于通知所述数据容灾备机待备份的日志数据已从所述主机中清理,并指示所述数据容灾备机需从所述业务从机中获取待备份的日志数据。
10.一种数据处理装置,其特征在于,包括:
获取单元,用于当存在对主机数据库的日志数据的清理事件时,获取备机最近一次从所述主机备份的备份日志数据的文件描述符,所述主机中存储多个日志数据,每个日志数据对应一个文件描述符,所述任一日志数据对应的文件描述符用于反映所述任一日志数据产生的顺序,所述备机按照所述每个日志数据产生的顺序不断从所述主机中备份日志数据;
确定单元,用于根据所述备份日志数据的文件描述符确定参考文件描述符;
所述获取单元,还用于基于所述参考文件描述符获取所述主机数据库中待清理的日志数据对应的目标文件描述符,所述目标文件描述符小于或等于所述参考文件描述符;
处理单元,用于基于所述目标文件描述符对所述目标日志数据进行虚拟清理,并异步对所述目标日志数据进行删除处理。
11.一种数据处理设备,其特征在于,包括:
处理器,适用于实现一条或多条计算机程序;以及
计算机存储介质,所述计算机存储介质存储有一条或多条计算机程序,所述一条或多条计算机程序适于由所述处理器加载并执行如权利要求1-8任一项所述的数据处理方法。
12.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时,用于执行如权利要求1-8任一项所述的数据处理方法。
CN202110100477.7A 2021-01-25 2021-01-25 数据处理方法、装置、设备及存储介质 Pending CN114791901A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110100477.7A CN114791901A (zh) 2021-01-25 2021-01-25 数据处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110100477.7A CN114791901A (zh) 2021-01-25 2021-01-25 数据处理方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114791901A true CN114791901A (zh) 2022-07-26

Family

ID=82460654

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110100477.7A Pending CN114791901A (zh) 2021-01-25 2021-01-25 数据处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114791901A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130871A (zh) * 2023-10-26 2023-11-28 云和恩墨(北京)信息技术有限公司 数据库日志的并行回放方法及装置、非易失性存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117130871A (zh) * 2023-10-26 2023-11-28 云和恩墨(北京)信息技术有限公司 数据库日志的并行回放方法及装置、非易失性存储介质
CN117130871B (zh) * 2023-10-26 2024-04-05 本原数据(北京)信息技术有限公司 数据库日志的并行回放方法及装置、非易失性存储介质

Similar Documents

Publication Publication Date Title
US11256715B2 (en) Data backup method and apparatus
US11397648B2 (en) Virtual machine recovery method and virtual machine management device
CN105389230B (zh) 一种结合快照技术的持续数据保护系统及方法
US11604597B2 (en) Data processing method and apparatus
US8060468B2 (en) Storage system and data recovery method
US7257690B1 (en) Log-structured temporal shadow store
CN108804253B (zh) 一种用于海量数据备份的并行作业备份方法
CN111316245A (zh) 使用完全水合备份还原数据库
CN108509462B (zh) 一种同步活动事务表的方法及装置
CN111078667B (zh) 一种数据迁移的方法以及相关装置
JP2005317017A (ja) アプライアンス・ベースの業務継続アーキテクチャにおけるバックアップ・システム障害後の再同期時間の最短化
CN110019469B (zh) 分布式数据库数据处理方法、装置、存储介质及电子装置
US10628298B1 (en) Resumable garbage collection
CN105573859A (zh) 一种数据库的数据恢复方法和设备
US11748215B2 (en) Log management method, server, and database system
JP2012003394A (ja) データ処理の障害回復方法、システムおよびプログラム
CN109783578B (zh) 数据读取方法、装置、电子设备以及存储介质
CN111506253A (zh) 一种分布式存储系统及其存储方法
CN114968966A (zh) 分布式元数据远程异步复制方法、装置和设备
CN115729749A (zh) 一种数据备份方法及系统
US11249866B1 (en) Snapshot-based data corruption detection
CN113986450A (zh) 一种虚拟机备份方法及装置
CN114791901A (zh) 数据处理方法、装置、设备及存储介质
WO2021082925A1 (zh) 一种交易处理的方法及装置
CN111404737B (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