一种信息处理方法与流程

文档序号:17476356发布日期:2019-04-20 06:09阅读:211来源:国知局
一种信息处理方法与流程

本发明实施例涉及数据库技术领域,特别涉及一种信息处理方法。



背景技术:

某些应用场景下,当用户面临代码漏洞引起的数据错乱情形时,需要进行数据回撤处理,用户通过触发客户端向服务器发送回撤请求,服务器根据该回撤请求,获取与该回撤请求对应的备份文件,将所述备份文件导入临时实例,当临时实例中的数据校验成功后,使用该临时实例替换数据库实例以完成回撤。然而,该已知技术需要遍历数据库实例中的所有数据,且将数据库实例中的所有数据回撤处理到回撤时间区间,使得处理资源被过多占用,导致回撤效率较低。



技术实现要素:

本发明实施例提供了一种信息处理方法,能够解决相关技术中需要将数据库实例中的所有数据进行回撤而导致回撤效率较低的问题,所述技术方案如下:

一种信息处理方法,应用于服务器,所述方法包括:获取回撤请求,所述回撤请求包括回撤时间区间和索引符;对所述回撤请求进行合法性鉴权;在合法性鉴权通过时,根据所述回撤时间区间获取与所述回撤时间区间对应的全局量备份文件和修正量备份文件,根据所述索引符从数据库实例中获取与所述索引符对应的目标数据集;根据所述索引符在所述全局量备份文件中确定所述目标数据集对应的业务数据,并根据所述索引符在所述修正量备份文件中确定所述目标数据集对应的日志数据,其中,所述全局量备份文件为在目标备份时刻对数据库进行一次全局备份得到的备份文件,所述修正量备份文件为所述回撤时间区间的开始时刻或结束时刻分别与目标备份时刻之间对所述数据库的操作日志进行备份得到的备份文件;根据所述业务数据以及日志数据形成目标备份数据;将所述目标备份数据回撤至回撤数据集中,其中,所述回撤数据集是所述数据库实例中与所述目标数据集对应的数据集合。

本发明实施例所提供的信息处理方法,按照集合粒度进行数据回撤,避免了现有技术中实例级别回撤时,需要将数据库实例中的所有数据进行回撤而导致的回撤效率较低的问题。

附图说明

图1是本发明实施例提供的信息处理方法的流程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

参考图1,本发明实施例提供的一种信息处理方法,应用于服务器端,所述方法主要包括如下几个步骤:

步骤1,获取回撤请求,所述回撤请求包括回撤时间区间和索引符。

步骤2,对所述回撤请求进行合法性鉴权。

步骤3,在合法性鉴权通过时,根据所述回撤时间区间获取与所述回撤时间区间对应的全局量备份文件和修正量备份文件,根据所述索引符从数据库实例中获取与所述索引符对应的目标数据集。

步骤4,根据所述索引符在所述全局量备份文件中确定所述目标数据集对应的业务数据,并根据所述索引符在所述修正量备份文件中确定所述目标数据集对应的日志数据,其中,所述全局量备份文件为在目标备份时刻对数据库进行一次全局备份得到的备份文件,所述修正量备份文件为所述回撤时间区间的开始时刻或结束时刻分别与目标备份时刻之间对所述数据库的操作日志进行备份得到的备份文件。

步骤5,根据所述业务数据以及日志数据形成目标备份数据。

步骤6,将所述目标备份数据回撤至回撤数据集中,其中,所述回撤数据集是所述数据库实例中与所述目标数据集对应的数据集合。

具体地,在所述步骤6中,所述将所述目标备份数据回撤处理至回撤数据集中,包括:

步骤61、将所述目标数据集对应的业务数据回写至所述回撤数据集中;

步骤62、在数据回写完成后,将所述目标数据集对应的日志数据回放至所述回撤数据集中。

本实施例中,所述数据回撤处理,是指将数据库中的数据恢复到某一历史时刻,如恢复到数据发生错乱前的某一时刻的信息处理方法。

所述数据库,是指部署在虚拟计算环境中的数据库,其包括多个数据库实例。

