CN108874811B - 一种数据恢复和迁移的方法和装置 - Google Patents

一种数据恢复和迁移的方法和装置 Download PDF

Info

Publication number
CN108874811B
CN108874811B CN201710326159.6A CN201710326159A CN108874811B CN 108874811 B CN108874811 B CN 108874811B CN 201710326159 A CN201710326159 A CN 201710326159A CN 108874811 B CN108874811 B CN 108874811B
Authority
CN
China
Prior art keywords
data
read
mark
reading
file
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
CN201710326159.6A
Other languages
English (en)
Other versions
CN108874811A (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201710326159.6A priority Critical patent/CN108874811B/zh
Publication of CN108874811A publication Critical patent/CN108874811A/zh
Application granted granted Critical
Publication of CN108874811B publication Critical patent/CN108874811B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/1458Management of the backup or restore process

Abstract

本发明提供一种数据恢复和迁移的方法和装置。所述方法包括:配置步骤,配置数据恢复和迁移任务,对与所述任务相关联的参数加以设置;读数据步骤,根据所述参数,按照批次依次读取历史数据,为每批读取的历史数据单独生成一个数据文件并加以缓冲存储,并且将每个数据文件的数据范围和读数据标记存入Redis;以及写数据步骤,根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则根据所述数据范围按照批次依次将缓冲存储的历史数据恢复到源数据库或迁移到目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。

Description

一种数据恢复和迁移的方法和装置
技术领域
本发明涉及计算机技术及软件领域,尤其涉及一种数据恢复和迁移的方法和装置。
背景技术
随着访问量的增长,线上数据量增长速度越来越快,运营人员需要定期地将关闭状态的业务数据结转到历史库或云存储,结转后的数据称为历史数据。而历史数据并非永久封存,可以说它后续的生存意义更为重大,比如做数据分析、恢复到性能测试环境用来做压测等。另外,针对大数据分析或线下测试,需要将关闭状态的业务数据迁移到大数据平台或测试数据库。因此,就需要一种对历史数据做恢复或迁移的方法和装置。
当前要将数据恢复到源数据库或迁移到其他作用的数据库,有如下几种方式:
1)如果数据结转到了云存储,则可以按照当时生成的外链下载数据文件,转为SQL脚本,挑选出待恢复或迁移的数据,找到数据库管理员,或提交到相关平台,再由数据库管理员处理。
2)如果结转到某历史库,则需要找数据库管理员或通过平台提交提数申请,然后在将取到的数据文件通过数据库管理员或某些平台导入到目标数据库。
因此现有技术中的数据恢复或迁移存在如下的缺点:
1)对正常生产库影响较大,操作起来不方便;
2)效率低,迁移数据时间较长;
3)需要数据库管理员密切配合,沟通成本较高;
4)出现问题后处理成本高。中断后想在中断点续接比较麻烦,需要人工过多干预,人力成本高。
如下列出与本发明相关联的一些术语:
历史库:保存结转数据的数据库,为一种关系型数据库;
源数据库:线上生成使用的数据库;
LevelDB:一种非常高效的K-V数据库;
JDBC(Java Data Base Connectivity,Java数据库连接):一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成;
Redis:一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
发明内容
有鉴于此,本发明提供一种数据恢复和迁移的方法和装置,将结转后的数据恢复到线上源数据库或迁移到其他目的数据库。将历史数据灵活的恢复到源生产库、灵活的迁移到目标库。利用Redis缓存保证数据安全续接并且利用LevelDB高速读写提高效率。根据本发明的数据恢复和迁移效率高,操作简便灵活,不影响正常生产,并且出现问题或中断时可以轻松续接提高了安全和可靠性。同时,也节省了人力成本。
为实现上述目的,根据本发明的一个方面,提供了一种数据恢复和迁移的方法。
本发明的一种数据恢复和迁移的方法包括:配置步骤,配置数据恢复和迁移任务,对与所述任务相关联的参数加以设置;读数据步骤,根据所述参数,按照批次依次读取历史数据,为每批读取的历史数据单独生成一个数据文件并加以缓冲存储,并且将每个数据文件的数据范围和读数据标记存入Redis;以及写数据步骤,根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则根据所述数据范围按照批次依次将缓冲存储的历史数据恢复到源数据库或迁移到目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
可选地,所述方法还包括:在所述读数据步骤中,当读取失败或遇到其他异常时,将相应的数据文件的数据范围和读数据标记存入Redis,并终止读取,待到下次启动任务时检查为失败的读数据标记,并根据相应的数据范围继续读取;以及在所述写数据步骤中,当写入失败或遇到其他异常时,将相应的数据文件的数据范围和写数据标记存入Redis,并终止写入,待到下次启动任务时检查为失败的写数据标记,并根据相应的数据范围继续写入。
可选地,所述读数据步骤还包括:如果是从云存储读取数据,则根据所述参数按照批次依次读取数据,然后将数据文件直接保存于服务端磁盘,或利用LevelDB高速写功能将数据文件写入LevelDB;如果是从历史库读取数据,则将JDBC连接到历史库的从库,根据所述参数按照批次依次读取数据,将数据组装成SQL脚本文件,暂时存入服务端磁盘,其中为每批读取的历史数据单独生成一个数据文件保存在服务端磁盘中,并且将每个数据文件的数据范围和读数据标记存入Redis。
可选地,所述写数据步骤还包括:根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则从服务端磁盘读取数据文件或从LevelDB读取数据流,对数据文件或数据流解压并解析出插入语句,创建待插入的数据集,按照批次依次将数据恢复到源数据库或将数据迁移到指定的目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
可选地,所述参数包括:数据读写的批处理的量、云存储数据文件链接或云存储上对应的键(KEY)、历史库链接。
为实现上述目的,根据本发明的另一方面,提供了一种数据恢复和迁移的装置。
本发明的一种数据恢复和迁移的装置包括:配置模块,配置数据恢复和迁移任务,对与所述任务相关联的参数加以设置;读数据模块,根据所述参数,按照批次依次读取历史数据,为每批读取的历史数据单独生成一个数据文件并加以缓冲存储,并且将每个数据文件的数据范围和读数据标记存入Redis;以及写数据模块,根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则根据所述数据范围按照批次依次将缓冲存储的历史数据恢复到源数据库或迁移到目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
可选地,所述装置还包括:在所述读数据模块中,当读取失败或遇到其他异常时,将相应的数据文件的数据范围和读数据标记存入Redis,并终止读取,待到下次启动任务时检查为失败的读数据标记,并根据相应的数据范围继续读取;以及在所述写数据模块中,当写入失败或遇到其他异常时,将相应的数据文件的数据范围和写数据标记存入Redis,并终止写入,待到下次启动任务时检查为失败的写数据标记,并根据相应的数据范围继续写入。
可选地,所述读数据模块还包括:如果是从云存储读取数据,则根据所述参数按照批次依次读取数据,然后将数据文件直接保存于服务端磁盘,或利用LevelDB高速写功能将数据文件写入LevelDB;如果是从历史库读取数据,则将JDBC连接到历史库的从库,根据所述参数按照批次依次读取数据,将数据组装成SQL脚本文件,暂时存入服务端磁盘,其中为每批读取的历史数据单独生成一个数据文件保存在服务端磁盘中,并且将每个数据文件的数据范围和读数据标记存入Redis。
可选地,所述写数据模块还包括:根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则从服务端磁盘读取数据文件或从LevelDB读取数据流,对数据文件或数据流解压并解析出插入语句,创建待插入的数据集,按照批次依次将数据恢复到源数据库或将数据迁移到指定的目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
可选地,所述参数包括:数据读写的批处理的量、云存储数据文件链接或云存储上对应的键、历史库链接。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种数据恢复和迁移的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种数据恢复和迁移的方法。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明的数据恢复和迁移的方法的主要步骤的示意图;
图2是根据本发明实施例的单任务数据恢复和迁移的示意图;
图3是根据本发明实施例的多任务数据恢复和迁移的示意图;
图4是根据本发明实施例的数据恢复和迁移的装置的主要部分的示意图;以及
图5是适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明的数据恢复和迁移的方法的主要步骤的示意图。
如图1所示,本发明实施例的一种数据恢复和迁移的方法主要包括如下步骤:
配置步骤,配置数据恢复和迁移任务,对与所述任务相关联的参数加以设置;
读数据步骤,根据所述参数,按照批次依次读取历史数据,为每批读取的历史数据单独生成一个数据文件并加以缓冲存储,并且将每个数据文件的数据范围和读数据标记存入Redis;以及
写数据步骤,根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则根据所述数据范围按照批次依次将缓冲存储的历史数据恢复到源数据库或迁移到目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
其中在所述读数据步骤中,当读取失败或遇到其他异常时,将相应的数据文件的数据范围和读数据标记存入Redis,并终止读取,待到下次启动任务时检查为失败的读数据标记,并根据相应的数据范围继续读取;以及在所述写数据步骤中,当写入失败或遇到其他异常时,将相应的数据文件的数据范围和写数据标记存入Redis,并终止写入,待到下次启动任务时检查为失败的写数据标记,并根据相应的数据范围继续写入。
所述读数据步骤还包括:如果是从云存储读取数据,则根据所述参数按照批次依次读取数据,然后将数据文件直接保存于服务端磁盘,或利用LevelDB高速写功能将数据文件写入LevelDB;如果是从历史库读取数据,则将JDBC连接到历史库的从库,根据所述参数按照批次依次读取数据,将数据组装成SQL脚本文件,暂时存入服务端磁盘,其中为每批读取的历史数据单独生成一个数据文件保存在服务端磁盘中,并且将每个数据文件的数据范围和读数据标记存入Redis。
所述写数据步骤还包括:根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则从服务端磁盘读取数据文件或从LevelDB读取数据流,对数据文件或数据流解压并解析出插入语句,创建待插入的数据集,按照批次依次将数据恢复到源数据库或将数据迁移到指定的目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
其中,所述参数包括:数据读写的批处理的量、云存储数据文件链接或云存储上对应的键、历史库链接。
图2是根据本发明实施例的单任务数据恢复和迁移的示意图。图3是根据本发明实施例的多任务数据恢复和迁移的示意图。在如图2和图3所示的数据恢复和迁移的过程中,首先要配置任务,任务中包含云存储数据文件链接或云存储上对应的键或者历史库链接,即限定源和目标数据库,批处理的量。
然后,根据配置的任务来读数据。如果是从云存储读取数据文件,则可以采用云存储读写技术获取数据文件,然后将数据文件直接保存于服务端磁盘,或可以利用LevelDB高速写功能将数据文件写入LevelDB。
如果是从某个历史库读取数据(其中历史库为一种关系型数据库),则需要JDBC连接到历史库的从库。根据任务中配置的参数读取数据,将数据信息组装成SQL脚本文件,暂时存入服务端磁盘,等待读取。
其中可以为读取数据设置批处理的量,每次读取数据的批处理的量可在配置任务时加以设置,其可以参考每条数据记录的大小和服务端内存大小自行设定。每批读取数据单独生成一个数据文件保存在服务端磁盘中,同时以任务名和文件名作为键,将每个数据文件的数据范围和读取数据成功或失败的标记存入Redis缓存。
接下来,根据配置的任务来写数据。该步骤主要是向线上源数据库或指定目标库中插入数据。首先以任务名和文件名从Redis中读取每批要恢复的数据范围以及读取数据是否成功的标记,如果标记是成功的,则从服务端磁盘读取数据文件或从LevelDB中读取数据流,对数据文件或数据流解压并解析出插入语句,创建待插入的数据集。分批地将数据恢复到源数据库或插入到指定的目标数据库,将每个数据文件的数据范围和写入数据成功或失败的标记存入Redis缓存。
以上取数据和写数据过程中难免有异常或正常的中断情况,中断后再次启动任务要求恢复或迁移的数据能正常地续接上。
读数据进程将一批读取成功的数据暂存在磁盘,将数据范围和成功标记存入Redis,继续下一批的读取工作;当读取失败或遇到其他异常时,则将数据范围和失败标记存入到Redis,并终止读取。待到下次启动任务时读数据进程检查该任务的失败标记和失败的数据范围,并继续读取。
写数据进程启动后会从Redis中检查到(读取)成功标记的数据信息,写数据进程利用这些信息到磁盘或者LevelDB中取数据,取到数据后插入到目标数据库。继续检查下一批(读取)成功的数据信息。当写数据进程检查到(读取)失败标记时自动终止,并且将写数据进程的失败标记和数据范围存入Redis,下次启动该任务时写数据进程会再去检查读数据进程在这个数据范围是否已经读取成功,如果检查到(读取)成功标记,则继续写数据。
图4是根据本发明实施例的数据恢复和迁移的装置的主要部分的示意图。
如图4所示,本发明实施例的数据恢复和迁移的装置40包括:
配置模块401,配置数据恢复和迁移任务,对与所述任务相关联的参数加以设置;
读数据模块402,根据所述参数,按照批次依次读取历史数据,为每批读取的历史数据单独生成一个数据文件并加以缓冲存储,并且将每个数据文件的数据范围和读数据标记存入Redis;以及
写数据模块403,根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则根据所述数据范围按照批次依次将缓冲存储的历史数据恢复到源数据库或迁移到目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
其中在所述读数据模块402中,当读取失败或遇到其他异常时,将相应的数据文件的数据范围和读数据标记存入Redis,并终止读取,待到下次启动任务时检查为失败的读数据标记,并根据相应的数据范围继续读取;以及在所述写数据模块403中,当写入失败或遇到其他异常时,将相应的数据文件的数据范围和写数据标记存入Redis,并终止写入,待到下次启动任务时检查为失败的写数据标记,并根据相应的数据范围继续写入。
所述读数据模块402还包括:如果是从云存储读取数据,则根据所述参数按照批次依次读取数据,然后将数据文件直接保存于服务端磁盘,或利用LevelDB高速写功能将数据文件写入LevelDB;如果是从历史库读取数据,则将JDBC连接到历史库的从库,根据所述参数按照批次依次读取数据,将数据组装成SQL脚本文件,暂时存入服务端磁盘,其中为每批读取的历史数据单独生成一个数据文件保存在服务端磁盘中,并且将每个数据文件的数据范围和读数据标记存入Redis。
所述写数据模块403还包括:根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则从服务端磁盘读取数据文件或从LevelDB读取数据流,对数据文件或数据流解压并解析出插入语句,创建待插入的数据集,按照批次依次将数据恢复到源数据库或将数据迁移到指定的目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种数据恢复和迁移的方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种数据恢复和迁移的方法。
下面参考图5,其示出了适用于来实现本发明实施例的电子设备的计算机系统500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有计算机系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括配置模块、读数据模块和写数据模块。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,部署信息管理模块还可以被描述为“任务配置模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:配置步骤,配置数据恢复和迁移任务,对与所述任务相关联的参数加以设置;读数据步骤,根据所述参数,按照批次依次读取历史数据,为每批读取的历史数据单独生成一个数据文件并加以缓冲存储,并且将每个数据文件的数据范围和读数据标记存入Redis;以及写数据步骤,根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则根据所述数据范围按照批次依次将缓冲存储的历史数据恢复到源数据库或迁移到目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (12)

