一种数据库迁移方法和装置制造方法及图纸

技术编号:12583333 阅读:132 留言:0更新日期:2015-12-23 23:36
本发明专利技术的实施方式提供了一种数据库迁移方法和装置。该数据库迁移方法包括:在进行数据库迁移的数据导出过程前,对被迁移的数据表加锁;在数据导出过程中,监控数据库加锁时长和请求进行数据库操作的业务连接请求数量;如果监控到加锁时长超过设置的加锁时长阈值和/或监控到业务连接请求数量超过设置的业务连接请求数量阈值,则停止数据库迁移操作并对被迁移的数据表解锁。通过监控加锁时长和业务连接请求数量两个指标,本发明专利技术的方法无需等待数据导出过程结束后再解锁,减少了对数据库业务处理的影响,为用户带来了更好的体验。此外,本发明专利技术的实施方式提供了一种数据库迁移装置。

【技术实现步骤摘要】

本专利技术的实施方式涉及数据库迀移
,更具体地,本专利技术的实施方式涉及一种数据库迀移方法和装置。
技术介绍
本部分旨在为权利要求书中陈述的本专利技术的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。在数据库的使用过程中,经常需要进行数据迀移,其原因可能是服务器资源不足、网络隔离、数据容灾等等。另一方面,随着云计算技术的发展,数据库上云也变得越来越普遍,在此过程中首先要做的就是将数据库数据迀移到云端。数据库迀移是指将一个已经存在的数据库实例,通过某种方式,将其中的表结构和表数据等信息导出到文件中,再通过某种方式恢复出来一个新的数据库实例,数据库迀移包括了数据导出和数据导入的过程。在数据库迀移过程中,为了保证数据库迀移前后被迀移的数据表的一致性,需要在数据库导出过程中对被迀移的数据表加锁,避免数据库操作者对其进行修改、删除、增加等。在数据表加锁期间,需要完成的操作主要包括:1、对被迀移的数据表创建快照,以保证数据库迀移前后,被迀移的数据表一致;2、逐个解析被迀移的数据表,根据配置的迀移参数将被迀移的数据表拆分成多份并封装;3、导出非事务性数据表,例如MyISAM(MySQL数据库原生的存储引擎)。需要说明的是,对于事务性数据表,在上述步骤1、2中进行加锁即可,而对于非事务性数据表,需要对上述步骤1、2、3中进行加锁。在数据库迀移过程中,通常步骤I较为快速,但步骤2所需的时间受多个因素影响,包括数据库服务器的1能力,数据表的数量,数据表的记录数和拆分粒度等。从在生产环境中的实践来看,对类似博客应用的数百GB大库,有时需要分钟级的处理时间。如果存在较大的非事务性数据表,步骤3也需要耗费不少时间。
技术实现思路
出于在数据库迀移的导出过程中,对被迀移的数据表的加锁时间无法精确估计的原因,现有技术中,通常会选择业务空闲时进行数据库迀移,但是无法保证数据库迀移期间绝对的业务空闲。因此,在现有技术中,在数据库表导出过程中对被迀移的数据表加锁期间,无法对数据库表进行操作,直至数据库表导出过程结束,但过长的加锁时间可能导致请求数据库操作的业务请求连接数量暴增,导致业务请求阻塞,这是非常令人烦恼的过程。为此,非常需要一种改进的数据库迀移方法,合理控制数据库加锁时长,降低对数据库业务处理的影响。在本上下文中,本专利技术的实施方式期望提供一种数据库迀移方法和装置。在本专利技术实施方式的第一方面中,提供了一种数据库迀移方法,包括:在进行数据库迀移的数据导出过程前,对被迀移的数据表加锁;在所述数据导出过程中,监控加锁时长和请求进行数据库操作的业务连接请求数量;如果监控到所述加锁时长超过设置的加锁时长阈值和/或监控到所述业务连接请求数量超过设置的业务连接请求数量阈值,则停止数据库迀移操作并对所述被迀移的数据表解锁。在本专利技术实施方式的第二方面中,提供了一种数据库迀移装置,包括:加锁单元,用于在进行数据库迀移的数据导出过程前,对被迀移的数据表加锁;监控单元,用于在所述数据库导出过程中,监控数据库加锁时长和请求进行数据库操作的业务连接请求数量;控制单元,用于在所述监控单元监控到所述加锁时长超过设置的加锁时长阈值或者监控到所述业务连接请求数量超过设置的业务连接请求数量阈值时,停止数据库迀移操作并对所述被迀移的数据表解锁。在本专利技术实施方式的第三方面中,提供了一种数据库迀移设备,例如,可以包括存储器和处理器,其中,处理器可以用于读取存储器中的程序,执行下列过程:在进行数据库迀移的数据导出过程前,对被迀移的数据表加锁;在所述数据导出过程中,监控加锁时长和请求进行数据库操作的业务连接请求数量;如果监控到所述加锁时长超过设置的加锁时长阈值和/或监控到所述业务连接请求数量超过设置的业务连接请求数量阈值,则停止数据库迀移操作并对所述被迀移的数据表解锁。根据本专利技术实施方式的数据库迀移方法和装置,在数据库迀移的数据导出过程中对被迀移的数据表加锁期间,同时监控加锁时长和请求数据库操作的业务连接请求数量两个指标,在任一指标达到其对应的阈值时即停止数据库迀移操作并对被迀移的数据表解除锁定,而无需等待数据导出过程结束后再解锁,减少了对数据库业务处理的影响;同时在加锁时长超过预设阈值的情况下,根据超时的具体原因,自适应的调整影响数据导出时长的参数或加锁时长阈值,从而在降低对业务请求的影响的同时,减少了因为加锁超时而引起的数据导出中断的次数,提高了数据导出的效率,为用户带来了更好的体验。【附图说明】通过参考附图阅读下文的详细描述,本专利技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本专利技术的若干实施方式,其中:图1示意性地示出了本专利技术实施例的应用场景示意图;图2示意性地示出了根据本专利技术实施方式的数据库迀移方法实施例示意图;图3示意性地示出了根据本专利技术又一实施例的根据数据库迀移操作状态重新进行数据库迀移操作的流程示意图;图4示意性地示出了根据本专利技术再一实施例的数据迀移操作状态为数据表拆分状态时重新执行数据库迀移操作的流程示意图;图5示意性地示出了根据本专利技术再一实施例的数据库迀移装置结构示意图;图6示意性地示出了根据本专利技术再一实施例的数据库迀移设备的结构示意图;图7示意性地示出了根据本专利技术再一实施例的用于数据库迀移的程序产品示意图。在附图中,相同或对应的标号表不相同或对应的部分。【具体实施方式】下面将参考若干示例性实施方式来描述本专利技术的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本专利技术,而并非以任何方式限制本专利技术的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。本领域技术技术人员知道,本专利技术的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。根据本专利技术的实施方式,提出了一种数据库迀移方法和设备。在本文中,需要理解的是,所涉及的术语中:数据导出表示将数据库中的数据保存到备份文件中。数据导入表示将备份文件中的数据写入新的数据库实例中。业务连接请求是指由数据库的使用者发起的,对数据库进行数据插入、更新、删除和查询等操作。RPD (Rows Per Dump)为每次导出的记录条数,该值为估计值,通过指定索引区间实现。此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。下面参考本专利技术的若干代表性实施方式,详细阐释本专利技术的原理和精神。发曰月概沐本专利技术人发现,在数据库迀移的数据导出过程中对被迀移的数据表加锁期间,由于无法精确估计加锁时间,如果加锁时间设置过长,可能导致业务阻塞。为了合理控制加锁时间,减少对数据库业务处理的影响,本专利技术实施例中,设置加锁时长和请求数据库处理的业务连接请求两个指标进行监控,如果当前第1页1 2 3 4 本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/CN105183852.html" title="一种数据库迁移方法和装置原文来自X技术">数据库迁移方法和装置</a>

【技术保护点】
一种数据库迁移方法,包括:在进行数据库迁移的数据导出过程前,对被迁移的数据表加锁;在所述数据导出过程中,监控加锁时长和请求进行数据库操作的业务连接请求数量;如果监控到所述加锁时长超过设置的加锁时长阈值和/或监控到所述业务连接请求数量超过设置的业务连接请求数量阈值,则停止数据库迁移操作并对所述被迁移的数据表解锁。

【技术特征摘要】

【专利技术属性】
技术研发人员:温正湖郭忆
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1