CN112015716A - 数据库数据迁移方法、装置、介质和电子设备 - Google Patents

数据库数据迁移方法、装置、介质和电子设备 Download PDF

Info

Publication number
CN112015716A
CN112015716A CN202010774424.9A CN202010774424A CN112015716A CN 112015716 A CN112015716 A CN 112015716A CN 202010774424 A CN202010774424 A CN 202010774424A CN 112015716 A CN112015716 A CN 112015716A
Authority
CN
China
Prior art keywords
data
database
threads
determining
thread
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
CN202010774424.9A
Other languages
English (en)
Other versions
CN112015716B (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 Kingbase Information Technologies Co Ltd
Original Assignee
Beijing Kingbase Information 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 Beijing Kingbase Information Technologies Co Ltd filed Critical Beijing Kingbase Information Technologies Co Ltd
Priority to CN202010774424.9A priority Critical patent/CN112015716B/zh
Publication of CN112015716A publication Critical patent/CN112015716A/zh
Application granted granted Critical
Publication of CN112015716B publication Critical patent/CN112015716B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/214Database migration support
    • 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

Landscapes

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

Abstract

本公开涉及数据库技术领域,具体涉及一种数据库数据迁移方法、数据库数据迁移装置以及计算机可读存储介质和电子设备,其中所述方法包括:确定源数据库中每张表的第一数据量;确定线程单次读取的第二数据量;所述第二数据量与计算机资源相关;基于所述第二数据量以及所述每张表的第一数据量,确定所述每张表的数据迁移完所需的线程数;控制启动指定数量的线程,基于所述每张表对应的线程数调度所述指定数量的线程以读取所述每张表中的数据并写入目标数据库。本公开的实施方案可以提高数据库数据迁移效率。

Description

数据库数据迁移方法、装置、介质和电子设备
技术领域
本公开实施例涉及数据库技术领域,尤其涉及一种数据库数据迁 移方法、数据库数据迁移装置,以及实现所述数据库数据迁移方法的 计算机可读存储介质和电子设备。
背景技术
数据库(Database)通常按照数据结构来组织,用于存储和管理数据, 如关系型数据库管理系统Oracle、支持对可扩展标记语言XML格式文 档进行存储和查询等操作的XML数据库等等。
随着信息技术的发展,数据库往往会涉及数据的迁移,例如将数 据从一个数据库迁移到另一数据库中。目前相关技术中,数据迁移包 括如下的技术手段:通过数据迁移工具进行迁移,这种数据迁移方法 是迁移工具通过查询源数据库数据并将数据保存在内存或文件中,然 后通过命令复制的方式将内存或文件中的数据插入到目标数据库中。
但是,这种方式存在一些问题,通常这种方式中一个线程读取一 张表,在数据库中每张表的数据量不确定的情况下,多线程分配不合 理,无法较为合理平衡地利用计算机资源等,导致对于存在大数据量、 表约束较多的数据库,数据迁移效率依然偏低。另外,在读取源数据 库与写入目标数据库时,迁移工具中存在转码的情况,很难甚至无法 保证迁移数据的正确性。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公 开实施例提供了一种数据库数据迁移方法、数据库数据迁移装置,以 及实现所述数据库数据迁移方法的计算机可读存储介质和电子设备。
第一方面,本公开实施例提供了一种数据库数据迁移方法,包括:
确定源数据库中每张表的第一数据量;
确定线程单次读取的第二数据量;所述第二数据量与计算机资源 相关;
基于所述第二数据量以及所述每张表的第一数据量,确定所述每 张表的数据迁移完所需的线程数;
控制启动指定数量的线程,基于所述每张表对应的线程数调度所 述指定数量的线程以读取所述每张表中的数据并写入目标数据库。
在本公开的一些实施例中,所述源数据库包括数据库统计信息, 所述数据库统计信息包含每张表的数据量;所述确定源数据库中每张 表的第一数据量,包括:
获取所述源数据库中的所述数据库统计信息;
基于所述数据库统计信息确定所述源数据库中每张表的第一数据 量。
在本公开的一些实施例中,所述计算机资源包括CPU资源、I/O 资源和内存资源中的至少一个;和/或,所述指定数量与CPU核数相关, 且该指定数量小于等于CPU核数的两倍值;所述确定线程单次读取的 第二数据量,包括:
基于所述CPU资源、I/O资源和内存资源中的至少一个确定线程 单次读取的第二数据量。
在本公开的一些实施例中,所述基于所述第二数据量以及所述每 张表的第一数据量,确定所述每张表的数据迁移完所需的线程数,包 括:
确定所述第二数据量是否大于所述每张表的第一数据量;
确定所述第二数据量大于所述每张表的第一数据量时,所述每张 表对应的线程数是第一数值;
确定所述第二数据量不大于所述每张表的第一数据量时,所述每 张表对应的线程数是第二数值;所述第二数值大于第一数值。
在本公开的一些实施例中,所述每张表对应的线程数是第二数值 由以下方式确定:
取余运算所述每张表的第一数据量与所述第二数据量;
确定取余运算的结果是零时,所述每张表对应的线程数是所述每 张表的第一数据量与所述第二数据量取模运算的结果;
确定取余运算的结果不是零时,所述每张表对应的线程数是所述 每张表的第一数据量与所述第二数据量取模运算的结果再加一。
在本公开的一些实施例中,还包括:
基于所述每张表对应的线程数对每张表中的数据进行分片得到分 片数据;其中所述分片数据的片数与该线程数相同;
为各所述分片数据建立查询关键字,基于各所述分片数据的查询 关键字构建各所述分片数据的查询SQL并放入队列中;
所述基于所述每张表对应的线程数调度所述指定数量的线程以读 取所述每张表中的数据并写入目标数据库,包括:
基于所述每张表对应的线程数,从所述指定数量的线程中调度与 该线程数对应的线程依次从所述队列中获取每张表的各所述分片数据 的查询SQL以执行分片数据的查询操作,并将查询结果写入所述目标 数据库。
在本公开的一些实施例中,各所述分片数据是所述每张表中的部 分行数据,各所述分片数据的所述查询关键字是哈希值,该哈希值由 所述部分行数据的唯一标识以及预设哈希函数确定;其中,所述唯一 标识用以指示行数据在所述源数据库中的物理存储位置。
在本公开的一些实施例中,还包括:
在所述目标数据库中创建预设约束,所述预设约束被配置为指示 所述目标数据库在写入数据时不检查数据完整性;
确定所述源数据库中的数据迁移完之后,更改所述预设约束以启 动检查数据完整性。
在本公开的一些实施例中,在所述目标数据库中写入数据之前, 还包括:
获取所述源数据库的编码集,将所述目标数据库的编码集设置为 与所述源数据库的编码集一致。
在本公开的一些实施例中,还包括:
在所述目标数据库中写入数据之前,获取所述源数据库中每张表 的属性信息;
基于所述每张表的属性信息在所述目标数据库中创建所述每张表 对应的无日志表;各所述无日志表用以存储对应的每张表的数据;
确定所述源数据库中的数据迁移完之后,将各所述无日志表更改 为普通表。
第二方面,本公开实施例提供一种数据库数据迁移装置,包括:
表数据统计模块,用以确定源数据库中每张表的第一数据量;
数据量确定模块,用以确定线程单次读取的第二数据量;所述第 二数据量与计算机资源相关;
线程数确定模块,用以基于所述第二数据量以及所述每张表的第 一数据量,确定所述每张表的数据迁移完所需的线程数;
数据迁移模块,用以控制启动指定数量的线程,基于所述每张表 对应的线程数调度所述指定数量的线程以读取所述每张表中的数据并 写入目标数据库。
第三方面,本公开实施例提供一种计算机可读存储介质,其上存 储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例 中所述数据库数据迁移方法的步骤。
第四方面,本公开实施例提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任 一实施例中所述数据库数据迁移方法的步骤。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例提供的数据库数据迁移方法、数据库数据迁移装置, 以及所述计算机可读存储介质和电子设备,可以先确定源数据库中每 张表的第一数据量以及确定线程单次读取的第二数据量,所述第二数 据量与计算机资源相关;然后基于所述第二数据量以及所述每张表的 第一数据量,确定所述每张表的数据迁移完所需的线程数;最后控制 启动指定数量的线程,基于所述每张表对应的线程数调度所述指定数 量的线程以读取所述每张表中的数据并写入目标数据库。这样,本实 施例中确定了源数据库中每张表的数据量,同时设置线程单次读取的 数据量时考虑计算机资源因素,因此可以较为合理平衡地利用计算机 资源以分配迁移完每张表数据的线程数,然后控制启动指定数量的线 程,并基于所述每张表对应的线程数调度所述指定数量的线程运行以 实现数据迁移,整体上使得数据迁移时的线程分配调度较为合理,在 数据迁移时可实现更快速、高可靠性的数据迁移,对于存在大数据量 的数据库,可以在很大程度上提高数据迁移效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符 合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面 将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而 易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前 提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例的数据库数据迁移方法流程图;
图2为本公开示例性实施例的数据库数据迁移方法流程图;
图3为本公开实施例示出另一数据库数据迁移方法流程图;
图4为本公开具体实施例所示数据库数据迁移具体过程示意图。
图5为本公开实施例的数据库数据迁移装置示意图;
图6为本公开实施例实现数据库数据迁移方法的电子设备示意 图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将 对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下, 本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但 本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书 中的实施例只是本公开的一部分实施例,而不是全部的实施例。
图1为本公开示例性示出的数据库数据迁移方法流程图,如图1 所示,该数据库数据迁移方法可以包括下述步骤:
步骤S102:确定源数据库中每张表的第一数据量。
步骤S104:确定线程单次读取的第二数据量。所述第二数据量与 计算机资源相关。
可以理解的是,步骤S102和S104可以不分先后顺序执行,也可 以并行执行,具体执行时例如可以是响应数据迁移指令而开始执行, 当然本实施例中并不限于此。
步骤S106:基于所述第二数据量以及所述每张表的第一数据量, 确定所述每张表的数据迁移完所需的线程数。
步骤S108:控制启动指定数量的线程,基于所述每张表对应的线 程数调度所述指定数量的线程以读取所述每张表中的数据并写入目标 数据库。
示例性的,线程的数量即所述指定数量可以预先设置,在启动指 定数量的线程后,例如启动四个线程,则可以基于所述每张表对应的 线程数调度所述四个线程以读取所述每张表中的数据并写入目标数据 库。例如数据表A对应线程数是一,数据表B对应线程数是三,那么 可以调度四个线程中的一个线程读取数据表A中的数据并写入目标数 据库,同时调度其他三个线程读取数据表B中的数据并写入目标数据 库。又例如,数据表A对应线程数是二,数据表B对应线程数是三, 那么可以调度四个线程中的二个线程读取数据表A中的数据并写入目 标数据库,同时调度剩余二个线程读取数据表B中的数据并写入目标 数据库,当数据表A中的数据被迁移完时,即读取数据表A的任一个 线程空闲时,则调度该空闲的一个线程去读取数据表B中的剩余数据 并写入目标数据库。
本公开实施例提供的上述数据库数据迁移方法,数据迁移之前分 析了源数据库中每张表的数据量,同时设置线程单次读取的数据量时 考虑计算机资源因素,因此可以较为合理平衡地利用计算机资源以分 配迁移完每张表数据的线程数,然后控制启动指定数量的线程,并基 于所述每张表对应的线程数调度所述指定数量的线程运行以实现数据 迁移,整体上使得数据迁移时的线程分配调度较为合理,在数据迁移 时可实现更快速、高可靠性的数据迁移,对于存在大数据量的数据库, 可以在很大程度上提高数据迁移效率。
可选的,为了在一定程度上节约迁移时间,提高数据迁移效率。 在本公开的一些实施例中,所述源数据库可以包括数据库统计信息, 所述数据库统计信息可以包含每张表的数据量。相应的,步骤S102中 确定源数据库中每张表的第一数据量,具体可以包括:获取所述源数 据库中的所述数据库统计信息;基于所述数据库统计信息确定所述源 数据库中每张表的第一数据量。
示例性的,源数据库统计信息可以包括每张表的数据量大小,如 Oracle数据库的系统表dba_tables的num_row列已经存储了表的数据 量统计信息,由于通过查询语句操作需要遍历整张表的数据确定每张 表的数据量,查询效率低下,而通过本实施例中的该方式查询可以直 接确定每张表的数据量,效率较高。因此采用查询数据库统计信息来 获取表的数据量大小可以节约一定的迁移时间,进而提高数据迁移效 率。
可选的,为了合理平衡地利用计算机资源以提高数据迁移效率。 在本公开的一些实施例中,所述计算机资源可以包括但不限于CPU资 源、I/O资源和内存资源中的至少一个。相应的,所述步骤S102中确 定线程单次读取的第二数据量,具体可以包括:基于所述CPU资源、 I/O资源和内存资源中的至少一个确定线程单次读取的第二数据量。
示例性的,线程单次读取的数据量可以根据计算机的CPU、I/O和 存储等资源合理设置,具体可以根据测试确定等,避免读取的数据量 过小而无法充分利用计算机资源,而过大又导致效率降低等。线程单 次读取的数据量的设置以避免CPU占用较高而I/O资源无法充分利用, 或者单次读取的数据量大小占内存容量比例过高等情况为宜,进而达 到计算机各资源较为平衡、充分的利用,使得后续执行迁移操作时, 可以进一步提高数据读取性能,从而提高数据迁移效率。
可选的,为了提高数据库的数据迁移效率,在本公开的一些实施 例中,所述指定数量与CPU核数相关,且该指定数量小于等于CPU 核数的两倍值。示例性的,例如四核的CPU,所述指定数量可以是四 个,即整体上启动四个线程执行数据迁移,但不限于此。在一次数据 迁移过程中,启动的线程数过多或过少会影响迁移效率,本实施例中, 所述指定数量可以与CPU核数相同,此时数据迁移时的迁移效率较高。
可选的,为了使得线程分配更为合理以进一步提高数据库的数据 迁移效率。在本公开的一些实施例中,结合图2中所示,步骤S106中 基于所述第二数据量以及所述每张表的第一数据量,确定所述每张表 的数据迁移完所需的线程数,具体可以包括下述步骤:
步骤S201:确定所述第二数据量是否大于所述每张表的第一数据 量。
示例性的,步骤步骤S201可以在步骤S104之后执行,也即确定 线程单次读取的第二数据量是否大于某张表的第一数据量。
步骤S202:确定所述第二数据量大于所述每张表的第一数据量时, 所述每张表对应的线程数是第一数值。
示例性的,该第一数值可以是一,但不限于此。也即线程单次读 取的第二数据量大于某张表的第一数据量时,只需一个线程即可实现 相应表中的数据迁移。
步骤S203:确定所述第二数据量不大于所述每张表的第一数据量 时,所述每张表对应的线程数是第二数值;所述第二数值大于第一数 值。
示例性的,在线程单次读取的第二数据量不大于某张表的第一数 据量时,为相应表配置的线程数即第二数值大于第一数值,如第二数 值可以大于一,即可以是分配多个线程。也即是说,如果源数据库中 存在大数据量的表,那么该表使用多个线程同时读取数据,如果存在 数据量较小的表,那么给该表分配一个线程即可,从而达到行级并行, 优化线程分配。本实施例中可以基于表的数据量和线程单次读取的数 据量分配迁移表数据所需的线程数,即优化线程分配使得线程分配更 为合理,进而使得后续执行数据迁移任务时可以提高数据库的数据迁 移效率。
进一步的,在本公开的一些实施例中,步骤S203中每张表对应的 线程数是第二数值可以由以下方式确定,具体可以包括如下流程:
i)取余运算所述每张表的第一数据量与所述第二数据量。
ii)确定取余运算的结果是零时,所述每张表对应的线程数是所述 每张表的第一数据量与所述第二数据量取模运算的结果。
iii)确定取余运算的结果不是零时,所述每张表对应的线程数是所 述每张表的第一数据量与所述第二数据量取模运算的结果再加一。
具体的,作为一个示例,例如C表示每张表所需分配的线程数,n 表示每个线程单次读取的数据量即第二数量,S表示表的数据量即第一 数据量,[S/n]表示取模,[S%n]表示取余,那么每张表对应的线程数的 计算公式如下:
If(n>S)
C=1
If(S%n=0)
C=S/n
If(S%n!=0)
C=S/n+1。
可以理解的是,本实施例中每张表对应的线程数的具体确定方式 并不限于此。采用本实施例中的上述方式优化线程分配使得线程分配 更为合理,进而使得后续执行数据迁移任务时可以进一步提高数据库 的数据迁移效率。
可选的,结合图3中所示,在本公开的一些实施例中,所述迁移 方法还可以包括如下步骤:
步骤S301:基于所述每张表对应的线程数对每张表中的数据进行 分片得到分片数据。其中所述分片数据的片数与该线程数相同。
示例性的,步骤S301可以在步骤S106之后执行,例如确定的某 张数据表C对应的线程数是四,则可以将该数据表C中的数据分成四 片构成四片分片数据,例如以行数据来分片,各分片数据的数据量可 以相同,但也不限于此。
步骤S302:为各所述分片数据建立查询关键字,基于各所述分片 数据的查询关键字构建各所述分片数据的查询SQL并放入队列中。
示例性的,例如对数据表C的四片分片数据分别建立查询关键字, 然后可基于四片分片数据的查询关键字构建四片分片数据的查询SQL 并放入队列中,即构建了对应四个查询SQL,每个查询SQL以相应分 片数据的查询关键字构建,该查询关键字用以在数据库中匹配查找对 应的分片数据。
相应的,步骤S108中基于所述每张表对应的线程数调度所述指定 数量的线程以读取所述每张表中的数据并写入目标数据库,具体可以 是如下步骤:
步骤S303:基于所述每张表对应的线程数,从所述指定数量的线 程中调度与该线程数对应的线程依次从所述队列中获取每张表的各所 述分片数据的查询SQL以执行分片数据的查询操作,并将查询结果写 入所述目标数据库。
示例性的,例如从启动的四个线程中调度四个线程依次从所述队 列中获取数据表C的四片分片数据的四个查询SQL以执行分片数据的 查询操作,并将查询结果写入所述目标数据库。
本实施例中对数据表的数据进行分片后查询读取数据,能够有效 的提升数据的查询效率,进而提高数据迁移效率。
进一步的,在本公开的一些可选实施例中,各所述分片数据是所 述每张表中的部分行数据,各所述分片数据的所述查询关键字可以是 哈希值,该哈希值可以由所述部分行数据的唯一标识以及预设哈希函 数确定。其中,所述唯一标识用以指示行数据在所述源数据库中的物 理存储位置。
具体的,由于普通的分页方式在读取数据时,页数越往后的读取 速度就会越慢,而数据的物理存储位置可以直接定位到数据。因此本 实施例中可以采用HASH算法利用数据的物理存储位置进行表数据哈 希分片处理可以提升后续数据查询的速度,进而可以提高数据迁移效 率。以Oracle数据库为例,Oracle数据库的表中的每一行数据都有一 个唯一标识符,称为rowid。在Oracle内部通常就是使用它来访问数据 的。rowid表明了该行数据在Oracle数据库中的物理存储位置。
本实施例中采用哈希函数如ora_hash函数及唯一标识符rowid对 表数据进行分片,得到各分片数据的哈希值,即查询关键字,然后可 基于各分片数据的哈希值构建分片数据的查询SQL并放入队列中。结 合图4中所示,具体的,作为示例,分片数据的哈希值可以表示为 ora_hash(rowid,N-1),N表示分片数据的片数,也即一张表对应的线 程数。分片的下标可以0开始,所以分片时使用N-1,即0至N-1共为 N个分片,然后将基于哈希值构建的查询SQL加入队列中,具体的SQL 示例如下所示:
select*from table_name where ora_hash(rowed,N-1)=0
select*from table_name where ora_hash(rowed,N-1)=1
select*from table_name where ora_hash(rowed,N-1)=2
select*from table_name where ora_hash(rowed,N-1)=N-1
之后可以开启指定数量的多线程如N个线程,调度N个线程中每 个线程依次从队列中获取一条查询SQL并执行,以从源数据库获取到 结果集并可以遍历结果集获取数据,然后可以通过例如金仓数据库提 供的COPY TO接口将数据插入到目标数据库中。执行完一条查询SQL 的线程可被调度再去队列里中获取其他表的查询SQL并执行,如此循 环,直至所有数据表的数据迁移完成。
本实施例中通过物理存储位置查找数据是效率最高的查询方法, 而且通过物理存储位置进行查询表数据不会因为数据量的大小而影响 查询效率。且本实施例中使用HASH算法,根据数据物理位置进行分 片后查询表数据,能够有效的提升数据的查询读取效率,同时兼具了 查询效率的稳定性,进而可以进一步提升整个数据迁移的效率。
可选的,在本公开的一些实施例中,结合图4中所示,所述迁移 方法还可以包括如下步骤:
在所述目标数据库中创建预设约束,所述预设约束被配置为指示 所述目标数据库在写入数据时不检查数据完整性。
确定所述源数据库中的数据迁移完之后,更改所述预设约束以启 动检查数据完整性。
约束检查数据的完整性是一种非常耗时的过程,将严重影响数据 迁移的速度。本实施例中实质是在目标数据库中禁用检查数据完整性 功能,数据迁移完之后可以开启检查数据完整性功能。具体的,目标 数据库例如可以是金仓数据库类型,金仓数据库提供了创建约束时可 选语法[NO VALID],使得创建的约束不去检查数据完整性,创建预设 约束的示例过程如下:通过从源数据库查询约束元信息获取约束数据 库模式定义语言DDL(Data Definition Language),如ALTER TABLE TABLE_NAME ADD CONSTRAINTCONSTRAINT_NAME CHECK(COLUMN_NAME>100)。转换为不检查数据完整性的预设约 束DDL,如ALTERTABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_NAME CHECK(C0LUMN_NAME>100)NOVALID。 在目标数据库库执行上述DDL,即可完成创建预设约束过程。
金仓数据库实现了约束的启用、禁用及是否检查数据完整性等功 能。开启约束检查数据完整性后,数据库写入数据时,约束会检查插 入的数据是否符合约束条件,该检查会消耗大量的时间。通过禁用该 功能可以极大的提升数据写入的速度。本公开实施例通过禁用检查数 据完整性功能,省略因检查数据完整性的时间开销以减少目标数据库 写入数据的时间,加快数据的迁移,进一步提高数据迁移效率。
可选的,在本公开的一些实施例中,在所述目标数据库中写入数 据之前,还可以包括步骤:获取所述源数据库的编码集,将所述目标 数据库的编码集设置为与所述源数据库的编码集一致。
具体的,在迁移数据之前,可以查询源数据库的编码集,在初始 化目标数据库时将编码集设置为源数据库的编码集。本公开实施例中 在从源数据库读取数据以及写入数据至目标数据库时,可以将源数据 库和目标数据库的编码集设置一致,即在数据迁移过程中的输入输出 流的编码集与源数据库、目标数据库一致,从而减少因转码等引起的 乱码,数据丢失、迁移失败等问题,确保数据的完整性、一致性、准 确性等。
可选的,在本公开的一些实施例中,所述迁移方法还可以包括下 述步骤:
在所述目标数据库中写入数据之前,获取所述源数据库中每张表 的属性信息。
基于所述每张表的属性信息在所述目标数据库中创建所述每张表 对应的无日志表;各所述无日志表用以存储对应的每张表的数据。
确定所述源数据库中的数据迁移完之后,将各所述无日志表更改 为普通表。
具体的,作为示例,属性信息可以包括表的元信息,如表名、表 的所有列名、类型等。结合图4中所示,通过源数据库的系统表可以 获取到表的元信息,以获取源表创建DDL,通过该元信息可以拼装转 换为无日志表即unlogged表创建DDL,如源数据库某表名为test,列 名为col,类型为int,那么在目标数据库中创建对应的无日志unlogged 表的DDL如下所示:create unlogged table test(col1 int)。最后执行上述 DDL,完成在目标数据库中unlogged表的创建。
示例性的,以目标数据库是金仓数据库为例,金仓数据库中引入 了预写式日志(write-Ahead Logging,简称为WAL或WAL日志)。而 写入WAL将会占用大量的I/O、影响数据插入速度。本实施例中创建 unlogged表,写入数据时不会写WAL日志,从而减少I/O资源占用并 减少数据插入时间。也即通过创建unlogged表,减少因写WAL日志 占用的I/O、时间资源等方式减少目标数据库写入数据的时间,加快数 据的迁移,提高数据库数据迁移效率。数据迁移完后可将unlogged表 设置为普通表,即可以写入WAL日志的表,确保在以后实际业务过程 中的数据库高可用。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的 各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这 些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的 或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以 及/或者将一个步骤分解为多个步骤执行等。另外,也易于理解的是, 这些步骤可以是例如在多个模块/进程/线程中同步或异步执行。
基于同一构思,本公开实施例还提供一种数据库数据迁移装置, 参考图5中所示,该数据库数据迁移装置50可以包括表数据统计模块 501、数据量确定模块502、线程数确定模块503和数据迁移模块504; 其中:
所述表数据统计模块501,用以确定源数据库中每张表的第一数据 量;
所述数据量确定模块502,用以确定线程单次读取的第二数据量; 所述第二数据量与计算机资源相关;
所述线程数确定模块503,用以基于所述第二数据量以及所述每张 表的第一数据量,确定所述每张表的数据迁移完所需的线程数;
所述数据迁移模块504,用以控制启动指定数量的线程,基于所述 每张表对应的线程数调度所述指定数量的线程以读取所述每张表中的 数据并写入目标数据库。
本公开实施例提供的上述数据库数据迁移装置,数据迁移之前分 析了源数据库中每张表的数据量,同时设置线程单次读取的数据量时 考虑计算机资源因素,因此可以较为合理平衡地利用计算机资源以分 配迁移完每张表数据的线程数,然后控制启动指定数量的线程,并基 于所述每张表对应的线程数调度所述指定数量的线程运行以实现数据 迁移,整体上使得数据迁移时的线程分配调度较为合理,在数据迁移 时可实现更快速、高可靠性的数据迁移,对于存在大数据量的数据库, 可以在很大程度上提高数据迁移效率。
在本公开的一些实施例中,所述源数据库可以包括数据库统计信 息,所述数据库统计信息可以包含每张表的数据量。所述表数据统计 模块501确定源数据库中每张表的第一数据量,具体可以包括:获取 所述源数据库中的所述数据库统计信息;基于所述数据库统计信息确 定所述源数据库中每张表的第一数据量。
在本公开的一些实施例中,所述计算机资源可以包括但不限于 CPU资源、I/O资源和内存资源中的至少一个。在本公开的一些实施例 中,所述指定数量与CPU核数相关,且该指定数量小于等于CPU核 数的两倍值。所述数据量确定模块502确定线程单次读取的第二数据 量,具体可以包括:基于所述CPU资源、I/O资源和内存资源中的至 少一个确定线程单次读取的第二数据量。
在本公开的一些实施例中,所述线程数确定模块503基于所述第 二数据量以及所述每张表的第一数据量,确定所述每张表的数据迁移 完所需的线程数,具体可以包括:确定所述第二数据量是否大于所述 每张表的第一数据量;确定所述第二数据量大于所述每张表的第一数 据量时,所述每张表对应的线程数是第一数值;确定所述第二数据量 不大于所述每张表的第一数据量时,所述每张表对应的线程数是第二 数值;所述第二数值大于第一数值。
在本公开的一些实施例中,所述线程数确定模块503确定所述每 张表对应的线程数是第二数值可以由以下方式确定:取余运算所述每 张表的第一数据量与所述第二数据量;确定取余运算的结果是零时, 所述每张表对应的线程数是所述每张表的第一数据量与所述第二数据 量取模运算的结果;确定取余运算的结果不是零时,所述每张表对应 的线程数是所述每张表的第一数据量与所述第二数据量取模运算的结 果再加一。
在本公开的一些实施例中,还可以包括数据分片模块,用以基于 所述每张表对应的线程数对每张表中的数据进行分片得到分片数据; 其中所述分片数据的片数与该线程数相同;为各所述分片数据建立查 询关键字,基于各所述分片数据的查询关键字构建各所述分片数据的 查询SQL并放入队列中。相应的,所述数据迁移模块504基于所述每 张表对应的线程数调度所述指定数量的线程以读取所述每张表中的数 据并写入目标数据库,具体可以包括:基于所述每张表对应的线程数, 从所述指定数量的线程中调度与该线程数对应的线程依次从所述队列 中获取每张表的各所述分片数据的查询SQL以执行分片数据的查询操 作,并将查询结果写入所述目标数据库。
在本公开的一些实施例中,各所述分片数据是所述每张表中的部 分行数据,各所述分片数据的所述查询关键字是哈希值,该哈希值由 所述部分行数据的唯一标识以及预设哈希函数确定;其中,所述唯一 标识用以指示行数据在所述源数据库中的物理存储位置。
在本公开的一些实施例中,还包括约束配置模块,用以在所述目 标数据库中创建预设约束,所述预设约束被配置为指示所述目标数据 库在写入数据时不检查数据完整性;确定所述源数据库中的数据迁移 完之后,更改所述预设约束以启动检查数据完整性。
在本公开的一些实施例中,还可以包括编码集配置模块,其在所 述目标数据库中写入数据之前,用以获取所述源数据库的编码集,将 所述目标数据库的编码集设置为与所述源数据库的编码集一致。
在本公开的一些实施例中,还可以包括表状态配置模块,用以在 所述目标数据库中写入数据之前,获取所述源数据库中每张表的属性 信息;基于所述每张表的属性信息在所述目标数据库中创建所述每张 表对应的无日志表;各所述无日志表用以存储对应的每张表的数据; 确定所述源数据库中的数据迁移完之后,将各所述无日志表更改为普 通表。
关于上述实施例中的装置,其中各个模块执行操作的具体方式以 及带来的相应技术效果已经在有关该方法的实施例中进行了对应的 详细描述,此处将不做详细阐述说明。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的 若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公 开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可 以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单 元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作 为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位 于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需 要选择其中的部分或者全部模块来实现木公开方案的目的。本领域普 通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算 机程序,该程序被处理器执行时实现上述任一项实施例所述数据库数 据迁移方法的步骤。
示例性的,该可读存储介质例如可以为但不限于电、磁、光、电 磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。 可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多 个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读 存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、 便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或 者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部 分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号 可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合 适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质, 该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者 器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码 可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF 等等,或者上述的任意合适的组合。
本公开实施例还提供一种电子设备例如数据库服务器,包括处理 器以及存储器,存储器用于存储所述处理器的可执行指令。其中,所 述处理器配置为经由执行所述可执行指令来执行上述任一项实施例 中所述数据库数据迁移方法的步骤。
下面参照图6来描述根据本发明的这种实施方式的电子设备600。 图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功 能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设 备600的组件可以包括但不限于:至少一个处理单元610、至少一个存 储单元620、连接不同系统组件(包括存储单元620和处理单元610) 的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述 处理单元610执行,使得所述处理单元610执行本说明书上述数据库 数据迁移方法部分中描述的根据本发明各种示例性实施方式的步骤。 例如,所述处理单元610可以执行如图1中所示方法的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例 如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还 可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205 的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系 统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例 中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单 元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或 者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向 设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子 设备600交互的设备通信,和/或与使得该电子设备600能与一个或多 个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等) 通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子 设备600还可以通过网络适配器660与一个或者多个网络(例如局域 网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网 络适配器660可以通过总线630与电子设备600的其它模块通信。应 当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或 软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外 部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里 描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的 硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软 件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介 质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指 令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备 等)执行根据本公开实施方式的上述数据库数据迁移方法。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关 系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来, 而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系 或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或 者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或 者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有 更多限制的情况下,由语句“包括一个……”限定的要素,并不排除 在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要 素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理 解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说 将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精 神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限 制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖 特点相一致的最宽的范围。

