CN104881443A - 一种在数据库间迁移数据的方法和系统 - Google Patents
一种在数据库间迁移数据的方法和系统 Download PDFInfo
- Publication number
- CN104881443A CN104881443A CN201510243989.3A CN201510243989A CN104881443A CN 104881443 A CN104881443 A CN 104881443A CN 201510243989 A CN201510243989 A CN 201510243989A CN 104881443 A CN104881443 A CN 104881443A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- migration
- reads
- write
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
Abstract
本发明实施例提供一种在数据库间迁移数据的方法和系统,该方法包括:迁移程序从第二数据库向第一数据库迁移数据;在数据迁移期间如果有读取数据的需求,数据客户端优先读取所述第一数据库,当所述第一数据库读取失败时读取所述第二数据库;数据迁移完成后关闭所述第二数据库,由所述第一数据库提供数据服务。该方法可实现在数据库间不停止服务的数据平滑迁移。
Description
技术领域
本发明涉及数据迁移领域,具体涉及一种在数据库间迁移数据的方法和系统,更加具体涉及无版本Key-Value数据数据库平滑迁移至HBase的方法和系统。
背景技术
Key-Value(键-值)数据库是一种非常常见的数据库类型,又称作NoSQL数据库,特点是查询速度快、存放数据量大、支持高并发,非常适合通过主键进行查询,但不能进行复杂的条件查询。以MemcacheDB、Tokyo Tyrant为代表的key-value分布式存储,在上万并发连接下,轻松地完成高速查询。进年来因为社交平台兴起,移动互联网的爆发,数据量大幅增加,传统的Key-Value数据库往往只能作为数据存储引擎存在,在大数据的背景下,进行分析计算处理工具链薄弱,计算框架比较少,对此HBase的前景优势十分明显。
HBase(Hadoop Database),是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统。并且HBase可便捷的利用Hadoop MapReduce来处理HBase中的海量数据,这种便利对于其他Key-Value数据而言是不可同日而语的。
HBase与其他Key-Value数据库,因为并不是派生衍生关系,所以在各种数据库间转移数据的工作,往往不能使用现成存在的工具包去处理,需要结合实际情况去开发和实现,在实际生产环境中,以MemcacheDB为例,可能作为一种基础服务存在,服务于各种线上环境,当计算能力不足时需要将数据迁移至HBase,现存的技术中如要进行数据迁移,往往采取如下办法:
1、停止MemcacheDB数据服务;
2、进行MemcacheDB到HBase的数据迁移工作;
3、启用HBase数据服务,完成。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有技术中需要将MemcacheDB这种Key-Value数据库停止服务,而后进行迁移,因为数据规模的大小并不确定,决定了迁移时间的长短不一,这点对于用户体验来说会比较差,并且对于某些线上系统,停止服务是不可接受的,所以需要进行不停服务的平滑迁移。
发明内容
本发明的实施例提供一种数据库间迁移数据的方法和系统,不停止服务实现数据平滑迁移。
为达上述目的,一方面,本发明的实施例提供了一种在数据库间迁移数据的方法,包括:
迁移程序从第二数据库向第一数据库迁移数据;
在数据迁移期间如果有读取数据的需求,数据客户端优先读取所述第一数据库,当所述第一数据库读取失败时读取所述第二数据库;
数据迁移完成后关闭所述第二数据库,由所述第一数据库提供数据服务。
另一方面,本发明实施例提供了一种在数据库间迁移数据的系统,包括:
迁移设备,用于从第二数据库向所述第一数据库迁移数据,并在数据迁移完成后关闭所述第二数据库,由所述第一数据库提供数据服务;
数据访问设备,用于在数据迁移期间如果有读取数据的需求,优先读取所述第一数据库,当所述第一数据库读取失败时读取所述第二数据库。
上述技术方案具有如下有益效果:本发明的实施例的方法新增加了数据的双读,使得将数据可以成功迁移过去,支持不停止服务迁移。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的实施例的一种在数据库间平滑迁移数据的方法的整体流程图;
图2是本发明的实施例的作为一个举例的平滑迁移数据的流程图;
图3是本发明的实施例的作为一个举例的迁移过程中写入操作可能造成的数据覆盖的示意图;
图4是本发明的实施例的数据客户端的读写操作和迁移程序的迁移写入操作的示意图;
图5是本发明的实施例的数据客户端有无写入过新版本数据的对比示意图;
图6是本发明的实施例的在数据库间平滑迁移数据的系统的功能框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明的实施例提供了一种在数据库间迁移数据的方法,以实现在不停止服务的情况下实现数据库间的数据平滑迁移。该方法包括如下步骤:
步骤101:迁移程序从第二数据库向第一数据库迁移数据;
步骤102:在数据迁移期间如果有读取数据的需求,数据客户端优先读取第一数据库,当所述第一数据库读取失败时读取第二数据库;
步骤103:数据迁移完成后关闭所述第二数据库,由所述第一数据库提供数据服务。
在本实施例中,数据迁移开始后,即打开了双读机制,但是否发生双读要看实际情况。换言之,双读只发生在迁移数据期间,正常服务及迁移完成后是不会出现双读的。
可选地,在步骤101之前该方法还可包括步骤:启动数据库双读机制。
与现有技术的方法相比,本发明的实施例的方法新增加了数据的双读,使得将数据可以成功迁移过去,支持不停止服务迁移。
可选地,在步骤103之前,该方法还可包括步骤:验证并确认所述第二数据库的所有数据被迁移成功。
可选地,图1所示方法还可包括如下步骤:在数据迁移期间如果有写入数据的需求,数据客户端仅对所述第一数据库写入数据。
作为一种可选的实施方式,在数据迁移期间,所述数据客户端对所述第一数据库读取最高版本数据,所述数据客户端对所述第一数据库写入除最低版本数据以外的高版本数据,所述迁移程序向所述第一数据库写入最低版本数据。
作为另一种可选的实施方式,所述数据客户端对所述第一数据库读取、写入最高版本数据。
以下以第一数据库为HBase数据库,第二数据库为任何无版本的Key-Value数据库(具体采用MemcacheDB)为例进行说明:
如图2所示,本发明的实施例的方法包括:
步骤1、启用MemcacheDB和HBase双读机制,双读机制是指优先读取HBase,HBase读取失败则读取MemcacheDB,两者都读取失败,则返回失败,任意一者读取成功,则返回数据;
步骤2、启动迁移程序从MemcacheDB向HBase迁移数据;
步骤3、迁移程序完成,启动迁移验证程序,验证确认所有的MemcacheDB数据都被迁移成功;
步骤4、关闭MemcacheDB,由HBase提供数据服务。
本发明的实施例的方法新增加了数据的双读,使得将数据可以成功迁移过去,但是数据客户端对与HBase的写入操作和迁移程序的写入操作是不确定时间进行的,很有可能造成数据覆盖的情况,如图3所示:
数据客户端在T1时间,写入HBase新数据Key1=value2;
MemcacheDB的历史数据是Key1=value1,在T1+t时间,从MemcacheDB转移至HBase,造成Key1=value1覆盖Key1=value2。
这样旧的数据(历史数据)覆盖了新的数据,数据完整性不能保证的迁移是没有意义的,出现这样的问题的主要原因在于:新旧数据不能按照真实时间的顺序写入到HBase,造成了数据的混乱。
因为时间是不可改变的,写入顺序也不可控,为了解决以上问题,需要在数据存储上做一些调整,正好HBase具有数据版本的概念,可以利用该特性,对数据存储处理,从而解决该问题。具体办法如图4所示,数据客户端总写HBase的最高版本数据,这里以N代表任何大于0的最新版本,而迁移程序总是写0版本,即最低版本,这样就不会出现数据被覆盖的情况了,同时,读取HBase永远读取最高版本的数据,保证了读取数据总是最新的。
如图5所示,表述了两种情况,一种数据客户端写入新数据情况,另一种为数据客户端没有新写入数据,只是将原有数据迁移过来的情况。至此,可保障数据平滑迁移,读写都不受影响,迁移时间不受影响。
与现有技术相比,本发明的实施例的技术方案可支持不停止服务迁移,迁移时间,数据规模不受限制,数据完整性可以保证。
如图6所示,本发明的实施例还提供一种在数据库间平滑迁移数据的系统,其包括:
迁移设备201,用于从第二数据库向所述第一数据库迁移数据,并在数据迁移完成后关闭第二数据库,由第一数据库提供数据服务;
数据访问设备202,用于在数据迁移期间如果有读取数据的需求,优先读取第一数据库,当第一数据库读取失败时读取第二数据库。
进一步地,迁移设备201包括验证模块(未绘出),用于验证并确认所述第二数据库的所有数据都被迁移成功。
较佳地,数据访问设备202,还用于在数据迁移期间如果有写入数据的需求,仅对所述第一数据库写入数据。
较佳地,数据访问设备202,具体用于在数据迁移期间,对所述第一数据库读取最高版本数据,对所述第一数据库写入除最低版本数据以外的高版本数据;所述迁移设备201,具体用于向所述第一数据库写入最低版本数据。
优选地,数据访问设备202,具体用于对所述第一数据库读取、写入最高版本数据。
可选地,第一数据库可包括HBase数据库,第二数据库可包括任何无版本的Key-Value数据库。
该系统的工作方法和原理可参阅前述方法实施例,故不再赘述。
该在数据库间平滑迁移数据的系统可支持不停止服务迁移,迁移时间,数据规模不受限制,数据完整性可以保证。
本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrativelogical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrativecomponents),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种在数据库间迁移数据的方法,其特在于,包括:
迁移程序从第二数据库向第一数据库迁移数据;
在数据迁移期间如果有读取数据的需求,数据客户端优先读取所述第一数据库,当所述第一数据库读取失败时读取所述第二数据库;
数据迁移完成后关闭所述第二数据库,由所述第一数据库提供数据服务。
2.根据权利要求1所述的方法,其特征在于,在数据迁移完成后关闭所述第二数据库,由所述第一数据库提供数据服务的步骤之前,还包括:
验证并确认所述第二数据库的所有数据被迁移成功。
3.根据权利要求1所述的方法,其特征在于,还包括:
在数据迁移期间如果有写入数据的需求,数据客户端仅对所述第一数据库写入数据。
4.根据权利要求1、2或3所述的方法,其特征在于,在数据迁移期间,所述数据客户端对所述第一数据库读取最高版本数据,所述数据客户端对所述第一数据库写入除最低版本数据以外的高版本数据,所述迁移程序向所述第一数据库写入最低版本数据。
5.根据权利要求1、2或3所述的方法,其特征在于,所述在迁移程序从第二数据库向第一数据库迁移数据之前,还包括:启动数据库双读机制。
6.一种在数据库间迁移数据的系统,其特在于,包括:
迁移设备,用于从第二数据库向第一数据库迁移数据,并在数据迁移完成后关闭所述第二数据库,由所述第一数据库提供数据服务;
数据访问设备,用于在数据迁移期间如果有读取数据的需求,优先读取所述第一数据库,当所述第一数据库读取失败时读取所述第二数据库。
7.根据权利要求6所述的系统,其特征在于,还包括:所述迁移设备包括验证模块,用于验证并确认所述第二数据库的所有数据被迁移成功。
8.根据权利要求6所述的系统,其特征在于,所述数据访问设备,还用于在数据迁移期间如果有写入数据的需求,仅对所述第一数据库写入数据。
9.根据权利要求6、7或8所述的系统,其特征在于,所述数据访问设备,具体用于在数据迁移期间,对所述第一数据库读取最高版本数据,对所述第一数据库写入除最低版本数据以外的高版本数据;所述迁移设备,具体用于向所述第一数据库写入最低版本数据。
10.根据权利要求6、7或8所述的系统,其特征在于,所述第一数据库包括HBase数据库,所述第二数据库包括任何无版本的Key-Value数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510243989.3A CN104881443B (zh) | 2015-05-14 | 2015-05-14 | 一种在数据库间迁移数据的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510243989.3A CN104881443B (zh) | 2015-05-14 | 2015-05-14 | 一种在数据库间迁移数据的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104881443A true CN104881443A (zh) | 2015-09-02 |
CN104881443B CN104881443B (zh) | 2018-11-27 |
Family
ID=53948937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510243989.3A Active CN104881443B (zh) | 2015-05-14 | 2015-05-14 | 一种在数据库间迁移数据的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881443B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677736A (zh) * | 2015-12-29 | 2016-06-15 | 曙光信息产业(北京)有限公司 | 一种增加、删除服务器节点的方法及装置 |
CN107015972A (zh) * | 2016-01-27 | 2017-08-04 | 五八同城信息技术有限公司 | 一种机房业务迁移方法、装置和系统 |
CN107122361A (zh) * | 2016-02-24 | 2017-09-01 | 阿里巴巴集团控股有限公司 | 数据迁移系统和方法 |
CN107133228A (zh) * | 2016-02-26 | 2017-09-05 | 华为技术有限公司 | 一种数据重分布的方法及装置 |
CN110019133A (zh) * | 2017-12-21 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 数据在线迁移方法和装置 |
CN110069222A (zh) * | 2019-04-30 | 2019-07-30 | 北京百度网讯科技有限公司 | 应用数据迁移方法、装置、新存储系统及介质 |
CN110309101A (zh) * | 2018-03-23 | 2019-10-08 | 浙江宇视科技有限公司 | 一种数据管理方法及Hadoop分布式文件系统 |
CN110874354A (zh) * | 2019-10-23 | 2020-03-10 | 支付宝(杭州)信息技术有限公司 | 数据库迁移方法及装置、电子设备、存储介质 |
WO2020155060A1 (zh) * | 2019-01-31 | 2020-08-06 | 华为技术有限公司 | 一种存储控制器和数据搬迁监测方法 |
WO2020192290A1 (zh) * | 2019-03-26 | 2020-10-01 | 阿里巴巴集团控股有限公司 | 一种数据库迁移的方法、装置、设备及计算机可读介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090187612A1 (en) * | 2007-11-19 | 2009-07-23 | International Business Machines Corporation | Technique of controlling access to database |
CN102955845A (zh) * | 2012-10-23 | 2013-03-06 | 北京亿赞普网络技术有限公司 | 数据访问方法、装置与分布式数据库系统 |
-
2015
- 2015-05-14 CN CN201510243989.3A patent/CN104881443B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090187612A1 (en) * | 2007-11-19 | 2009-07-23 | International Business Machines Corporation | Technique of controlling access to database |
CN102955845A (zh) * | 2012-10-23 | 2013-03-06 | 北京亿赞普网络技术有限公司 | 数据访问方法、装置与分布式数据库系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677736A (zh) * | 2015-12-29 | 2016-06-15 | 曙光信息产业(北京)有限公司 | 一种增加、删除服务器节点的方法及装置 |
CN107015972A (zh) * | 2016-01-27 | 2017-08-04 | 五八同城信息技术有限公司 | 一种机房业务迁移方法、装置和系统 |
CN107015972B (zh) * | 2016-01-27 | 2020-02-18 | 五八同城信息技术有限公司 | 一种机房业务迁移方法、装置和系统 |
CN107122361A (zh) * | 2016-02-24 | 2017-09-01 | 阿里巴巴集团控股有限公司 | 数据迁移系统和方法 |
CN107133228A (zh) * | 2016-02-26 | 2017-09-05 | 华为技术有限公司 | 一种数据重分布的方法及装置 |
CN110019133A (zh) * | 2017-12-21 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 数据在线迁移方法和装置 |
CN110309101A (zh) * | 2018-03-23 | 2019-10-08 | 浙江宇视科技有限公司 | 一种数据管理方法及Hadoop分布式文件系统 |
CN110309101B (zh) * | 2018-03-23 | 2021-08-31 | 浙江宇视科技有限公司 | 一种数据管理方法及Hadoop分布式文件系统 |
WO2020155060A1 (zh) * | 2019-01-31 | 2020-08-06 | 华为技术有限公司 | 一种存储控制器和数据搬迁监测方法 |
US11809730B2 (en) | 2019-01-31 | 2023-11-07 | Huawei Technologies Co., Ltd. | Storage controller and data migration monitoring method |
WO2020192290A1 (zh) * | 2019-03-26 | 2020-10-01 | 阿里巴巴集团控股有限公司 | 一种数据库迁移的方法、装置、设备及计算机可读介质 |
US11308048B2 (en) | 2019-03-26 | 2022-04-19 | Beijing Oceanbase Technology Co., Ltd. | Database migration method, apparatus, device, and computer-readable medium |
CN110069222A (zh) * | 2019-04-30 | 2019-07-30 | 北京百度网讯科技有限公司 | 应用数据迁移方法、装置、新存储系统及介质 |
CN110874354A (zh) * | 2019-10-23 | 2020-03-10 | 支付宝(杭州)信息技术有限公司 | 数据库迁移方法及装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104881443B (zh) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881443A (zh) | 一种在数据库间迁移数据的方法和系统 | |
US10303657B2 (en) | Docker layer deduplication with layer referencing | |
US10747744B2 (en) | Distributed ledger comprising snapshots | |
US9940065B2 (en) | Systems and methods for migrating data | |
US10713654B2 (en) | Enterprise blockchains and transactional systems | |
CN102831075B (zh) | 将预先存在数据导入存储池的方法和系统 | |
US10866973B2 (en) | Test data management | |
EP3560143A2 (en) | Data isolation in a blockchain network | |
US10467424B2 (en) | File system content based security | |
CN109597640B (zh) | 一种应用程序的账号管理方法、装置、设备和介质 | |
CN104978336A (zh) | 基于Hadoop分布式计算平台的非结构化数据存储系统 | |
US9733837B2 (en) | Shifting a defrag operation in a mirrored system | |
US20220083507A1 (en) | Trust chain for official data and documents | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
US11314430B2 (en) | Reading data in sub-blocks using data state information | |
WO2019080717A1 (zh) | 一种磁盘快照的数据处理方法及装置 | |
US8276041B2 (en) | Data integrity validation using hierarchical volume management | |
US11556519B2 (en) | Ensuring integrity of records in a not only structured query language database | |
US9542246B2 (en) | Sharing a partitioned data set across parallel applications | |
US20170116348A1 (en) | Collaborative bookmarks | |
US20200142974A1 (en) | Distributed data deduplication reference counting | |
KR101620782B1 (ko) | 사전 데이터를 활용한 데이터 저장 방법 및 시스템 | |
US20240028581A1 (en) | System, Method, And Device for Uploading Data from Premises to Remote Computing Environments | |
US11243930B2 (en) | System and method for scalable and space efficient hardening of a fixed sized hash table over an unreliable tier |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate 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: 20230407 Address after: Room 501-502, 5/F, Sina Headquarters Scientific Research Building, Block N-1 and N-2, Zhongguancun Software Park, Dongbei Wangxi Road, Haidian District, Beijing, 100193 Patentee after: Sina Technology (China) Co.,Ltd. Address before: 100080, International Building, No. 58 West Fourth Ring Road, Haidian District, Beijing, 20 floor Patentee before: Sina.com Technology (China) Co.,Ltd. |