1.一种数据恢复和迁移的方法,其特征在于,包括:
配置步骤,配置数据恢复和迁移任务,对与所述任务相关联的参数加以设置;
读数据步骤,根据所述参数,按照批次依次读取历史数据,为每批读取的历史数据单独生成一个数据文件并加以缓冲存储,并且将每个数据文件的数据范围和读数据标记存入Redis;以及
写数据步骤,根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则根据所述数据范围按照批次依次将缓冲存储的历史数据恢复到源数据库或迁移到目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis;
其中,在所述读数据步骤中,当读取失败或遇到其他异常时,将相应的数据文件的数据范围和读数据标记存入Redis,并终止读取,待到下次启动任务时检查为失败的读数据标记,并根据相应的数据范围继续读取。
2.根据权利要求1所述的方法,其特征在于,还包括:
在所述写数据步骤中,当写入失败或遇到其他异常时,将相应的数据文件的数据范围和写数据标记存入Redis,并终止写入,待到下次启动任务时检查为失败的写数据标记,并根据相应的数据范围继续写入。
3.根据权利要求1所述的方法,其特征在于,所述读数据步骤还包括:
如果是从云存储读取数据,则根据所述参数按照批次依次读取数据,然后将数据文件直接保存于服务端磁盘,或利用LevelDB高速写功能将数据文件写入LevelDB;如果是从历史库读取数据,则将JDBC连接到历史库的从库,根据所述参数按照批次依次读取数据,将数据组装成SQL脚本文件,暂时存入服务端磁盘,其中为每批读取的历史数据单独生成一个数据文件保存在服务端磁盘中,并且将每个数据文件的数据范围和读数据标记存入Redis。
4.根据权利要求1所述的方法,其特征在于,所述写数据步骤还包括:
根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则从服务端磁盘读取数据文件或从LevelDB读取数据流,对数据文件或数据流解压并解析出插入语句,创建待插入的数据集,按照批次依次将数据恢复到源数据库或将数据迁移到指定的目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
5.根据权利要求1至4的任一项所述的方法,其特征在于,
所述参数包括以下各项中的至少一项:数据读写的批处理的量、云存储数据文件链接或云存储上对应的键、历史库链接。
6.一种数据恢复和迁移的装置,其特征在于,包括:
配置模块,配置数据恢复和迁移任务,对与所述任务相关联的参数加以设置;
读数据模块,根据所述参数,按照批次依次读取历史数据,为每批读取的历史数据单独生成一个数据文件并加以缓冲存储,并且将每个数据文件的数据范围和读数据标记存入Redis;以及
写数据模块,根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则根据所述数据范围按照批次依次将缓冲存储的历史数据恢复到源数据库或迁移到目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis;
其中,在所述读数据模块中,当读取失败或遇到其他异常时,将相应的数据文件的数据范围和读数据标记存入Redis,并终止读取,待到下次启动任务时检查为失败的读数据标记,并根据相应的数据范围继续读取。
7.根据权利要求6所述的装置,其特征在于,还包括:
在所述写数据模块中,当写入失败或遇到其他异常时,将相应的数据文件的数据范围和写数据标记存入Redis,并终止写入,待到下次启动任务时检查为失败的写数据标记,并根据相应的数据范围继续写入。
8.根据权利要求6所述的装置,其特征在于,所述读数据模块还包括:
如果是从云存储读取数据,则根据所述参数按照批次依次读取数据,然后将数据文件直接保存于服务端磁盘,或利用LevelDB高速写功能将数据文件写入LevelDB;如果是从历史库读取数据,则将JDBC连接到历史库的从库,根据所述参数按照批次依次读取数据,将数据组装成SQL脚本文件,暂时存入服务端磁盘,其中为每批读取的历史数据单独生成一个数据文件保存在服务端磁盘中,并且将每个数据文件的数据范围和读数据标记存入Redis。
9.根据权利要求6所述的装置,其特征在于,所述写数据模块还包括:
根据所述参数,从Redis中获取每批要恢复的数据范围以及读数据标记,如果读数据标记为失败,则终止,否则从服务端磁盘读取数据文件或从LevelDB读取数据流,对数据文件或数据流解压并解析出插入语句,创建待插入的数据集,按照批次依次将数据恢复到源数据库或将数据迁移到指定的目标数据库,并且将每个数据文件的数据范围和写数据标记存入Redis。
10.根据权利要求6至9的任一项所述的装置,其特征在于,
所述参数包括以下各项中的至少一项:数据读写的批处理的量、云存储数据文件链接或云存储上对应的键、历史库链接。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一项所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一项所述的方法。
CN201710326159.6A 2017-05-10 2017-05-10 一种数据恢复和迁移的方法和装置 Active CN108874811B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710326159.6A CN108874811B (zh) 2017-05-10 2017-05-10 一种数据恢复和迁移的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710326159.6A CN108874811B (zh) 2017-05-10 2017-05-10 一种数据恢复和迁移的方法和装置