本实施例中,所述数据库包括但不限于mongodb数据库、sqlserver数据库、oracle数据库、mysql数据库等。其中,mongodb数据库是一种文档型数据库,即面向文档的数据库。本实施例中主要以云数据库为mongodb数据库为例进行说明。

所述文档,是指mongodb数据库的基本单元,类似于与关系型数据库中的一张表的一行。

所述集合,是指在mongodb数据库中,一组文档称为一个集合,集合是数据库实例对应的所有数据的一个真子集,类似于关系型数据库中的一张表或者至少两张表的组合。

所述数据库实例,是数据库运行中的逻辑工作单位,一个数据库实例可以对数据库进行一次操作,如:增加操作、修改操作、删除操作等,可选的,一个数据库实例为一条或一组结构化查询语言语句。

操作日志,存储数据库中所有数据库操作和命令。在mongodb数据库中,副本集集群通过oplog日志来记录所有的增删改操作。其中,oplog日志中存储有数据库中一条或者多条数据的变更内容及变更时间。

所述全局量备份文件,在某一个历史时刻对数据库进行一次全局备份所形成的数据库完整镜像文件。

所述修正量备份文件,基于全局量备份文件,对数据库中的变化部分进行备份所得到的备份文件。

修正量备份文件包括将数据库的操作日志、数据日志和系统日志中的至少一种进行备份得到的备份文件。

本实施例提供的信息处理方法是按照集合粒度进行回撤的,避免了相关技术中实例级别回撤时需要将数据库实例中的所有数据进行回撤而导致回撤效率较低的问题,在一方面,使得当用户只需要对数据库实例中的部分数据进行回撤时,能够对需要回撤的部分数据进行回撤,提高了回撤效率;在另一方面,在该数据库实例中的部分数据回撤处理过程中其他数据及访问均不受影响,最大可能的降低了数据丢失的范围。

本实施例提供的该信息处理方法包括:

步骤201,获取客户端发送的回撤请求,回撤请求包括回撤时间区间和索引符,索引符用于唯一标识数据库实例中待回撤的目标数据集。

可选的,回撤时间区间为客户端发送回撤请求的发送时刻之前的m天内的任意时间点。

可选的,数据库实例包括至少两个数据集合,数据集合是数据库实例中的数据库或者是数据库实例中的集合。本实施例对此不加以限定。

至少两个数据集合各自对应一个集合标识,集合标识用于在数据库实例中唯一标识该数据集合。待回撤的目标数据集是数据库实例中的一个数据集合。

当用户需要进行数据回撤处理时,用户通过所使用的客户端在数据库实例中选择待回撤的目标数据集以及回撤时间区间,相应的,该用户所使用的客户端向控制中心发送回撤请求,该回撤请求包括回撤时间区间和索引符。对应的,控制中心接收客户端发送的回撤请求,并将该回撤请求转发至回撤中心。对应的,回撤中心接收控制中心转发的回撤请求。

步骤202,获取与回撤时间区间和索引符对应的目标备份数据。

可选的,回撤中心在接收到回撤请求后,确定该回撤请求中的回撤时间区间和索引符,从备份中心中获取与回撤时间区间和索引符对应的目标备份数据。

需要说明的是,回撤中心从备份中心中与回撤时间区间和索引符对应的目标备份数据的过程可参考下面实施例中的相关描述,在此先不介绍。

步骤203,将目标备份数据回撤处理至回撤数据集中,回撤数据集是数据库实例中与目标数据集对应的数据集合。

回撤中心将目标备份数据回撤处理至回撤数据集中。可选的,回撤数据集是获取到客户端发送的回撤请求后新建的数据集合。

综上所述,本发明实施例通过获取客户端发送的回撤请求,回撤请求包括回撤时间区间和索引符,获取与回撤时间区间和索引符对应的目标备份数据,将目标备份数据回撤处理至回撤数据集中,回撤数据集是数据库实例中与目标数据集对应的数据集合;即本发明实施例所提供的信息处理方法是按照集合粒度进行回撤的,避免了相关技术中实例级别回撤时需要将数据库实例中的所有数据进行回撤而导致回撤效率较低的问题,在一方面,使得当用户只需要对数据库实例中的部分数据进行回撤时,能够对需要回撤的部分数据进行回撤,提高了回撤效率;在另一方面,在该数据库实例中的部分数据回撤处理过程中其他数据及访问均不受影响,最大可能的降低了数据丢失的范围。