Claims (13)

1.一种数据库数据迁移方法,其特征在于,包括:
确定源数据库中每张表的第一数据量;
确定线程单次读取的第二数据量;所述第二数据量与计算机资源相关;
基于所述第二数据量以及所述每张表的第一数据量,确定所述每张表的数据迁移完所需的线程数;
控制启动指定数量的线程,基于所述每张表对应的线程数调度所述指定数量的线程以读取所述每张表中的数据并写入目标数据库。
2.根据权利要求1所述的数据库数据迁移方法,其特征在于,所述源数据库包括数据库统计信息,所述数据库统计信息包含每张表的数据量;所述确定源数据库中每张表的第一数据量,包括:
获取所述源数据库中的所述数据库统计信息;
基于所述数据库统计信息确定所述源数据库中每张表的第一数据量。
3.根据权利要求1所述的数据库数据迁移方法,其特征在于,所述计算机资源包括CPU资源、I/O资源和内存资源中的至少一个;和/或,所述指定数量与CPU核数相关,且该指定数量小于等于CPU核数的两倍值;所述确定线程单次读取的第二数据量,包括:
基于所述CPU资源、I/O资源和内存资源中的至少一个确定线程单次读取的第二数据量。
4.根据权利要求1所述的数据库数据迁移方法,其特征在于,所述基于所述第二数据量以及所述每张表的第一数据量,确定所述每张表的数据迁移完所需的线程数,包括:
确定所述第二数据量是否大于所述每张表的第一数据量;
确定所述第二数据量大于所述每张表的第一数据量时,所述每张表对应的线程数是第一数值;
确定所述第二数据量不大于所述每张表的第一数据量时,所述每张表对应的线程数是第二数值;所述第二数值大于第一数值。
5.根据权利要求4所述的数据库数据迁移方法,其特征在于,所述每张表对应的线程数是第二数值由以下方式确定:
取余运算所述每张表的第一数据量与所述第二数据量;
确定取余运算的结果是零时,所述每张表对应的线程数是所述每张表的第一数据量与所述第二数据量取模运算的结果;
确定取余运算的结果不是零时,所述每张表对应的线程数是所述每张表的第一数据量与所述第二数据量取模运算的结果再加一。
6.根据权利要求1所述的数据库数据迁移方法,其特征在于,还包括:
基于所述每张表对应的线程数对每张表中的数据进行分片得到分片数据;其中所述分片数据的片数与该线程数相同;
为各所述分片数据建立查询关键字,基于各所述分片数据的查询关键字构建各所述分片数据的查询SQL并放入队列中;
所述基于所述每张表对应的线程数调度所述指定数量的线程以读取所述每张表中的数据并写入目标数据库,包括:
基于所述每张表对应的线程数,从所述指定数量的线程中调度与该线程数对应的线程依次从所述队列中获取每张表的各所述分片数据的查询SQL以执行分片数据的查询操作,并将查询结果写入所述目标数据库。
7.根据权利要求6所述的数据库数据迁移方法,其特征在于,各所述分片数据是所述每张表中的部分行数据,各所述分片数据的所述查询关键字是哈希值,该哈希值由所述部分行数据的唯一标识以及预设哈希函数确定;其中,所述唯一标识用以指示行数据在所述源数据库中的物理存储位置。
8.根据权利要求1~7任一项所述的数据库数据迁移方法,其特征在于,还包括:
在所述目标数据库中创建预设约束,所述预设约束被配置为指示所述目标数据库在写入数据时不检查数据完整性;
确定所述源数据库中的数据迁移完之后,更改所述预设约束以启动检查数据完整性。
9.根据权利要求1~7任一项所述的数据库数据迁移方法,其特征在于,在所述目标数据库中写入数据之前,还包括:
获取所述源数据库的编码集,将所述目标数据库的编码集设置为与所述源数据库的编码集一致。
10.根据权利要求1~7任一项所述的数据库数据迁移方法,其特征在于,还包括:
在所述目标数据库中写入数据之前,获取所述源数据库中每张表的属性信息;
基于所述每张表的属性信息在所述目标数据库中创建所述每张表对应的无日志表;各所述无日志表用以存储对应的每张表的数据;
确定所述源数据库中的数据迁移完之后,将各所述无日志表更改为普通表。
11.一种数据库数据迁移装置,其特征在于,
表数据统计模块,用以确定源数据库中每张表的第一数据量;
数据量确定模块,用以确定线程单次读取的第二数据量;所述第二数据量与计算机资源相关;
线程数确定模块,用以基于所述第二数据量以及所述每张表的第一数据量,确定所述每张表的数据迁移完所需的线程数;
数据迁移模块,用以控制启动指定数量的线程,基于所述每张表对应的线程数调度所述指定数量的线程以读取所述每张表中的数据并写入目标数据库。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1~10任一项所述数据库数据迁移方法的步骤。
13.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~10任一项所述数据库数据迁移方法的步骤。
CN202010774424.9A 2020-08-04 2020-08-04 数据库数据迁移方法、装置、介质和电子设备 Active CN112015716B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010774424.9A CN112015716B (zh) 2020-08-04 2020-08-04 数据库数据迁移方法、装置、介质和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010774424.9A CN112015716B (zh) 2020-08-04 2020-08-04 数据库数据迁移方法、装置、介质和电子设备

