ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 数据库 >> DB2 >> 基于游标和LOAD技术的DB2数据库高效数据迁移方法

基于游标和LOAD技术的DB2数据库高效数据迁移方法(1/2)

来源:网络整理     时间:2017-04-03     关键词:

本篇文章主要介绍了" 基于游标和LOAD技术的DB2数据库高效数据迁移方法",主要涉及到方面的内容,对于DB2感兴趣的同学可以参考一下: 在DB2数据库中,游标cursor和LOAD技术相结合是进行数据迁移的有效解决方法,它的优点是迁移速度快,耗用时间短,当迁移海量数据时该优点尤其...

        在DB2数据库中,游标cursor和LOAD技术相结合是进行数据迁移的有效解决方法,它的优点是迁移速度快,耗用时间短,当迁移海量数据时该优点尤其显著,而且被迁移的数据无需从源库导出保存到服务器文件系统上,节省存储空间,既适用于同一数据库内的数据迁移,也适用于异构操作系统平台上的不同DB2数据库间的数据迁移。 

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@ 

相关图片

相关文章