具体地,本实施例提供的信息处理方法的具体处理过程如下:

步骤301,客户端向控制中心发送回撤请求。

用户在需要进行数据回撤处理时,通过客户端登录控制台,该客户端根据用户在控制台上选择的需要回撤的回撤时间区间、待回撤的目标数据集和输入的回撤集合标识,生成回撤请求,该回撤请求包括回撤时间区间、用于标识待回撤的目标数据集的索引符和回撤集合标识。

回撤集合标识为用户所指定的待创建的回撤数据集的集合标识,该回撤集合标识不能与数据库实例对应的目标数据集的索引符存在冲。

步骤302,控制中心接收到客户端发送的回撤请求后,将该回撤请求转发至回撤中心。

控制中心将该回撤请求转发至回撤中心,对应的,回撤中心接收到该回撤请求。

步骤303,回撤中心校验该回撤请求是否合法。

可选的,当回撤中心接收到回撤请求时,校验回撤请求的合法性,包括:判断备份中心中是否存在与回撤时间区间对应的目标备份文件,或者,判断该回撤时间区间是否在预设时间范围内。当回撤中心判断出备份中心中存在与回撤时间区间对应的目标备份文件,或者,判断出该回撤时间区间在预设时间范围内时,确定回撤请求是合法的。

示意性的,预设时间范围为客户端发送回撤请求的发送时刻之前的m天内。

若回撤中心确定回撤请求是合法的,则执行步骤304;若回撤中心确定回撤请求是不合法的,则结束进程。

步骤304,当回撤中心校验出该回撤请求合法后,获取与回撤时间区间对应的全局量备份文件。

可选的,回撤中心根据回撤时间区间,在备份中心中将距离回撤时间区间最近的备份时刻确定为目标备份时刻,备份中心中存储有n个全局量备份文件和n个全局量备份文件各自对应的备份时刻,n为正整数;获取目标备份时刻对应的全局量备份文件。其中,全局量备份文件为在目标备份时刻对数据库进行一次全局备份得到的备份文件。

可选的,备份中心对全局量备份文件进行备份的方法,包括但不限于以下两种可能的备份方法。

在一种可能的备份方法中,备份中心每隔预定时间间隔对数据库进行一次全局备份得到全局量备份文件,数据库包括m个数据集合,m为正整数;从全局量备份文件中提取m个数据集合各自对应的备份数据;将m个数据集合各自对应的备份数据单独备份为集合备份文件。

可选的,若备份中心是按照该种备份方法对全局量备份文件进行备份的,则回撤中心获取目标备份时刻对应的全局量备份文件,包括:获取目标备份时刻对应的m个集合备份文件。

在另一种可能的备份方法中,备份中心每隔预定时间间隔对数据库进行一次全局备份得到全局量备份文件,全局量备份文件包括数据库中m个数据集合各自对应的业务数据,m为正整数。为了方便介绍,下面仅以第二种可能的备份方法为例进行说明。

可选的,备份中心中存储有n个全局量备份文件和n个全局量备份文件各自对应的备份时刻,n为正整数。其中,全局量备份文件的备份时刻包括备份该全局量备份文件的开始时刻和/或结束时刻。

步骤305,回撤中心根据索引符在全局量备份文件中确定目标数据集对应的业务数据。

回撤中心根据索引符,通过内置的过滤器对全局量备份文件进行过滤,得到目标数据集对应的业务数据。

可选的,回撤中心获取目标备份时刻对应的全局量备份文件后,将目标备份文件进行解压处理,并根据索引符,从解压处理后的目标备份文件中确定目标数据集对应的业务数据。

步骤306,回撤中心根据回撤请求中的回撤集合标识,在数据库实例中创建与回撤集合标识对应的回撤数据集。

可选的,当回撤中心校验出该回撤请求合法后,在数据库实例中创建与回撤集合标识对应的回撤数据集。