Publications (2)

Publication Number Publication Date
CN112015716A true CN112015716A (zh) 2020-12-01
CN112015716B CN112015716B (zh) 2024-02-09

Family

ID=73499068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010774424.9A Active CN112015716B (zh) 2020-08-04 2020-08-04 数据库数据迁移方法、装置、介质和电子设备

Country Status (1)

Country Link
CN (1) CN112015716B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190534A (zh) * 2021-05-26 2021-07-30 中国工商银行股份有限公司 数据库数据迁移方法及装置
CN113392103A (zh) * 2021-05-19 2021-09-14 华锐分布式(北京)技术有限公司 数据复制方法、装置、计算机设备和存储介质
CN113515503A (zh) * 2021-07-23 2021-10-19 浩鲸云计算科技股份有限公司 一种基于表的InfluxDB数据迁移方法
CN114077602A (zh) * 2022-01-13 2022-02-22 中兴通讯股份有限公司 数据迁移方法和装置、电子设备、存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300073A1 (en) * 2008-05-28 2009-12-03 International Business Machines Corporation System and apparatus to ensure a low-latency read of log records from a database management system ("dbms")
KR101374533B1 (ko) * 2013-04-17 2014-03-14 주식회사 엔써티 대용량 데이터에 대한 고성능 복제 및 백업 시스템과, 고성능 복제 방법
CN104794204A (zh) * 2015-04-23 2015-07-22 上海新炬网络信息技术有限公司 一种数据库敏感数据自动识别方法
US20150379038A1 (en) * 2014-06-25 2015-12-31 Vmware, Inc. Data replication in site recovery environment
CN107357883A (zh) * 2017-06-30 2017-11-17 北京奇虎科技有限公司 数据迁移方法及装置
US20180196703A1 (en) * 2016-01-30 2018-07-12 Huawei Technologies Co., Ltd. Parallel Execution Method and Apparatus in Terminal Database
CN109753493A (zh) * 2019-01-04 2019-05-14 中国银行股份有限公司 数据库间进行数据迁移的方法、装置以及设备
CN110222115A (zh) * 2019-04-30 2019-09-10 武汉达梦数据库有限公司 基于表初始化分组装载的数据库同步方法及设备
WO2019219010A1 (zh) * 2018-05-14 2019-11-21 杭州海康威视数字技术股份有限公司 数据迁移方法、装置及计算机可读存储介质
CN111125059A (zh) * 2019-12-17 2020-05-08 南京甄视智能科技有限公司 数据迁移方法、装置、存储介质及服务器
CN111125769A (zh) * 2019-12-27 2020-05-08 上海轻维软件有限公司 基于oracle数据库的海量数据脱敏方法
CN111143331A (zh) * 2019-12-30 2020-05-12 广州酷狗计算机科技有限公司 数据迁移方法、装置及计算机存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090300073A1 (en) * 2008-05-28 2009-12-03 International Business Machines Corporation System and apparatus to ensure a low-latency read of log records from a database management system ("dbms")
KR101374533B1 (ko) * 2013-04-17 2014-03-14 주식회사 엔써티 대용량 데이터에 대한 고성능 복제 및 백업 시스템과, 고성능 복제 방법
US20150379038A1 (en) * 2014-06-25 2015-12-31 Vmware, Inc. Data replication in site recovery environment
CN104794204A (zh) * 2015-04-23 2015-07-22 上海新炬网络信息技术有限公司 一种数据库敏感数据自动识别方法
US20180196703A1 (en) * 2016-01-30 2018-07-12 Huawei Technologies Co., Ltd. Parallel Execution Method and Apparatus in Terminal Database
CN107357883A (zh) * 2017-06-30 2017-11-17 北京奇虎科技有限公司 数据迁移方法及装置
WO2019219010A1 (zh) * 2018-05-14 2019-11-21 杭州海康威视数字技术股份有限公司 数据迁移方法、装置及计算机可读存储介质
CN109753493A (zh) * 2019-01-04 2019-05-14 中国银行股份有限公司 数据库间进行数据迁移的方法、装置以及设备
CN110222115A (zh) * 2019-04-30 2019-09-10 武汉达梦数据库有限公司 基于表初始化分组装载的数据库同步方法及设备
CN111125059A (zh) * 2019-12-17 2020-05-08 南京甄视智能科技有限公司 数据迁移方法、装置、存储介质及服务器
CN111125769A (zh) * 2019-12-27 2020-05-08 上海轻维软件有限公司 基于oracle数据库的海量数据脱敏方法
CN111143331A (zh) * 2019-12-30 2020-05-12 广州酷狗计算机科技有限公司 数据迁移方法、装置及计算机存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113392103A (zh) * 2021-05-19 2021-09-14 华锐分布式(北京)技术有限公司 数据复制方法、装置、计算机设备和存储介质
CN113190534A (zh) * 2021-05-26 2021-07-30 中国工商银行股份有限公司 数据库数据迁移方法及装置
CN113515503A (zh) * 2021-07-23 2021-10-19 浩鲸云计算科技股份有限公司 一种基于表的InfluxDB数据迁移方法
CN114077602A (zh) * 2022-01-13 2022-02-22 中兴通讯股份有限公司 数据迁移方法和装置、电子设备、存储介质
CN114077602B (zh) * 2022-01-13 2022-05-17 中兴通讯股份有限公司 数据迁移方法和装置、电子设备、存储介质
WO2023134627A1 (zh) * 2022-01-13 2023-07-20 中兴通讯股份有限公司 数据迁移方法和装置、电子设备、存储介质