Publications (2)

Publication Number Publication Date
CN108874811A CN108874811A (zh) 2018-11-23
CN108874811B true CN108874811B (zh) 2021-01-26

Family

ID=64287635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710326159.6A Active CN108874811B (zh) 2017-05-10 2017-05-10 一种数据恢复和迁移的方法和装置

Country Status (1)

Country Link
CN (1) CN108874811B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115269581A (zh) * 2022-09-23 2022-11-01 广州粤芯半导体技术有限公司 炉管生产数据的处理方法及系统、存储介质及计算机设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886079A (zh) * 2014-03-26 2014-06-25 北京京东尚科信息技术有限公司 一种数据处理方法和系统
CN105260464A (zh) * 2015-10-16 2016-01-20 北京奇虎科技有限公司 数据存储结构的转换方法及装置
CN105677736A (zh) * 2015-12-29 2016-06-15 曙光信息产业(北京)有限公司 一种增加、删除服务器节点的方法及装置
CN106446037A (zh) * 2016-08-31 2017-02-22 南威软件股份有限公司 一种基于分布式锁实现Redis与MYSQL数据一致性的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2520361A (en) * 2013-11-19 2015-05-20 Ibm Method and system for a safe archiving of data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886079A (zh) * 2014-03-26 2014-06-25 北京京东尚科信息技术有限公司 一种数据处理方法和系统
CN105260464A (zh) * 2015-10-16 2016-01-20 北京奇虎科技有限公司 数据存储结构的转换方法及装置
CN105677736A (zh) * 2015-12-29 2016-06-15 曙光信息产业(北京)有限公司 一种增加、删除服务器节点的方法及装置
CN106446037A (zh) * 2016-08-31 2017-02-22 南威软件股份有限公司 一种基于分布式锁实现Redis与MYSQL数据一致性的方法