其中,回撤集合标识与数据库实例中的至少两个数据集合各自对应的集合标识均不同。

需要说明的是,步骤306可以与步骤304或步骤305并列执行,也可以先执行步骤306再执行步骤304和步骤305,本实施例对此不加以限定。

步骤307,回撤中心将目标数据集对应的业务数据回写至回撤数据集中。

可选的,该回撤数据集可设定保留一定时间(如48小时)并具有功能限制,比如不能进行数据备份,该数据备份包括自动备份和手动备份。

回撤中心将目标数据集对应的业务数据回写至回撤数据集中后,使用回撤数据集代替目标数据集。

可选的,回撤中心使用回撤数据集代替目标数据集,包括:保留回撤数据集的同时,删除数据库实例中的目标数据集,并释放目标数据集的资源。

步骤308,回撤中心获取目标备份时刻与回撤时间区间之间的修正量备份文件。

其中,修正量备份文件为目标备份时刻与回撤时间区间之间对数据库的操作日志进行备份得到的备份文件。

需要说明的是,步骤308和步骤304可以并列执行,即当回撤中心校验出该回撤请求合法后,从备份中心中获取与回撤时间区间对应的全局量备份文件和修正量备份文件。

步骤309,回撤中心根据索引符在修正量备份文件中确定目标数据集对应的日志数据。

可选的,备份中心对修正量备份文件进行备份的方法,包括:每隔预定时间间隔或者实时对数据库的操作日志进行备份得到修正量备份文件,修正量备份文件包括数据库中m个数据集合各自对应的日志数据,m为正整数。

可选的,回撤中心在修正量备份文件中确定目标数据集对应的日志数据,包括:根据索引符,通过内置的过滤器对修正量备份文件进行过滤,得到目标数据集对应的日志数据。

步骤310,回撤中心在数据回写完成后,将目标数据集对应的日志数据回放至回撤数据集中。

可选的,目标数据集对应的日志数据包括k个日志数据,k为正整数。示意性的,日志数据为oplog日志数据。

回撤中心将目标备份时刻与回撤时间区间之间的k个日志数据依次回放至回撤数据集中。由于在全量备份过程中业务数据可能会继续写入,为了保证业务数据的一致性,需要从目标备份时刻开始将oplog日志数据重新执行一次。由于oplog日志数据具有等幂性,因此即使数据已经存在,多次重新对k个oplog日志数据进行回放也不会引起数据错乱。

在一个示意性的例子中,该数据回撤处理过程如下:

1、用户通过全球广域网(worldwideweb,web)控制台或者应用程序编程接口(applicationprogramminginterface,api)将回撤请求发送至控制中心。

用户通过在客户端的应用程序上确定回撤时间区间和待回撤的目标数据集以发起回撤请求,该应用程序通过应用程序编程接口(applicationprogramminginterface,api)访问控制中心以传送数据,从而使控制中心接收到对应的回撤请求,该回撤请求包括回撤时间区间和索引符。

2、控制中心将回撤请求转发至回撤中心。

可选的,控制中心具有集群管理、元数据管理、设备管理、流程关系和监控告警中的至少一种功能。

控制中心在接收客户端发送的回撤请求后,将该回撤请求转发至回撤中心。

3、回撤中心从备份中心中与回撤时间区间对应的获取全局量备份文件和修正量备份文件。

回撤中心校验该回撤请求是否合法,若校验出该回撤请求是合法的,从备份中心中获取全局量备份文件和修正量备份文件。

4、回撤中心将目标备份数据回撤处理至回撤数据集中。

回撤中心根据索引符在全局量备份文件中确定目标数据集对应的业务数据,并在修正量备份文件中确定目标数据集对应的日志数据,将确定出的业务数据和日志数据作为目标备份数据,将目标备份数据回撤处理至回撤数据集中。

回撤中心将目标备份数据回撤处理至回撤数据集中,包括两个阶段:全量数据回写阶段和oplog日志回放阶段。在全量数据回写阶段中,回撤中心将目标数据集对应的业务数据回写至回撤数据集中。在oplog日志回放阶段中,回撤中心将目标数据集对应的日志数据回放至回撤数据集中。

