CN111198868B - 一种智能分库实时数据迁移方法和装置 - Google Patents

一种智能分库实时数据迁移方法和装置 Download PDF

Info

Publication number
CN111198868B
CN111198868B CN201911271366.1A CN201911271366A CN111198868B CN 111198868 B CN111198868 B CN 111198868B CN 201911271366 A CN201911271366 A CN 201911271366A CN 111198868 B CN111198868 B CN 111198868B
Authority
CN
China
Prior art keywords
migration
data
migrated
migration task
task
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
CN201911271366.1A
Other languages
English (en)
Other versions
CN111198868A (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 Qilu Information Technology Co Ltd
Original Assignee
Beijing Qilu 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 Qilu Information Technology Co Ltd filed Critical Beijing Qilu Information Technology Co Ltd
Priority to CN201911271366.1A priority Critical patent/CN111198868B/zh
Publication of CN111198868A publication Critical patent/CN111198868A/zh
Application granted granted Critical
Publication of CN111198868B publication Critical patent/CN111198868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/214Database migration support
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种智能分库实时数据迁移方法、装置、电子设备和计算机可读介质。该方法包括:基于数据迁移指令生成多个迁移任务,各迁移任务是指将源数据库中的部分待迁移数据迁移至目标数据库,对于各迁移任务,首先将所述部分待迁移数据复制到所述目标数据库,然后校验复制到目标数据库中的数据与源数据库中的所述部分待迁移数据的一致性,若一致,则删除源数据库中的所述部分待迁移数据,该迁移任务完成,若不一致,则删除复制到目标数据库中的数据并重新执行该迁移任务,其中,在所述复制数据过程中,所述源数据库的所述待迁移数据的用户使用权限处于开放状态,在所述校验过程中,所述源数据库和所述目标数据库的用户使用权限处于关闭状态。

Description

一种智能分库实时数据迁移方法和装置
技术领域
本发明涉及计算机信息处理领域,具体而言,涉及一种智能分库实时数据迁移方法、装置、电子设备及计算机可读存储介质。
背景技术
随着计算机技术的快速发展,各种各样的数据库类型以及数据库架构被越来越多地应用于工作和日常生活等诸多领域。为了提高数据交换效率,或者保证数据实时性等情况,通常需要在多个数据库之间进行数据同步或者数据迁移操作。
目前,在数据同步或者迁移的过程中,通常会锁死源数据库和目标数据库,以保证同步或者迁移的准确性。
在实现发明构思的过程中,发明人发现现有技术中至少存在如下问题,即,现有技术在数据同步或迁移的过程中限制了用户的使用权限,降低了数据库的可用性,导致用户体验不佳。
发明内容
本发明旨在解决现有技术在数据同步或迁移的过程中限制用户的使用权限,降低了数据库的可用性,导致用户体验不佳的问题。
为了解决上述技术问题,本发明第一方面提出一种智能分库实时数据迁移方法,其特征在于,包括:基于数据迁移指令生成多个迁移任务,各迁移任务是指将源数据库中的部分待迁移数据迁移至目标数据库,对于各迁移任务,首先将所述部分待迁移数据复制到所述目标数据库,然后校验复制到目标数据库中的数据与源数据库中的所述部分待迁移数据的一致性,若一致,则删除源数据库中的所述部分待迁移数据,该迁移任务完成,若不一致,则删除复制到目标数据库中的数据并重新执行该迁移任务,其中,在所述复制数据过程中,所述源数据库的所述待迁移数据的用户使用权限处于开放状态,在所述校验过程中,所述源数据库和所述目标数据库的用户使用权限处于关闭状态。
根据本发明的一种优选实施方式,所述基于数据迁移指令生成多个迁移任务,包括:基于所述源数据库中的待迁移数据的历史操作记录,将所述待迁移数据分成多个部分待迁移数据,基于所述多个部分待迁移数据生成多个迁移任务。
根据本发明的一种优选实施方式,所述方法还包括:基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间或者各迁移任务之间的执行顺序,基于所述各迁移任务的执行时间或者各迁移任务之间的执行顺序执行所述多个迁移任务。
根据本发明的一种优选实施方式,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间,包括:基于各迁移任务分别对应的部分待迁移数据的历史操作记录,确定各迁移任务的可执行时间段,其中,每个迁移任务对应至少一个可执行时间段。
根据本发明的一种优选实施方式,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务之间的执行顺序,包括:基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级。
根据本发明的一种优选实施方式,所述基于所述各迁移任务的执行时间或者各迁移任务之间的执行顺序执行所述多个迁移任务,包括:在各时间段内,基于该时间段对应的可执行的迁移任务的优先级依次执行各可执行的迁移任务。
根据本发明的一种优选实施方式,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级,包括:基于各迁移任务对应的可执行时间段的数量确定各迁移任务在其可执行时间段内的优先级,以及/或者基于各迁移任务对应的部分待迁移数据的数据量确定各迁移任务在其可执行时间段内的优先级,以及/或者基于各迁移任务对应的执行状况确定各迁移任务在其可执行时间段内的优先级。
为了解决上述技术问题,本发明第二方面提出一种智能分库实时数据迁移装置。该装置包括任务生成模块和数据迁移模块。其中,任务生成模块用于基于数据迁移指令生成多个迁移任务,各迁移任务是指将源数据库中的部分待迁移数据迁移至目标数据库,数据迁移模块用于对于各迁移任务,首先将所述部分待迁移数据复制到所述目标数据库,然后校验复制到目标数据库中的数据与源数据库中的所述部分待迁移数据的一致性,若一致,则删除源数据库中的所述部分待迁移数据,该迁移任务完成,若不一致,则删除复制到目标数据库中的数据并重新执行该迁移任务。其中,在所述复制数据过程中,所述源数据库的所述待迁移数据的用户使用权限处于开放状态,在所述校验过程中,所述源数据库和所述目标数据库的用户使用权限处于关闭状态。
根据本发明的一种优选实施方式,所述基于数据迁移指令生成多个迁移任务,包括:基于所述源数据库中的待迁移数据的历史操作记录,将所述待迁移数据分成多个部分待迁移数据,基于所述多个部分待迁移数据生成多个迁移任务。
根据本发明的一种优选实施方式,所述装置还包括:第一确定模块,用于基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间或者各迁移任务之间的执行顺序,任务执行模块,用于基于所述各迁移任务的执行时间或者各迁移任务之间的执行顺序执行所述多个迁移任务。
根据本发明的一种优选实施方式,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间,包括:基于各迁移任务分别对应的部分待迁移数据的历史操作记录,确定各迁移任务的可执行时间段,其中,每个迁移任务对应至少一个可执行时间段。
根据本发明的一种优选实施方式,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务之间的执行顺序,包括:基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级。
根据本发明的一种优选实施方式,所述基于所述各迁移任务的执行时间或者各迁移任务之间的执行顺序执行所述多个迁移任务,包括:在各时间段内,基于该时间段对应的可执行的迁移任务的优先级依次执行各可执行的迁移任务。
根据本发明的一种优选实施方式,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级,包括:基于各迁移任务对应的可执行时间段的数量确定各迁移任务在其可执行时间段内的优先级,以及/或者基于各迁移任务对应的部分待迁移数据的数据量确定各迁移任务在其可执行时间段内的优先级,以及/或者基于各迁移任务对应的执行状况确定各迁移任务在其可执行时间段内的优先级。
为了解决上述技术问题,本发明第三方面提出一种电子设备,其包括处理器以及存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器执行上述的方法。
为了解决上述技术问题,本发明第四方面提出一种计算机可读存储介质,该所述计算机可读存储介质存储一个或多个程序,当所述一个或多个程序被处理器执行时,实现上述的方法。
由于本发明在复制数据的过程中开放源数据库的用户使用权限,仅在校验过程中关闭源数据库和目标数据库的用户使用权限,大大提高了数据库的可用性,减小了对用户的影响,提高了用户体验感。
附图说明
为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明的示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
图1示意性示出了根据本发明实施例的智能分库实时数据迁移方法和装置的应用场景。
图2示意性示出了根据本发明实施例的智能分库实时数据迁移方法的流程图。
图3示意性示出了根据本发明实施例的智能分库实时数据迁移装置的框图。
图4示意性示出了根据本发明实施例的电子设备的结构框图。
图5示意性示出了根据本发明实施例的计算机可读介质的示意图。
具体实施方式
现在将参考附图来更加全面地描述本发明的示例性实施例,虽然各示例性实施例能够以多种具体的方式实施,但不应理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例是为了使本发明的内容更加完整,更加便于将发明构思全面地传达给本领域的技术人员。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的结构、性能、效果或者其他特征可以以任何合适的方式结合到一个或更多其他的实施例中。
在对于具体实施例的介绍过程中,对结构、性能、效果或者其他特征的细节描述是为了使本领域的技术人员对实施例能够充分理解。但是,并不排除本领域技术人员可以在特定情况下,以不含有上述结构、性能、效果或者其他特征的技术方案来实施本发明。
附图中的流程图仅是一种示例性的流程演示,不代表本发明的方案中必须包括流程图中的所有的内容、操作和步骤,也不代表必须按照图中所显示的的顺序执行。例如,流程图中有的操作/步骤可以分解,有的操作/步骤可以合并或部分合并,等等,在不脱离本发明的发明主旨的情况下,流程图中显示的执行顺序可以根据实际情况改变。
附图中的框图一般表示的是功能实体,并不一定必然与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
各附图中相同的附图标记表示相同或类似的元件、组件或部分,因而下文中可能省略了对相同或类似的元件、组件或部分的重复描述。还应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但是这些器件、元件、组件或部分不应受这些定语的限制。也就是说,这些定语仅是用来将一者与另一者区分。例如,第一器件亦可称为第二器件,但不偏离本发明实质的技术方案。此外,术语“和/或”、“及/或”是指包括所列出项目中的任一个或多个的所有组合。
本发明的实施例提供了一种智能分库实时数据迁移方法,包括:基于数据迁移指令生成多个迁移任务,各迁移任务是指将源数据库中的部分待迁移数据迁移至目标数据库,对于各迁移任务,首先将部分待迁移数据复制到目标数据库,然后校验复制到目标数据库中的数据与源数据库中的部分待迁移数据的一致性,若一致,则删除源数据库中的部分待迁移数据,该迁移任务完成,若不一致,则删除复制到目标数据库中的数据并重新执行该迁移任务,其中,在复制数据过程中,源数据库的待迁移数据的用户使用权限处于开放状态,在校验过程中,源数据库和目标数据库的用户使用权限处于关闭状态。
图1示意性示出了根据本发明实施例的智能分库实时数据迁移方法和装置的应用场景。
需要注意的是,图1所示仅为可以应用本公开实施例的应用场景的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该应用场景包括源数据库110、目标数据库120和待迁移数据130。
根据本发明实施例,源数据库110和目标数据库120例如可以是具有数据存储和读写功能的各种数据库,包括但不限于MySQL、SQL Server、或者Redis等等。
待迁移数据130例如可以存储在源数据库110中,待迁移数据130例如可以是源数据库110中的部分数据。
在现有技术中,如果要将待迁移数据130从源数据库110迁移到目标数据库120时,需要锁死源数据库110和目标数据库120,限制用户使用源数据库110和目标数据库120,以保证数据迁移的准确性。
有鉴于此,本发明实施例提供了一种智能分库实时数据迁移方法和装置。本发明可以将待迁移数据分成多个迁移任务进行迁移,并在数据复制的过程中保证源数据库的用户使用权限处于开放状态,仅在校验过程中关闭源数据库和目标数据库的用户使用权限,大大提高了数据库的可用性,减小了对用户的影响,提高了用户体验感。
图2示意性示出了根据本发明实施例的智能分库实时数据迁移方法的流程图。
如图2所示,该方法包括操作S201~S202。
在操作S201,基于数据迁移指令生成多个迁移任务,各迁移任务是指将源数据库中的部分待迁移数据迁移至目标数据库。
根据本发明实施例,可以基于用户的数据迁移指令确定源数据库、目标数据库以及需要迁移的待迁移数据。在本发明实施例中,如果待迁移数据的数据量较大(例如,大于预设阈值),则可以将待迁移数据分成多个部分待迁移数据,并生成多个迁移任务,各迁移任务指将源数据库中的部分待迁移数据迁移至目标数据库。
在本发明实施例中,基于数据迁移指令生成多个迁移任务,可以包括:基于源数据库中的待迁移数据的历史操作记录,将待迁移数据分成多个部分待迁移数据,并基于多个部分待迁移数据生成多个迁移任务。
例如,可以根据源数据库中的待迁移数据的历史操作时间将待迁移数据分成多个部分待迁移数据,或者,也可以根据源数据库中的待迁移数据的历史操作频率将待迁移数据分成多个部分待迁移数据,或者,还可以根据源数据库中的待迁移数据的数据类型将待迁移数据分成多个部分待迁移数据。
可以理解,本发明实施例对待迁移数据的分组方法不进行限定,本领域技术人员可以根据实际情况将待迁移数据分为多个部分待迁移数据。本发明实施例将待迁移数据分为多个部分待迁移数据,并分别创建迁移任务,可以提高数据迁移的成功率。
在操作S202,对于各迁移任务,首先将部分待迁移数据复制到目标数据库,然后校验复制到目标数据库中的数据与源数据库中的部分待迁移数据的一致性,若一致,则删除源数据库中的部分待迁移数据,该迁移任务完成,若不一致,则删除复制到目标数据库中的数据并重新执行该迁移任务,其中,在复制数据过程中,源数据库的待迁移数据的用户使用权限处于开放状态,在校验过程中,源数据库和目标数据库的用户使用权限处于关闭状态。
根据本发明实施例,对于各迁移任务,首先复制源数据库中的部分待迁移数据,并将复制的数据写入到目标数据库中,在复制和写入数据的过程中,源数据库的该部分待迁移数据的用户使用权限处于开放状态。在数据写入完毕后,校验写入到目标数据库中的数据与源数据库中的部分待迁移数据的一致性,在该校验过程中,源数据库和目标数据库的用户使用权限处于关闭状态。若校验结果一致,则删除源数据库中的部分待迁移数据,该迁移任务完成,若不一致,则删除复制到目标数据库中的数据并重新执行该迁移任务。
在本发明实施例中,为提高各迁移任务的成功率,可以基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间或者各迁移任务之间的执行顺序,并基于各迁移任务的执行时间或者各迁移任务之间的执行顺序执行各迁移任务。
例如,可以基于各迁移任务分别对应的部分待迁移数据的历史操作记录,确定各迁移任务的可执行时间段,其中,每个迁移任务对应至少一个可执行时间段。
例如,可以根据部分待迁移数据的历史操作时间,确定各迁移任务的可执行时间段。
例如,可以以天为单位,将一天分为4个时间段,某部分待迁移数据在0点~6点之间的使用概率为5%,在6点~12点之间的使用概率为40%,在12点~18点之间的使用概率为30%,在18点~24点之间的使用概率为25%,则该部分待迁移数据对应的可执行时间段可以为0~6点。
可以理解,本发明实施例可以利用各种办法确定各迁移任务的可执行时间段,例如可以通过使用概率,用户访问量,使用频率等指标确定各迁移任务的可执行时间段,本发明对此不作限定。
在本发明实施例中,还可以基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级。并在各时间段内,基于该时间段对应的可执行的迁移任务的优先级依次执行各可执行的迁移任务。
例如,某时间段对应5个可执行的迁移任务,可以先确定该些迁移任务的优先级,然后在该时间段内,基于优先级依次执行迁移任务。
在本发明一实施例中,可以基于各迁移任务对应的可执行时间段的数量确定各迁移任务在其可执行时间段内的优先级。例如,对应更多可执行时间段的迁移任务的优先级更低。
例如,以天为单位,将一天分为12个时间段,迁移任务A对应0点~2点、2点~4点、4点~6点、20点~22点和22点~24点五个可执行时间段,迁移任务B对应0~2点一个可执行时间段,则在0点~2点时间段内,迁移任务B的优先级要高于迁移任务A。
在本发明另一实施例中,还可以基于各迁移任务对应的部分待迁移数据的数据量确定各迁移任务在其可执行时间段内的优先级。例如,数据量更多的迁移任务的优先级更低。
例如,迁移任务C对应的部分待迁移数据的数据量为1M,迁移任务D对应的部分待迁移数据的数据量为5M,则迁移任务C的优先级要高于迁移任务D。
在本发明又一实施例中,还可以基于各迁移任务对应的执行状况确定各迁移任务在其可执行时间段内的优先级。例如,迁移任务已开始但未完成的迁移任务具有更高的优先级,或者失败的迁移任务具有更高的优先级等。
本发明实施例可以将待迁移数据分成多个迁移任务进行迁移,并基于待迁移数据的特点确定各迁移数据的执行时间和优先级,提高了数据迁移的成功率。
本发明实施例在数据复制的过程中保证源数据库的用户使用权限处于开放状态,仅在校验过程中关闭源数据库和目标数据库的用户使用权限,大大提高了数据库的可用性,减小了对用户的影响,提高了用户体验感。
本领域技术人员可以理解,实现上述实施例的全部或部分步骤被实现为由数据处理设备(包括计算机)执行的程序,即计算机程序。在该计算机程序被执行时,可以实现本发明提供的上述方法。而且,所述的计算机程序可以存储于计算机可读存储介质中,该存储介质可以是磁盘、光盘、ROM、RAM等可读存储介质,也可以是多个存储介质组成的存储阵列,例如磁盘或磁,存储阵列。所述的存储介质不限于集中式存储,其也可以是分布式存储,例如基于云计算的云存储。
下面描述本发明的装置实施例,该装置可以用于执行本发明的方法实施例。对于本发明装置实施例中描述的细节,应视为对于上述方法实施例的补充;对于在本发明装置实施例中未披露的细节,可以参照上述方法实施例来实现。
图3示意性示出了根据本发明实施例的智能分库实时数据迁移装置的框图。
如图3所示,该装置300包括任务生成模块310和数据迁移模块320。
任务生成模块310用于基于数据迁移指令生成多个迁移任务,各迁移任务是指将源数据库中的部分待迁移数据迁移至目标数据库。根据本公开实施例,任务生成模块310例如可以执行上文参考图2描述的操作S201,在此不再赘述。
数据迁移模块320用于对于各迁移任务,首先将部分待迁移数据复制到目标数据库,然后校验复制到目标数据库中的数据与源数据库中的部分待迁移数据的一致性,若一致,则删除源数据库中的部分待迁移数据,该迁移任务完成,若不一致,则删除复制到目标数据库中的数据并重新执行该迁移任务,其中,在复制数据过程中,源数据库的待迁移数据的用户使用权限处于开放状态,在校验过程中,源数据库和目标数据库的用户使用权限处于关闭状态。根据本公开实施例,数据迁移模块320例如可以执行上文参考图2描述的操作S202,在此不再赘述。
根据本发明实施例,基于数据迁移指令生成多个迁移任务,包括:基于源数据库中的待迁移数据的历史操作记录,将待迁移数据分成多个部分待迁移数据,基于多个部分待迁移数据生成多个迁移任务。
根据本发明实施例,装置300还包括第一确定模块和任务执行模块(图中未示)。第一确定模块用于基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间或者各迁移任务之间的执行顺序。任务执行模块用于基于各迁移任务的执行时间或者各迁移任务之间的执行顺序执行多个迁移任务。
根据本发明实施例,基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间,包括:基于各迁移任务分别对应的部分待迁移数据的历史操作记录,确定各迁移任务的可执行时间段,其中,每个迁移任务对应至少一个可执行时间段。
根据本发明实施例,基于各迁移任务分别对应的部分待迁移数据确定各迁移任务之间的执行顺序,包括:基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级。
根据本发明实施例,基于各迁移任务的执行时间或者各迁移任务之间的执行顺序执行多个迁移任务,包括:在各时间段内,基于该时间段对应的可执行的迁移任务的优先级依次执行各可执行的迁移任务。
根据本发明实施例,基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级,包括:基于各迁移任务对应的可执行时间段的数量确定各迁移任务在其可执行时间段内的优先级,以及/或者基于各迁移任务对应的部分待迁移数据的数据量确定各迁移任务在其可执行时间段内的优先级,以及/或者基于各迁移任务对应的执行状况确定各迁移任务在其可执行时间段内的优先级。
根据本发明实施例,该装置300例如可以执行上文参考图2描述的方法,在此不再赘述。
根据本发明的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,任务生成模块310和数据迁移模块320中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,任务生成模块310和数据迁移模块320中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,任务生成模块310和数据迁移模块320中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的实体形式的实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图4示意性示出了根据本发明实施例的电子设备400的结构框图。图4显示的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,该示例性实施例的电子设备400以通用数据处理设备的形式表现。电子设备400的组件可以包括但不限于:至少一个处理单元410、至少一个存储单元420、连接不同系统组件(包括存储单元420和处理单元410)的总线430、显示单元440等。
其中,所述存储单元420存储有计算机可读程序,其可以是源程序或都只读程序的代码。所述程序可以被处理单元410执行,使得所述处理单元410执行本发明各种实施方式的步骤。例如,所述处理单元410可以执行如图2所示的步骤。
所述存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)4201和/或高速缓存存储单元4202,还可以进一步包括只读存储单元(ROM)4203。所述存储单元420还可以包括具有一组(至少一个)程序模块4205的程序/实用工具4204,这样的程序模块4205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备400也可以与一个或多个外部设备500(例如键盘、显示器、网络设备、蓝牙设备等)通信,使得用户能经由这些外部设备500与该电子设备400交互,和/或使得该电子设备400能与一个或多个其它数据处理设备(例如路由器、调制解调器等等)进行通信。这种通信可以通过输入/输出(I/O)接口450进行,还可以通过网络适配器460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)进行。网络适配器460可以通过总线430与电子设备400的其它模块通信。应当明白,尽管图中未示出,电子设备400中可使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图5示意性示出了根据本发明实施例的计算机可读介质的示意图。如图5所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。当所述计算机程序被一个或多个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法,即:基于数据迁移指令生成多个迁移任务,各迁移任务是指将源数据库中的部分待迁移数据迁移至目标数据库,对于各迁移任务,首先将部分待迁移数据复制到目标数据库,然后校验复制到目标数据库中的数据与源数据库中的部分待迁移数据的一致性,若一致,则删除源数据库中的部分待迁移数据,该迁移任务完成,若不一致,则删除复制到目标数据库中的数据并重新执行该迁移任务,其中,在复制数据过程中,源数据库的待迁移数据的用户使用权限处于开放状态,在校验过程中,源数据库和目标数据库的用户使用权限处于关闭状态。
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台数据处理设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明可以执行计算机程序的方法、装置、电子设备或计算机可读介质来实现。可以在实践中使用微处理器或者数字信号处理器(DSP)等通用数据处理设备来实现本发明的一些或者全部功能。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (16)

