基于游标和LOAD技术DB2数据库高效数据迁移方法.docVIP

基于游标和LOAD技术DB2数据库高效数据迁移方法.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于游标和LOAD技术DB2数据库高效数据迁移方法

基于游标和LOAD技术DB2数据库高效数据迁移方法   [摘 要]在DB2数据库中,游标cursor和LOAD技术相结合是进行数据迁移的有效解决方法,它的优点是迁移速度快,耗用时间短,当迁移海量数据时该优点尤其显著,而且被迁移的数据无需从源库导出保存到服务器文件系统上,节省存储空间,既适用于同一数据库内的数据迁移,也适用于异构操作系统平台上的不同DB2数据库间的数据迁移。   [关键词]游标;LOAD技术;数据迁移   中图分类号:TP311.13 文献标识码:A 文章编号:1009-914X(2016)03-0132-01   1、前言   在信息系统建设中,常常存在将某数据库中的数据一次性迁移到另一个数据库中的需求,这种迁移既可能发生在同一个数据库内的不同数据表之间,也可能会发生于不同数据库的数据表之间。本文假设场景是进行DB2数据库的数据迁移,如何准确、高效、方便地完成数据迁移,是DBA的重要工作。   2、游标和LOAD技术   DB2数据库进行数据迁移时,通常做法是首先从源库将数据用export方法导出保存到服务器文件系统上,然后再连接上目标数据库,用import方法将数据导入。但是这种方法存在两个缺点:   (1)、需要先将被迁移数据export导出保存到文件系统上,这将占用文件系统存储空间,尤其是当迁移海量数据时,导出文件所耗用的存储空间将十分巨大和可观。   (2)、import方法无法满足性能要求。用import方法向目标数据库加载数据时,速度低耗时长。尤其是当加载海量数据时,所耗费的时间将十分漫长。   使用游标和LOAD技术相结合进行数据迁移,可有效避免上述两个缺点:   (1)、使用游标方式的数据迁移,可避免导出文件耗用大量存储空间的缺点。它直接在源表、目标表之间进行数据的抽取、传输和加载,不需要将源表的数据先导出保存到文件系统上,不会产生中间数据文件。该方法快速高效、语法简洁,是一种数据迁移的好方法。   游标(cursor)是关系型数据库中的一个重要概念,它提供了一种对从表中检索出的数据进行操作的灵活有效的手段。游标是一个指针,检索出数据结果后,游标首先指向结果集中的第一条数据,当第一条数据读取完成后,指针自动移动指向结果集中的下一条数据,直至遍历完成整个数据集。   使用游标进行数据迁移时,需要事先创建出目标表的数据结构,而且目标表和源表的数据结构要保持一致或字段的数据类型是兼容的。   (2)、LOAD加载方式能显著提升数据加载速度,明显缩短所耗用的时间。LOAD的加载原理及与import的区别是:import加载数据时,是对数据按照行方式进行处理,使用数据库SQL引擎把数据一行一行加载进入数据库,而LOAD方式则是对加载数据按照DB2物理存储方式进行格式化,然后将格式化的数据按页进行处理,绕过数据库SQL引擎直接在底层将页数据加载进入数据库,数据处理效率十分高效,非常适合于加载海量数据的场景。   3、实现过程   3.1 语法说明   定义一个游标,然后使用LOAD方法操作游标将数据从源表写入目标表。假设迁移场景是:源表与目标表位于同一数据库(数据库的日志模式是循环日志模式),将源数据表tab1中的数据迁移到目标数据表newtab,目标表newtable的数据结构已经创建而且与源表保持一致,语法示例如下:   connect to dbname user username@   declare cur_1 cursor for select * from tab1@   load from cur_1 of cursor insert into newtab@   第一条语句的作用是连接数据库(语句中dbname指的是数据库名称,username指的是连接数据库的用户名);第二条语句的作用是游标的定义语句,cur_1是游标名称,从数据表tab1中检索所有字段的数据;第三条语句是使用load命令将游标中的数据加载进入目标表newtab。   执行上述语法需要在数据库服务器上执行,在数据库服务器上将上述语法保存成一个txt文件,然后在DB2 CLP环境中执行db2 ?Ctd@ -vf filename.txt即可,在执行过程中,系统会提示用户输入密码,输入密码后,系统开始进行数据迁移。   3.2 特定数据类型的数据加载   若数据表中含有generated always as identity或generated always 类型的字段,那么上面的load命令在加载这种类型的字段时会出现报错,这时需要在load命令中添加特定的修饰符才能使数据加载成功。   当表中包含有generated always as identity类型的字段时,需

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档