Also Published As

Publication number Publication date
CN108874811A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
US9411576B2 (en) Software version management for executing replacement actions
US8898345B2 (en) Out-of-band management of third party adapter configuration settings in a computing system
US20170075764A1 (en) System and Method for Time Parameter Based Database Restoration
CN110659210A (zh) 一种信息获取方法、装置、电子设备及存储介质
US20220326927A1 (en) Abort installation of firmware bundles
CN108733671B (zh) 数据历史归档的方法和装置
US10365910B2 (en) Systems and methods for uninstalling or upgrading software if package cache is removed or corrupted
CN110865829B (zh) 数据库升级方法、系统、设备及存储介质
CN114064113A (zh) 主机版本控制方法及装置
CN108874811B (zh) 一种数据恢复和迁移的方法和装置
CN110716804A (zh) 无用资源的自动删除方法、装置、存储介质及电子设备
CN107526838B (zh) 数据库集群扩容的方法和装置
CN113377342B (zh) 一种项目构建方法、装置、电子设备及存储介质
CN111913938A (zh) 数据迁移方法、系统、装置、电子设备和介质
US20190317747A1 (en) Binary restoration in a container orchestration system
US9983952B2 (en) Recovery of local resource
CN112988583A (zh) 数据库语法兼容性测试的方法和装置
US9298449B2 (en) Composite program history
CN112559006A (zh) 企业客户端自动升级方法、系统、设备及存储介质
CN108196979B (zh) 数据备份方法和装置
CN105718262A (zh) 一种lnmp架构的部署方法
US10083217B2 (en) Method and system for upgrading a set of replicated state machine processes
US11010151B2 (en) Software patch ordering
US11656950B2 (en) Method, electronic device and computer program product for storage management
CN113836114B (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