1.一种智能分库实时数据迁移方法,其特征在于,包括:
基于数据迁移指令生成多个迁移任务,各迁移任务是指将源数据库中的部分待迁移数据迁移至目标数据库;通过使用概率,用户访问量,使用频率确定各迁移任务的可执行时间段;基于各迁移任务对应的可执行时间段的数量确定各迁移任务在其可执行时间段内的优先级;对应更多可执行时间段的迁移任务的优先级更低;
对于各迁移任务,首先将所述部分待迁移数据复制并写入到所述目标数据库,然后校验写入到目标数据库中的数据与源数据库中的所述部分待迁移数据的一致性,若一致,则删除源数据库中的所述部分待迁移数据,该迁移任务完成,若不一致,则删除写入到目标数据库中的数据并重新执行该迁移任务;
其中,在所述复制和写入数据过程中,所述源数据库的所述待迁移数据的用户使用权限处于开放状态,仅在所述校验过程中,所述源数据库和所述目标数据库的用户使用权限处于关闭状态。
2.根据权利要求1所述的方法,其特征在于,所述基于数据迁移指令生成多个迁移任务,包括:
基于所述源数据库中的待迁移数据的历史操作记录,将所述待迁移数据分成多个部分待迁移数据;
基于所述多个部分待迁移数据生成多个迁移任务。
3.根据权利要求2所述的方法,其特征在于,还包括:
基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间或者各迁移任务之间的执行顺序;
基于所述各迁移任务的执行时间或者各迁移任务之间的执行顺序执行所述多个迁移任务。
4.根据权利要求3所述的方法,其特征在于,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间,包括:
基于各迁移任务分别对应的部分待迁移数据的历史操作记录,确定各迁移任务的可执行时间段,其中,每个迁移任务对应至少一个可执行时间段。
5.根据权利要求4所述的方法,其特征在于,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务之间的执行顺序,包括:
基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级。
6.根据权利要求5所述的方法,其特征在于,所述基于所述各迁移任务的执行时间或者各迁移任务之间的执行顺序执行所述多个迁移任务,包括:
在各时间段内,基于该时间段对应的可执行的迁移任务的优先级依次执行各可执行的迁移任务。
7.根据权利要求5所述的方法,其特征在于,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级,包括:
基于各迁移任务对应的可执行时间段的数量确定各迁移任务在其可执行时间段内的优先级;以及/或者
基于各迁移任务对应的部分待迁移数据的数据量确定各迁移任务在其可执行时间段内的优先级;以及/或者
基于各迁移任务对应的执行状况确定各迁移任务在其可执行时间段内的优先级。
8.一种智能分库实时数据迁移装置,其特征在于,包括:
任务生成模块,用于基于数据迁移指令生成多个迁移任务,各迁移任务是指将源数据库中的部分待迁移数据迁移至目标数据库;通过使用概率,用户访问量,使用频率确定各迁移任务的可执行时间段;基于各迁移任务对应的可执行时间段的数量确定各迁移任务在其可执行时间段内的优先级;对应更多可执行时间段的迁移任务的优先级更低;
数据迁移模块,用于对于各迁移任务,首先将所述部分待迁移数据复制并写入到所述目标数据库,然后校验写入到目标数据库中的数据与源数据库中的所述部分待迁移数据的一致性,若一致,则删除源数据库中的所述部分待迁移数据,该迁移任务完成,若不一致,则删除写入到目标数据库中的数据并重新执行该迁移任务;
其中,在所述复制和写入数据过程中,所述源数据库的所述待迁移数据的用户使用权限处于开放状态,仅在所述校验过程中,所述源数据库和所述目标数据库的用户使用权限处于关闭状态。
9.根据权利要求8所述的装置,其特征在于,所述基于数据迁移指令生成多个迁移任务,包括:
基于所述源数据库中的待迁移数据的历史操作记录,将所述待迁移数据分成多个部分待迁移数据;
基于所述多个部分待迁移数据生成多个迁移任务。
10.根据权利要求9所述的装置,其特征在于,还包括:
第一确定模块,用于基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间或者各迁移任务之间的执行顺序;
任务执行模块,用于基于所述各迁移任务的执行时间或者各迁移任务之间的执行顺序执行所述多个迁移任务。
11.根据权利要求10所述的装置,其特征在于,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务的执行时间,包括:
基于各迁移任务分别对应的部分待迁移数据的历史操作记录,确定各迁移任务的可执行时间段,其中,每个迁移任务对应至少一个可执行时间段。
12.根据权利要求11所述的装置,其特征在于,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务之间的执行顺序,包括:
基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级。
13.根据权利要求12所述的装置,其特征在于,所述基于所述各迁移任务的执行时间或者各迁移任务之间的执行顺序执行所述多个迁移任务,包括:
在各时间段内,基于该时间段对应的可执行的迁移任务的优先级依次执行各可执行的迁移任务。
14.根据权利要求12所述的装置,其特征在于,所述基于各迁移任务分别对应的部分待迁移数据确定各迁移任务在其可执行时间段内的优先级,包括:
基于各迁移任务对应的可执行时间段的数量确定各迁移任务在其可执行时间段内的优先级;以及/或者
基于各迁移任务对应的部分待迁移数据的数据量确定各迁移任务在其可执行时间段内的优先级;以及/或者
基于各迁移任务对应的执行状况确定各迁移任务在其可执行时间段内的优先级。
15.一种电子设备,其中,该电子设备包括:
处理器;以及,
存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现权利要求1-7中任一项所述的方法。
CN201911271366.1A 2019-12-12 2019-12-12 一种智能分库实时数据迁移方法和装置 Active CN111198868B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911271366.1A CN111198868B (zh) 2019-12-12 2019-12-12 一种智能分库实时数据迁移方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911271366.1A CN111198868B (zh) 2019-12-12 2019-12-12 一种智能分库实时数据迁移方法和装置