这两个阶段包括但不限于以下几个步骤。

1、回撤中心向备份中心发送第一请求,该第一请求用于请求获取全局量备份文件。

2、备份中心返回全局量备份文件。

备份中心向回撤中心返回全局量备份文件,对应的,回撤中心中的过滤器接收到该全局量备份文件。

3、过滤器按照待回撤的名字空间(英文:namespace)对全局量备份文件进行过滤,得到目标数据集。

可选的,过滤器设置在回撤中心中,该过滤器用于对回撤中心获取到的数据进行过滤处理。

4、过滤器向回撤中心返回待回撤的目标数据集。

5、回撤中心将目标数据集中的业务数据写入至回撤数据集。

6、回撤数据集向回撤中心返回写入结果。

7、回撤中心向备份中心发送第二请求,该第二请求用于请求获取目标备份时刻与回撤时间区间之间的修正量备份文件。

8、备份中心返回目标备份时刻与回撤时间区间之间的修正量备份文件,即目标备份时刻与回撤时间区间之间的oplog日志。

备份中心向回撤中心返回oplog日志,对应的,回撤中心中的过滤器接收到oplog日志。

9、过滤器按照待回撤的名字空间将oplog日志进行过滤,得到目标数据集对应的oplog日志数据。

可选的,过滤器将oplog日志映射为目标数据集的处理操作。例如,命令creat()用于指示创建数据库,对应的处理操作为将其中的namespace参数改成目标数据集的namespace;命令dropdatabase()用于指示删除回撤后的数据库,对应的处理操作为删除目数据标集合;命令drop()用于指示删除目标数据集,对应的处理操作为删除目数据标集合;命令collmod()用于指示修改集合的属性信息,属性信息包括索引的过期时间和数据集合中文档空间的分配方式等,对应的处理操作为将其中的namespace参数改成目标集合的namespace。

10、过滤器向回撤中心返回目标数据集对应的oplog日志数据。

过滤器向回撤中心返回待回放的oplog日志数据,对应的,回撤中心接收到待回放的oplog日志数据。

11、回撤中心将oplog日志数据在备份中心中依次进行回放操作。

12、备份中心向回撤中心返回回放结果。

在oplog日志数据依次被进行回放操作之后,备份中心向回撤中心返回回放结果。该回放结果包括用于指示回放操作成功的结果或者用于指示回放操作失败的结果。对应的,回撤中心接收到该回放结果。

需要说明的一点是,若回撤时间区间即为备份中心中存储的某个全局量备份文件的备份时刻,则回撤中心不需要获取修正量备份文件,也就不需要执行在修正量备份文件中确定目标数据集对应的日志数据,并将日志数据回放至回撤数据集中等步骤。此时,回撤中心只需要获取全局量备份文件即可。因此,回撤中心获取与回撤时间区间和索引符对应的目标备份数据,可以包括:当在备份中心中查找到与回撤时间区间相同的备份时刻时,将备份时刻确定为目标备份时刻,备份中心中存储有n个全局量备份文件和n个全局量备份文件各自对应的备份时刻,n为正整数;获取与回撤时间区间对应的全局量备份文件;根据索引符在全局量备份文件中确定目标数据集对应的业务数据。

需要说明的另一点是,由于本发明实施例是按集合维度进行数据回撤处理的,回撤的目标对象为数据库实例,若过快的往回撤数据集中写入数据,则将会影响业务的正常读写。而且,mongodb数据库的oplog日志空间往往是有限的,过快的写入数据可能会在从节点拉取主节点的oplog日志前,将待读取的oplog日志覆盖,进而导致副本集集群中主节点和从节点同步异常的问题。因此,为了避免对数据库实例的运行造成影响,需要对数据回撤处理的速度进行控制。