Also Published As

Publication number Publication date
CN112015716B (zh) 2024-02-09

Similar Documents

Publication Publication Date Title
CN112015716B (zh) 数据库数据迁移方法、装置、介质和电子设备
US8601474B2 (en) Resuming execution of an execution plan in a virtual machine
US10387411B2 (en) Determining a density of a key value referenced in a database query over a range of rows
US20170083573A1 (en) Multi-query optimization
US6832227B2 (en) Database management program, a database managing method and an apparatus therefor
EP2811792B1 (en) A method for operating a mobile telecommunication device
US10248676B2 (en) Efficient B-Tree data serialization
US9507822B2 (en) Methods and systems for optimizing queries in a database system
US8935232B2 (en) Query execution systems and methods
US8566333B2 (en) Multiple sparse index intelligent table organization
US8949222B2 (en) Changing the compression level of query plans
US20100211577A1 (en) Database processing system and method
US8650219B2 (en) Persistent iteration over a database tree structure
CN109885642B (zh) 面向全文检索的分级存储方法及装置
JP2020098593A (ja) 列状データの不均一なページネーション
US20170270149A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
Chernishev The design of an adaptive column-store system
US20230359494A1 (en) Disabling of memory allocators
US8140520B2 (en) Embedding densities in a data structure
CN112835887A (zh) 数据库管理方法、装置、计算设备和存储介质
KR20140098529A (ko) 데이터에 대한 접근 패턴이 서로 상이한 olap 응용 및 oltp 응용을 동시에 효과적으로 지원하는 장치 및 방법
CN117170942B (zh) 一种基于文件系统快照的数据库备份方法以及相关设备
US20090276603A1 (en) Techniques for efficient dataloads into partitioned tables
WO2023232127A1 (zh) 任务调度方法、装置、系统及相关设备
CN118035270A (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