CN106648994A - 一种备份操作日志的方法,设备和系统 - Google Patents

一种备份操作日志的方法,设备和系统 Download PDF

Info

Publication number
CN106648994A
CN106648994A CN201710005623.1A CN201710005623A CN106648994A CN 106648994 A CN106648994 A CN 106648994A CN 201710005623 A CN201710005623 A CN 201710005623A CN 106648994 A CN106648994 A CN 106648994A
Authority
CN
China
Prior art keywords
node
memory space
operation log
log memory
shadow
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.)
Granted
Application number
CN201710005623.1A
Other languages
English (en)
Other versions
CN106648994B (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.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201710005623.1A priority Critical patent/CN106648994B/zh
Publication of CN106648994A publication Critical patent/CN106648994A/zh
Application granted granted Critical
Publication of CN106648994B publication Critical patent/CN106648994B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及数据库技术领域,尤其涉及一种备份操作日志的方法,设备和系统。在本申请提供的技术方案中,从节点执行数据库锁操作;所述从节点备份所述从节点中操作日志存储空间的操作日志,并将主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间;所述从节点执行数据库解锁操作;所述从节点终止将所述主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间的操作,并使用影子日志存储空间和主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志。通过本申请提供的技术方案,可以提高数据库系统的可靠性。

Description

一种备份操作日志的方法,设备和系统
技术领域
本申请涉及数据库技术领域,尤其涉及一种备份操作日志的方法,设备和系统。
背景技术
Mongo数据库(Mongo DataBase:MongoDB)是一款面向文档的非关系型数据库。因MongoDB支持集群模式、且不需要设计表结构和表关系,从而系统的可扩展性和可靠性提高了。因此,在Web应用快速开发的今天,MongoDB广受追捧。
在MongoDB中,用户在插入、更新数据库时都会执行相应的数据库命令。执行一条数据库命令也可称为一次数据库操作。用户对数据库每次的操作都会产生一条记录,并保存在数据库系统中,称之为操作日志(Operations Log:OpLog)。
副本集(Replica Set)是MongoDB的应用中最基本的一种集群模式。一个ReplicaSet包括最少3个节点,其中主节点(Primary Node:PNode)处理读、写操作,其他的至少2个从节点(Secondary Node:SNode)节点通过OpLog来同步数据。在MongoDB中,对数据库的所有操作如插入、更新、删除等操作指令及变化都会保存在OpLog中。
在备份集群数据时,通常是将主节点的数据备份到从节点上,如图1所示,包括:
步骤102:使用MongoDB的MongoDB客户端调用fsyncLock命令,并在从节点上执行该fsyncLock命令;
执行该fsyncLock命令后,从节点内存中的数据会被立即写入数据库文件中,并将当前数据库锁住,使得不能再对该数据库进行写操作,即停止了将主节点上的数据同步到从节点上的操作。这样可以在备份数据之前锁住数据库,从而可以保证数据一致性和准确性。
步骤104:使用MongoDump工具、或MongoExport工具、或文件系统复制工具备份数据库中的数据,将从节点上的数据备份到预先准备的存储设备比如磁盘中。
MongoDump工具和MongoExport工具是针对MongoDB提供的备份数据的可执行程序。使用该MongoDump工具或MongoExport工具,通过连接需要进行数据备份的节点,则可以将该节点中的数据导出。
步骤106:备份操作完成后,在从节点上执行fsyncUnlock命令,结束该从节点上的锁操作。这样,该从节点可以将主节点上的数据同步到从节点上。
正常情况下,执行fsyncUnlock命令后,从节点通过对比自身上的OpLog数据的时间戳,与主节点上OpLog数据的时间戳,从而知晓该从节点上需要从主节点上同步哪些数据。
在现有技术中,因主节点上存储OpLog数据的OpLog存储空间是有限制的,当OpLog数据写满了主节点的操作日志存储空间,又会从该主节点的操作日志存储空间的起始位置开始存储,从而覆盖之前的OpLog数据。如果在上述数据备份过程中主节点上发生了OpLog数据覆盖的情况,从节点在备份完成后同步主节点上的OpLog数据时可能无法找到在主节点上对应OpLog数据的时间戳,导致无法进行数据同步,从而使得数据库系统的数据不准确,不可靠。
发明内容
本申请描述的实施例提供了一种备份操作日志的方法,设备和系统,提高系统的可靠性。
一方面,本申请提供了一种备份操作日志的方法,包括:
从节点执行数据库锁操作;
所述从节点备份所述从节点中操作日志存储空间的操作日志,并将主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间;
所述从节点执行数据库解锁操作;
所述从节点终止将所述主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间的操作,并使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志。
另一方面,本申请提供了一种从节点,所述从节点包括操作日志存储空间和影子日志存储空间;所述从节点还包括控制模块和同步模块;其中:
所述控制模块用于执行数据库锁操作或数据库解锁操作;
所述同步模块用于在所述控制模块执行数据库锁操作后,备份所述操作日志存储空间的操作日志,并将主节点的操作日志存储空间的操作日志同步到所述影子日志存储空间;
所述同步模块还用于在执行数据库解锁操作后,终止将所述主节点的操作日志存储空间的操作日志同步到所述影子日志存储空间的操作,并使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志。
另一方面,本申请提供了一种备份操作日志的系统,所述系统包括主节点和从节点;所述主节点包括操作日志存储空间,所述从节点包括操作日志存储空间和影子日志存储空间;其中:
所述主节点用于将所述主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间或所述从节点的操作日志存储空间;
所述从节点用于执行数据库锁操作,备份所述从节点中操作日志存储空间的操作日志,并将所述主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间;
所述从节点还用于执行数据库解锁操作,终止将所述主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间的操作,并使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志。
另一方面,本申请提供了一种计算机设备,所述计算机设备包括至少一处理器和至少一存储器,所述至少一个存储器用于存储计算机程序,所述至少一个处理器执行所述计算机程序后使得所述计算机设备执行本申请所记载的方法。
另一方面,本申请一种计算机存储介质,所述计算机存储介质上储存为计算机软件指令,所述计算机软件指令运行后使计算机执行本申请所记载的方法。
相较于现有技术,本申请实施例所提供的技术方案通过在备份期间将主节点的操作日志同步到从节点的影子日志存储空间,解决了现有技术中因OpLog数据丢失导致数据库系统的数据不准确,不可靠的问题。
附图说明
为说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面附图中反映的仅仅是本申请的一部分实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得本申请的其他实施方式。而所有这些实施例或实施方式都在本申请的保护范围之内。
图1为现有技术中的数据备份方法示意图;
图2为为本申请实施例提供的系统架构示意图;
图3为本申请实施例提供的操作日志备份方法的示意图;
图4为通过影子OpLog进行数据同步的场景示意图;
图5为本申请实施例提供的一种计算机设备的结构示意图;
图6为本申请实施例提供的一种从节点的结构示意图。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例描述的网络架构以及业务场景是为了说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
如图2所示,为本申请实施例的系统架构示意图。该系统中的数据库可以包括主节点和从节点。需要说明的是,在如图2所示以Mongo数据库为例的实现中,可以由一个主节点202和至少两个从节点204构成MongoDB的副本集Replica Set。
主节点202:主节点202上存储有数据库文件,还有一操作日志存储空间2022专门用于存储OpLog数据。该操作日志存储空间2022的大小是有限制的,该操作日志存储空间2022的大小可以设置在配置文件中,由主节点202在启动时从配置文件中读取并在主节点202上设置对应的操作日志存储空间2022。
从节点204:从节点204上可以存储从主节点202上同步得到的数据。从节点204还有一操作日志存储空间2042专门用于存储OpLog数据。该操作日志存储空间2042的大小也是有限制的,并设置在配置文件中,由从节点204在启动时从配置文件中读取并在从节点204上设置对应的操作日志存储空间2042。该从节点204上还可以设置影子日志存储空间2044,该影子日志存储空间2044可以没有空间限制。
本申请中数据库系统中的主节点202和从节点204具体可以由任意主机来实现,如普通的计算机、移动终端、工作站或服务器、专用服务器等。
图2中的系统还可以包括至少一客户端206。用户可以通过操作客户端206对MongoDB数据库进行控制、执行相应的操作,比如用户可以通过操作客户端206访问主节点202,对存储在主节点202上的数据进行读操作或写操作。需要说明的是,该客户端206可以基于各种类型的平台,包括但不限于Web Portal、IOS、安卓、Linux以及Windows平台等。该客户端106可以安装在用户设备上,本申请所涉及到的用户设备可以包括各种具有通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到各类网络的处理设备,以及各种形式移动台(Mobile station,简称MS),终端(terminal),终端设备(Terminal Equipment)等。为方便描述,本申请中,上面提到的设备统称为用户设备。
本申请的从节点204中可以增加空间不受限的影子日志存储空间2044。主节点202中的OpLog数据同步到从节点204中的影子日志存储空间2044,以影子操作日志(ShadowOpLog)的形式存在。影子操作日志在本申请中可简称为影子OpLog。影子OpLog是从节点204上创建的非Capped类型的集合,它的存储空间不受限制,会随着数据的增加而增大其存储空间。
在从节点204上进行操作日志备份期间,由于在从节点204上执行了数据库锁操作如fsyncLock命令,该从节点204上的操作日志存储空间2042不能写入,此时因在从节点204上设置了空间不受限的影子日志存储空间2044,可以将主节点202上的数据同步到影子日志存储空间2044,形成影子OpLog数据。当从节点204上的备份操作完成后,在从节点204上执行数据库解锁操作如fsyncUnlock命令,结束数据库锁状态,又可以将主节点202上的数据同步到从节点上的操作日志存储空间2042。
由于影子日志存储空间2044的大小不受限,且在数据备份期间影子日志存储空间2044与主节点202中的OpLog数据之间可以实时同步,这样即使在主节点202上发生了数据被覆盖的问题,从节点204也可以从影子日志存储空间2044获取备份期间生成的所有操作日志,从而解决现有技术中因OpLog数据丢失导致数据库系统的数据不准确,不可靠的问题。
需要进一步说明的是,上述图2及本申请的其他实施例仅以MongoDB系统为例,本申请的技术方案还可以应用到Cassandra存储系统、Redis系统或HBase数据库等其他数据库系统。Cassandra存储系统是一套开源分布式Key-Value存储系统,Redis系统是可基于内存亦可持久化的日志型的Key-Value数据库,而HBase数据库是分布式的、面向列的开源数据库。
如图3所示,为本申请实施例的操作日志备份方法的示意图。
步骤302:在从节点204上执行数据库锁操作。
具体可以是使用MongoDB的MongoDB客户端调用fsyncLock命令,在从节点204上执行该fsyncLock命令;在从节点204上执行该fsyncLock命令后,从节点204上内存中的数据会被立即写入数据库文件中,并将当前数据库锁住,即停止了将主节点202的操作日志存储空间2022中的数据同步到从节点204的操作日志存储空间2042的操作。
步骤304:将主节点202上的操作日志存储空间2022中的OpLog数据同步到从节点204的影子日志存储空间2044中,以影子OpLog数据的形式存储。
步骤306:将从节点204上操作日志存储空间2042中的OpLog数据备份到预先准备的存储设备比如磁盘中。
该步骤306可以使用MongoDump工具、或MongoExport工具、或文件系统复制工具,先连接需要进行数据备份的节点,将该节点中的数据导出并复制到预先准备的存储设备中。需要说明的是,除备份从节点204上操作日志存储空间2042中的OpLog数据外,还可以备份MongoDB的其他数据库数据,比如用户的业务数据等。
步骤308:备份操作完成后,从节点204上执行数据库解锁操作。从节点204可以先终止主节点202的操作日志存储空间2022中OpLog数据同步到从节点204的影子日志存储空间2044中的操作,然后恢复从主节点202的操作日志存储空间2022同步OpLog数据到从节点204的操作日志存储空间2042的操作。即从节点204可以使用影子日志存储空间2044和主节点202的操作日志存储空间2022中的数据来同步从节点204的操作日志存储空间2042中的操作日志。
从节点204上执行数据库解锁操作可以通过在从节点204上执行fsyncUnlock命令来实现,从而结束该从节点204上的数据库锁状态。
该步骤308中,使用影子日志存储空间2044和主节点202的操作日志存储空间2022中的数据来同步从节点204的操作日志存储空间2042中的操作日志具体可以通过如下任一种方式实现。
实现方式一:从节点204对比操作日志存储空间2042和主节点202上的操作日志存储空间2022,判断主节点202上的操作日志存储空间2022与从节点204上的操作日志存储空间2042是否有相同的操作日志。如果主节点202上的操作日志存储空间2022与从节点204上的操作日志存储空间2042有相同的操作日志,则可以说明在备份期间主节点202的操作日志存储空间2022没有发生数据覆盖的情况,可以将从节点204上OpLog数据的同步源设置为主节点202上的操作日志存储空间2022;如果主节点202上的操作日志存储空间2022与从节点204上的操作日志存储空间2042没有相同的操作日志,则说明在备份期间主节点202的操作日志存储空间2022发生数据覆盖的情况,可能部分OpLog数据已经丢失了,此种情况下可以将从节点204上OpLog数据的同步源先设置为从节点204上的影子日志存储空间2044,将从节点204上影子日志存储空间2044中的影子OpLog数据同步到从节点204上的操作日志存储空间2042;待全部影子OpLog数据同步到从节点204上的操作日志存储空间2042后,再将从节点204上OpLog数据的同步源设置为主节点204上的操作日志存储空间2022。
在具体实现中,从节点204可以根据从节点204上的操作日志存储空间2042中OpLog数据的时间戳和主节点202上的的操作日志存储空间2022中OpLog数据的时间戳,来判断主节点202上的操作日志存储空间2022与从节点204上的操作日志存储空间2042是否有相同的操作日志。当然,从节点204还可以根据操作日志的其他参数,比如操作日志的序号或内容等来判断主节点202上的操作日志存储空间2022与从节点204上的操作日志存储空间2042是否有相同的操作日志,或者根据时间戳、序号或内容等参数的任意组合来判断。
实现方式二:从节点204无需判断主节点202上的操作日志存储空间2022与从节点204上的操作日志存储空间2042是否有相同的操作日志,直接先将从节点204上OpLog数据的同步源设置为从节点204上的影子日志存储空间2044,将从节点204上影子日志存储空间2044中的影子OpLog数据同步到从节点204上的操作日志存储空间2042;待全部影子OpLog数据同步到从节点204上的操作日志存储空间2042后,再将从节点204上OpLog数据的同步源设置为主节点204上的操作日志存储空间2022。
需要说明的是,无论采用上面何种实现方式,从节点204在通过同步获得OpLog数据后,可以通过获得的OpLog数据回放MongoDB的数据库文件,从而实现从节点204和主节点202上数据的一致。
本申请的实施例中,在恢复从主节点202的操作日志存储空间2022同步OpLog数据到从节点204的操作日志存储空间2042的操作之后,可以将从节点204上影子日志存储空间2044的影子OpLog数据删除,以节省从节点204上的存储空间。
在MongoDB中,主节点上的操作日志集合可以被抽象为primary_oplog对象。在该primary_oplog对象上执行的读取、写入等操作可以通过MongoDB中的命令来实现,如oplogFetcher命令等。类似的、从节点上操作日志存储空间的操作日志集合可以被抽象为secondary_oplog对象;而从节点上影子日志存储空间中的操作日志集合可以被抽象为shadow_oplog对象,
图4为本申请中通过影子OpLog实现数据同步的场景示意图。该图中primary_oplog,shadow_oplog和secondary_oplog都是MongoDB中的对象,其中primary_oplog对象位于主节点202,shadow_oplog对象和secondary_oplog对象位于从节点204上。具体描述如下。
步骤402:shadow_oplog向primary_oplog发送oplogFetcher命令,请求同步主节点202上的OpLog数据。
步骤404:primary_oplog向shadow_oplog通过同步操作发送主节点202上的OpLog数据。
步骤406:当从节点204需要通过影子OpLog进行数据同步时,secondary_oplog向shadow_oplog发送oplogFetcher命令。
步骤408:shadow_oplog通过同步操作发送影子日志存储空间2042中的影子OpLog数据到secondary_oplog。
需要说明的是,操作日志备份过程中,从节点204在执行fsyncLock后可以创建shadow_oplog对象。由于操作日志备份过程中数据库被锁,从节点204上的secondary_oplog对象上不允许执行写操作,此时可以将写操作引入到shadow_oplog对象,并将shadow_oplog对象的属性Capped设为false,以保证有足够空间来保存影子OpLog。
本申请在从节点204增加了影子OpLog的功能。在具体业务运行过程中,是否启用影子OpLog功能,何时启用影子OpLog功能,既可以由用户自由设置,也可以通过实时监控、收集数据库系统的数据、网络情况等信息来分析、决策。比如,本申请中可以引入智能分析引擎装置,该智能分析引擎装置可以设置在主节点202上,也可以设置在从节点204上。如果智能分析引擎装置设置在主节点202上,则该智能分析引擎装置决策的结果,由主节点202发送到从节点204,由从节点204根据上述决策结果来确定是否启用影子OpLog功能、何时启用影子OpLog功能。
该智能分析引擎装置的主要功能可以包括:实时监控并收集数据、提取数据的特征并建模、模型训练与交叉验证、模型保存、模型加载、以及分析预测。该智能分析引擎装置可以用来评估预测如下数据:备份操作需要的时长need_max_time,用户在备份周期中的最大操作量max_operator_size。该智能分析引擎装置可以将模型评估预测的need_max_time和max_operator_size主动推送到客户端206;当need_max_time或max_operator_size超过预设的阈值时,则客户端206上可以产生报警,提示用户启用影子OpLog功能。当然,如果在预定的时间内用户未启用影子OpLog功能,也可以由系统自动启动影子OpLog功能。
如图5所示,为本申请实施例提供的一种计算机设备的结构示意图。计算机设备500包括至少一个处理器501,通信总线502,至少一个存储器503以及至少一个通信接口504。
处理器501可以是一个通用中央处理器(CPU)、微处理器、特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信总线502可包括一通路,在上述组件之间传输信息。所述通信接口504,可以是使用任何收发器一类的装置,用于与其他设备或通信网络之间的通信。这里的通信网络可以是以太网,无线接入网(Radio Access Network,RAN),无线局域网(Wireless LocalArea Networks,WLAN)等。
存储器503可以是只读存储器(read-only memory,ROM)、可存储静态信息和指令的静态存储设备、随机存取存储器(random access memory,RAM)、或者可存储信息和指令的动态存储设备,也可以是电可擦可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器503可以是独立存在,通过通信总线502与处理器501相连接;存储器503也可以和处理器501集成在一起。
上述存储器503可用于存储执行本申请方案的应用程序代码;处理器501可用于执行存储器503中存储的应用程序代码。
作为具体实现的一种实施例,计算机设备500可以包括多个处理器,例如图5中的处理器501和处理器508。这些处理器中的每一个都可以是单核(single-CPU)处理器,也可以是多核(multi-CPU)处理器。每个处理器本身,如处理器501可以包括一个或多个CPU,例如CPU0和CPU1。
计算机设备500还可以包括输出设备505和输入设备506。输出设备505和处理器501通信,可以以多种方式来显示信息。输出设备505可以是液晶显示器(liquid crystaldisplay,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathoderay tube,CRT)显示设备、或投影仪(projector)等。输入设备506和处理器501通信,可以以多种方式接收用户的输入。输入设备506可以是鼠标、键盘、触摸屏设备或传感设备等。
计算机设备500可以是通用计算机设备、或者专用计算机设备。在具体实现中,计算机设备500可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal DigitalAssistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、或嵌入式设备等。本申请实施例不限定计算机设备500的类型。
需要说明的是,图5所示的计算机设备500仅仅是给出了云服务系统中各部分的可能的硬件实现方式,根据系统各部分功能的不同或者变化,可以对计算机设备的硬件组件进行增删,以使得与系统各部分的功能进行匹配。
如图6所示,为本申请实施例提供的一种用于备份操作日志的从节点600的结构示意图,该从节点600包括操作日志存储空间602和影子日志存储空间604,影子日志存储空间604可以以非Capped类型的集合存储影子OpLog。从节点600还可以包括控制模块606和同步模块608;其中:
控制模块606用于执行数据库锁操作或数据库解锁操作;
同步模块608在控制模块606执行数据库锁操作后,备份操作日志存储空间602的操作日志,并将主节点的操作日志存储空间的操作日志同步到影子日志存储空间604;
同步模块608还可以在执行数据库解锁操作后,终止将主节点的操作日志存储空间的操作日志同步到影子日志存储空间604的操作,并使用影子日志存储空间604和主节点的操作日志存储空间中的数据来同步从节点600的操作日志存储空间602中的操作日志。
上述同步模块608可以通过如下方式实现使用影子日志存储空间604和主节点的操作日志存储空间中的数据来同步从节点600的操作日志存储空间602中的操作日志:
如果主节点的操作日志存储空间与操作日志存储空间602有相同的操作日志,同步模块608将操作日志存储空间602的同步源设置为主节点的操作日志存储空间;
如果主节点的操作日志存储空间与操作日志存储空间602没有相同的操作日志,同步模块608先将操作日志存储空间602的同步源设置为影子日志存储空间604,在完成将影子日志存储空间604的操作日志同步到操作日志存储空间602后,同步模块608再将操作日志存储空间602的同步源设置为主节点的操作日志存储空间。
上述同步模块608还可以通过如下方式将主节点的操作日志存储空间的操作日志同步到操作日志存储空间602:同步模块608先将操作日志存储空间602的同步源设置为影子日志存储空间604,在完成将影子日志存储空间604的操作日志同步到操作日志存储空间602后,同步模块608将操作日志存储空间602的同步源设置为主节点的操作日志存储空间。
需要说明的是,控制模块606可以根据操作日志的参数判断主节点的操作日志存储空间与操作日志存储空间602是否有相同的操作日志;这里的操作日志的参数可以包括如下之一或其任意组合:时间戳、或序号、或内容。
通过图6所示的从节点600,可以以计算机设备的形式存在。即本申请的上述一种设备600可以包括至少一处理器和至少一存储器,上述至少一个处理器执行上述至少一个存储器中存储的计算机程序,使得从节点600执行本申请上述实施例提供的备份操作日志的方法。需要说明的是,这里的计算机设备可以具有如图5所示的结构。
本申请实施例还提供了一种计算机存储介质,用于储存计算机软件指令,其包含用于执行本申请上述方法实施例所设计的程序。通过执行该计算机存储介质中存储的程序,可以实现本申请提供的备份操作日志的方法。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (20)

1.一种备份操作日志的方法,其特征在于,所述方法包括:
从节点执行数据库锁操作;
所述从节点备份所述从节点中操作日志存储空间的操作日志,并将主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间;
所述从节点执行数据库解锁操作;
所述从节点终止将所述主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间的操作,并使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志。
2.如权利要求1所述的方法,其特征在于,所述从节点的影子日志存储空间以非Capped类型的集合存储操作日志。
3.如权利要求1或2所述的方法,其特征在于,所述从节点使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志包括:
如果所述主节点的操作日志存储空间与所述从节点的操作日志存储空间有相同的操作日志,所述从节点将所述从节点上操作日志存储空间的同步源设置为所述主节点的操作日志存储空间;
如果所述主节点的操作日志存储空间与所述从节点的操作日志存储空间没有相同的操作日志,所述从节点将所述从节点上操作日志存储空间的同步源设置为所述从节点的影子日志存储空间,在完成将所述从节点的影子日志存储空间的操作日志同步到所述从节点的操作日志存储空间后,所述从节点将所述从节点上操作日志存储空间的同步源设置为所述主节点的操作日志存储空间。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
所述从节点根据操作日志的参数判断所述主节点的操作日志存储空间与所述从节点的操作日志存储空间是否有相同的操作日志;所述操作日志的参数包括如下之一或其组合:时间戳、或序号、或内容。
5.如权利要求1或2所述的方法,其特征在于,所述从节点使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志包括:
所述从节点将所述从节点上操作日志存储空间的同步源设置为所述从节点的影子日志存储空间,在完成将所述从节点的影子日志存储空间的操作日志同步到所述从节点的操作日志存储空间后,所述从节点将所述从节点上操作日志存储空间的同步源设置为所述主节点的操作日志存储空间。
6.如权利要求1至4任一项所述的方法,其特征在于,所述主节点和所述从节点是MongoDB中的节点。
7.一种从节点,其特征在于,所述从节点包括操作日志存储空间和影子日志存储空间;所述从节点还包括控制模块和同步模块;其中:
所述控制模块用于执行数据库锁操作或数据库解锁操作;
所述同步模块用于在所述控制模块执行数据库锁操作后,备份所述操作日志存储空间的操作日志,并将主节点的操作日志存储空间的操作日志同步到所述影子日志存储空间;
所述同步模块还用于在执行数据库解锁操作后,终止将所述主节点的操作日志存储空间的操作日志同步到所述影子日志存储空间的操作,使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志。
8.如权利要求7所述的从节点,其特征在于,所述影子日志存储空间以非Capped类型的集合存储操作日志。
9.如权利要求7或8所述的从节点,其特征在于,所述同步模块使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志包括:
如果所述主节点的操作日志存储空间与所述操作日志存储空间有相同的操作日志,所述同步模块将所述操作日志存储空间的同步源设置为所述主节点的操作日志存储空间;
如果所述主节点的操作日志存储空间与所述操作日志存储空间没有相同的操作日志,所述同步模块将所述操作日志存储空间的同步源设置为所述影子日志存储空间,在完成将所述影子日志存储空间的操作日志同步到所述操作日志存储空间后,所述同步模块将所述操作日志存储空间的同步源设置为所述主节点的操作日志存储空间。
10.如权利要求9所述的从节点,其特征在于,所述控制模块根据操作日志的参数判断所述主节点的操作日志存储空间与所述操作日志存储空间是否有相同的操作日志;所述操作日志的参数包括如下之一或其组合:时间戳、或序号、或内容。
11.如权利要求7或8所述的从节点,其特征在于,所述同步模块使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志包括:
所述同步模块将所述操作日志存储空间的同步源设置为所述影子日志存储空间,在完成将所述影子日志存储空间的操作日志同步到所述操作日志存储空间后,所述同步模块将所述操作日志存储空间的同步源设置为所述主节点的操作日志存储空间。
12.如权利要求7至11任一项所述的从节点,其特征在于,所述主节点和所述从节点是MongoDB中的节点。
13.一种备份操作日志的系统,其特征在于,所述系统包括主节点和从节点;所述主节点包括操作日志存储空间,所述从节点包括操作日志存储空间和影子日志存储空间;其中:
所述主节点用于将所述主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间或所述从节点的操作日志存储空间;
所述从节点用于执行数据库锁操作,备份所述从节点中操作日志存储空间的操作日志,并将所述主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间;
所述从节点还用于执行数据库解锁操作,终止将所述主节点的操作日志存储空间的操作日志同步到所述从节点的影子日志存储空间的操作,并将所述主节点的操作日志存储空间的操作日志同步到所述从节点的操作日志存储空间。
14.如权利要求13所述的系统,其特征在于,所述从节点的影子日志存储空间以非Capped类型的集合存储操作日志。
15.如权利要求13或14所述的系统,其特征在于,所述从节点使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志包括:
如果所述主节点的操作日志存储空间与所述从节点的操作日志存储空间有相同的操作日志,所述从节点将所述从节点上操作日志存储空间的同步源设置为所述主节点的操作日志存储空间;
如果所述主节点的操作日志存储空间与所述从节点的操作日志存储空间没有相同的操作日志,所述从节点将所述从节点上操作日志存储空间的同步源设置为所述从节点的影子日志存储空间,在完成将所述从节点的影子日志存储空间的操作日志同步到所述从节点的操作日志存储空间后,所述从节点将所述从节点上操作日志存储空间的同步源设置为所述主节点的操作日志存储空间。
16.如权利要求15所述的系统,其特征在于,所述从节点还用于根据操作日志的参数判断所述主节点的操作日志存储空间与所述从节点的操作日志存储空间是否有相同的操作日志;所述操作日志的参数包括如下之一或其组合:时间戳、或序号、或内容。
17.如权利要求13或14所述的系统,其特征在于,所述从节点使用所述影子日志存储空间和所述主节点的操作日志存储空间来同步所述从节点的操作日志存储空间的操作日志包括:
所述从节点将所述从节点上操作日志存储空间的同步源设置为所述从节点的影子日志存储空间,在完成将所述从节点的影子日志存储空间的操作日志同步到所述从节点的操作日志存储空间后,所述从节点将所述从节点上操作日志存储空间的同步源设置为所述主节点的操作日志存储空间。
18.如权利要求13至17任一项所述的系统,其特征在于,所述主节点和所述从节点是MongoDB中的节点。
19.一种计算机设备,其特征在于,所述计算机设备包括至少一处理器和至少一存储器,所述至少一个存储器用于存储计算机程序,所述至少一个处理器执行所述计算机程序后使得所述计算机设备执行权利要求1至6任一项所记载的方法。
20.一种计算机存储介质,所述计算机存储介质上储存为计算机软件指令,所述计算机软件指令运行后使计算机执行权利要求1至6任一项所记载的方法。
CN201710005623.1A 2017-01-04 2017-01-04 一种备份操作日志的方法,设备和系统 Active CN106648994B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710005623.1A CN106648994B (zh) 2017-01-04 2017-01-04 一种备份操作日志的方法,设备和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710005623.1A CN106648994B (zh) 2017-01-04 2017-01-04 一种备份操作日志的方法,设备和系统

Publications (2)

Publication Number Publication Date
CN106648994A true CN106648994A (zh) 2017-05-10
CN106648994B CN106648994B (zh) 2020-09-11

Family

ID=58844111

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710005623.1A Active CN106648994B (zh) 2017-01-04 2017-01-04 一种备份操作日志的方法,设备和系统

Country Status (1)

Country Link
CN (1) CN106648994B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110196832A (zh) * 2019-06-04 2019-09-03 北京百度网讯科技有限公司 用于获取快照信息的方法及装置
CN110309156A (zh) * 2018-03-01 2019-10-08 阿里巴巴集团控股有限公司 数据库系统、数据库更新、扩容方法及设备
CN110502460A (zh) * 2018-05-16 2019-11-26 华为技术有限公司 数据处理的方法和节点
CN111008244A (zh) * 2019-11-22 2020-04-14 厦门安胜网络科技有限公司 一种用于数据库的同步和分析方法及系统
CN112084171A (zh) * 2020-08-14 2020-12-15 浪潮思科网络科技有限公司 基于Cassandra数据库的操作日志写入方法、装置、设备及介质
WO2021093735A1 (zh) * 2019-11-15 2021-05-20 北京金山云网络技术有限公司 分布式存储系统的数据同步方法、装置、设备及存储介质
WO2021189670A1 (zh) * 2020-03-26 2021-09-30 上海依图网络科技有限公司 数据同步方法、数据同步系统及其装置、介质和系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294570A (zh) * 2012-02-23 2013-09-11 深圳市腾讯计算机系统有限公司 一种内存数据的备份方法和装置
CN103577577A (zh) * 2013-11-06 2014-02-12 北京京东尚科信息技术有限公司 一种保存数据库日志的方法、装置及系统
CN103780638A (zh) * 2012-10-18 2014-05-07 腾讯科技(深圳)有限公司 数据同步方法及系统
CN104750573A (zh) * 2014-12-17 2015-07-01 杭州斯凯网络科技有限公司 分布式数据系统数据节点的全局一致性备份和还原方法
US20150347547A1 (en) * 2014-05-30 2015-12-03 Zardosht Kasheff Replication in a NoSQL System Using Fractal Tree Indexes
CN105912628A (zh) * 2016-04-07 2016-08-31 北京奇虎科技有限公司 主从数据库的同步方法及装置
CN106126371A (zh) * 2016-06-15 2016-11-16 腾讯科技(深圳)有限公司 数据回档方法、装置及系统
CN106209948A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 一种数据推送方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294570A (zh) * 2012-02-23 2013-09-11 深圳市腾讯计算机系统有限公司 一种内存数据的备份方法和装置
CN103780638A (zh) * 2012-10-18 2014-05-07 腾讯科技(深圳)有限公司 数据同步方法及系统
CN103577577A (zh) * 2013-11-06 2014-02-12 北京京东尚科信息技术有限公司 一种保存数据库日志的方法、装置及系统
US20150347547A1 (en) * 2014-05-30 2015-12-03 Zardosht Kasheff Replication in a NoSQL System Using Fractal Tree Indexes
CN104750573A (zh) * 2014-12-17 2015-07-01 杭州斯凯网络科技有限公司 分布式数据系统数据节点的全局一致性备份和还原方法
CN106209948A (zh) * 2015-05-07 2016-12-07 阿里巴巴集团控股有限公司 一种数据推送方法及装置
CN105912628A (zh) * 2016-04-07 2016-08-31 北京奇虎科技有限公司 主从数据库的同步方法及装置
CN106126371A (zh) * 2016-06-15 2016-11-16 腾讯科技(深圳)有限公司 数据回档方法、装置及系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DEEPZZ: "mongodb副本集(Replica Set)搭建", 《HTTPS://DEEPZZ.COM/POST/MONGODB-REPLICA-SET.HTML》 *
田小计划: "MongoDB副本集的工作原理", 《WEB.ARCHIVE.ORG/WEB/20150313052957/HTTPS://WWW.CNBLOGS.COM/WILBER2013/P/4154406.HTML》 *
默北: "mongodb备份与恢复(上)—ttlsa教程系列之mongodb(八)", 《WEB.ARCHIVE.ORG/WEB/20140323035439/HTTP://WWW.TTLSA.COM/MONGODB/MONGODB-BACKUP-AND-RECOVERY-_ON_-TTLSA-TUTORIAL-SERIES-MONGODB/》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110309156A (zh) * 2018-03-01 2019-10-08 阿里巴巴集团控股有限公司 数据库系统、数据库更新、扩容方法及设备
CN110502460A (zh) * 2018-05-16 2019-11-26 华为技术有限公司 数据处理的方法和节点
CN110502460B (zh) * 2018-05-16 2021-03-23 华为技术有限公司 数据处理的方法和节点
CN110196832A (zh) * 2019-06-04 2019-09-03 北京百度网讯科技有限公司 用于获取快照信息的方法及装置
WO2021093735A1 (zh) * 2019-11-15 2021-05-20 北京金山云网络技术有限公司 分布式存储系统的数据同步方法、装置、设备及存储介质
CN111008244A (zh) * 2019-11-22 2020-04-14 厦门安胜网络科技有限公司 一种用于数据库的同步和分析方法及系统
WO2021189670A1 (zh) * 2020-03-26 2021-09-30 上海依图网络科技有限公司 数据同步方法、数据同步系统及其装置、介质和系统
CN112084171A (zh) * 2020-08-14 2020-12-15 浪潮思科网络科技有限公司 基于Cassandra数据库的操作日志写入方法、装置、设备及介质
CN112084171B (zh) * 2020-08-14 2024-04-12 浪潮思科网络科技有限公司 基于Cassandra数据库的操作日志写入方法、装置、设备及介质

Also Published As

Publication number Publication date
CN106648994B (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN106648994A (zh) 一种备份操作日志的方法,设备和系统
CN107273280B (zh) 一种日志处理方法、装置、电子设备和存储介质
EP3120261B1 (en) Dependency-aware transaction batching for data replication
US20200272620A1 (en) Transaction processing at non-relational databases
US8719796B2 (en) Parametric trace slicing
US9098563B2 (en) Comparing versions of a hierarchical object
US20190228000A1 (en) Repairing corrupted references
US20130086556A1 (en) System for ensuring comprehensiveness of requirements testing of software applications
CN110188103A (zh) 数据对账方法、装置、设备和存储介质
CN110162517A (zh) 数据迁移方法、装置、设备及计算机可读存储介质
CN111061740B (zh) 一种数据同步方法、设备和存储介质
CN109376153A (zh) 一种基于NiFi的数据写入图数据库的系统及方法
CN115048254B (zh) 数据分配策略的仿真测试方法、系统、设备和可读介质
CN111177244A (zh) 面向多个异构数据库的数据关联分析方法
CN114077518A (zh) 数据快照方法、装置、设备及存储介质
Lv et al. An optimized RGA supporting selective undo for collaborative text editing systems
CN113591580B (zh) 图像标注方法、装置、电子设备和存储介质
CN117170655A (zh) 一种元数据处理方法、装置、数据处理设备及存储介质
CN115130130B (zh) 网盘文件解锁方法、装置、网盘及存储介质
CN114124977B (zh) 跨租户间的数据分享方法、装置和电子设备
CN108959309B (zh) 数据分析的方法和装置
CN113641628B (zh) 数据质量检测方法、装置、设备及存储介质
CN111552956B (zh) 一种用于后台管理的角色权限控制方法及装置
CN114116325A (zh) 配置一致性检查装置及方法
CN105683961B (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220225

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Patentee after: Huawei Cloud Computing Technologies Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.