为此,本发明实施例利用可变窗口的概念实现回撤流控机制。数据回撤处理系统还包括监控中心,回撤中心将oplog日志在备份中心中依次进行回放操作,包括:1、代理服务器实时监控副本集集群对应的业务请求,生成监控数据;2、代理服务器向监控中心上报该监控数据;3、监控中心接收到该监控数据,从监控数据中获取副本集集群对应的业务请求参数,该业务请求参数用于指示回放窗口中操作日志对应的业务请求的压力大小。监控中心将获取到的业务请求参数发送至回撤中心。对应的,回撤中心接收到该业务请求参数,根据业务请求参数对回放窗口的窗口大小进行调整。4、回撤中心根据调整后的回放窗口继续进行数据回撤处理。

上述步骤中回撤中心将oplog日志在备份中心中依次进行回放操作,包括但不限于以下几个步骤:

步骤801,初始化回放窗口的窗口大小,回放窗口的窗口大小用于指示一次回放操作对应的日志数据的数量。

回撤中心初始化回放窗口的窗口大小,回放窗口的窗口大小可以是回撤中心默认设置的,也可以是人为设置的,本实施例对此不加以限定。

比如,初始化回放窗口的窗口大小为4,即用于指示一次回放操作对应的数据库的操作日志的数量为“4个”。

步骤802,获取业务请求参数,业务请求参数用于指示回放窗口中日志数据对应的业务请求的压力大小。

回撤中心获取副本集集群对应的业务请求参数,该业务请求参数包括每秒查询率(queries-per-second,qps)和/或评价时延。

其中,每秒查询率用于指示副本集集群对应的业务请求在规定时间内所处理的流量大小。评价时延用于指示对副本集集群对应的业务请求所使用的时间长短。

可选的,数据回撤处理系统还包括监控中心,监控中心用于获取监控数据,从监控数据中获取副本集集群对应的业务请求参数,该业务请求参数包括每秒查询率和/或评价时延。监控中心将业务请求参数发送至回撤中心,对应的,回撤中心接收到该业务请求参数。

回撤中心获取业务请求参数,包括:每隔预定时间间隔从监控中心中获取业务请求参数;或者,实时从监控中心中获取业务请求参数。

步骤803,根据业务请求参数,对回放窗口的窗口大小进行调整。

回撤中心根据业务请求参数,对回放窗口的窗口大小进行调整,包括:当业务请求参数满足预设条件时,扩大回放窗口的窗口大小;当业务请求时延不满足预设条件时,缩小回放窗口的窗口大小。其中,预设条件包括每秒查询率大于第一预设阈值,和/或评价时延小于第二预设阈值。本实施例对第一预设阈值和第二预设阈值的实际取值不加以限定。

可选的,回撤中心扩大回放窗口的窗口大小,包括:将回放窗口的窗口大小乘以第一预设系数,计算得到调整后的回放窗口的窗口大小。回撤中心缩小回放窗口的窗口大小,包括:将回放窗口的窗口大小除以第二预设系数,计算得到调整后的回放窗口的窗口大小。其中,第一预设系数和第二预设系数均大于1。

可选的,第一预设系数和第二预设系数是相同的系数,或者是不同的系数。比如,第一预设系数和第二预设系数均为2。

步骤804,根据调整后的回放窗口,对日志数据继续执行回放操作。

回撤中心根据调整后的回放窗口,对尚未回放的日志数据继续执行回放操作。

其中,目标数据集对应的日志数据包括k个日志数据,k个日志数据包括已回放的日志数据、当前窗口中正在回放的日志数据和尚未回放的日志数据中的至少一种。

一个实施例中,回放窗口的窗口大小为2,k个oplog日志包括2个已回放的oplog日志数据,回撤中心获取评价时延,当判断出评价时延小于第二预设阈值时,将回放窗口的窗口大小乘以第一预设系数2,得到调整后的回放窗口的窗口大小为“4”,即调整后的回放窗口中对2个已回放的oplog日志之后的4个oplog日志继续执行回放操作。

综上所述,本发明实施例还通过回撤中心获取副本集集群对应的业务请求参数,根据业务请求参数,对回放窗口的窗口大小进行调整,根据调整后的回放窗口,对日志数据继续执行回放操作,使得回撤中心能够根据实时监控的监控数据对数据回撤处理时的速度进行控制,避免对数据库实例的运行造成影响。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1