Publications (2)

Publication Number Publication Date
CN111198868A CN111198868A (zh) 2020-05-26
CN111198868B true CN111198868B (zh) 2023-09-05

Family

ID=70746362

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911271366.1A Active CN111198868B (zh) 2019-12-12 2019-12-12 一种智能分库实时数据迁移方法和装置

Country Status (1)

Country Link
CN (1) CN111198868B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538717B (zh) * 2020-04-17 2023-05-16 抖音视界有限公司 数据处理的方法、装置、电子设备及计算机可读介质
CN111767270A (zh) * 2020-06-28 2020-10-13 平安普惠企业管理有限公司 数据迁移方法、装置、服务器及存储介质
CN112434013A (zh) * 2020-11-30 2021-03-02 中国建设银行股份有限公司 数据表迁移方法、装置、电子设备及存储介质
CN113032385B (zh) * 2021-05-31 2021-09-07 北京江融信科技有限公司 一种易扩展可配置化的数据备份系统及方法
CN115827081A (zh) * 2021-09-16 2023-03-21 中兴通讯股份有限公司 数据操作方法、装置、服务器以及存储介质
CN114546995B (zh) * 2022-04-25 2022-07-15 孔智科技(徐州)有限公司 一种基于图数据库的动态数据迁移方法和系统
CN117555883B (zh) * 2024-01-11 2024-04-05 梅州客商银行股份有限公司 一种银行系统数据分库的方法、装置、存储器和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252481A (zh) * 2013-06-27 2014-12-31 阿里巴巴集团控股有限公司 主从数据库一致性的动态校验方法和装置
CN106953893A (zh) * 2017-02-15 2017-07-14 北京百度网讯科技有限公司 云存储系统间的数据迁移
CN106970921A (zh) * 2016-01-14 2017-07-21 阿里巴巴集团控股有限公司 一种数据迁移方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9633055B2 (en) * 2014-05-15 2017-04-25 Microsoft Technology Licensing, Llc Database migration

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104252481A (zh) * 2013-06-27 2014-12-31 阿里巴巴集团控股有限公司 主从数据库一致性的动态校验方法和装置
CN106970921A (zh) * 2016-01-14 2017-07-21 阿里巴巴集团控股有限公司 一种数据迁移方法及装置
CN106953893A (zh) * 2017-02-15 2017-07-14 北京百度网讯科技有限公司 云存储系统间的数据迁移

Also Published As

Publication number Publication date
CN111198868A (zh) 2020-05-26

Similar Documents

Publication Publication Date Title
CN111198868B (zh) 一种智能分库实时数据迁移方法和装置
US8600947B1 (en) Systems and methods for providing backup interfaces
US10366112B2 (en) Compiling extract, transform, and load job test data cases
US11556496B2 (en) Outputting map-reduce jobs to an archive file
US10656934B2 (en) Efficient software testing
US20130167112A1 (en) Cross-platform virtual machine and method
US11321318B2 (en) Dynamic access paths
CN111782207A (zh) 任务流代码生成方法、装置、设备及存储介质
US9576085B2 (en) Selective importance sampling
US10782940B2 (en) Code library version management
CN110765069A (zh) 一种数据迁移方法、装置及系统
US20210406788A1 (en) Automatic risk assessment
US10657211B2 (en) Circuit generation based on zero wire load assertions
CN112114811A (zh) 一种编译方法、装置和设备
US10282243B2 (en) Performance enhancement for platform data dump collection
US11620132B2 (en) Reusing an operand received from a first-in-first-out (FIFO) buffer according to an operand specifier value specified in a predefined field of an instruction
US11243764B1 (en) Code deployment
US11734075B2 (en) Reducing data format conversion of an accelerator
US20230418961A1 (en) Fine granularity read access to generational safeguarded copy data
US11789845B2 (en) Software object identification using record generating code insertion
US20230385056A1 (en) Removing inactive code to facilitate code generation
US20230418960A1 (en) Generational access to safeguarded copy source volumes
US20230409716A1 (en) Shared library customization
US20220383183A1 (en) Machine learning pipeline optimization
US20210157832A1 (en) Differential processing mechanism for spark-based graph computing background

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