当前位置: 首页 > 图文教程 > 数据库 > DB2 > 实例解析IBM DB2的数据复制、迁移方法

DB2
监控 DB2 活动之使用解释工具分析SQL
DB2 Viper 快速入门
监控 DB2 活动之Visual Explain详细介绍
监控 DB2 活动之其他问题判断工具
DB2 与 Ruby on Rails 入门之一
DB2 实用程序介绍之EXPORT实用程序
浅谈DB2数据库故障处理及最佳实践
使用重定向恢复DB2数据库
DB中如何查询Table占用空间的大小
DB2 实用程序介绍之LOAD实用程序
DB2 实用程序介绍之数据移动实用程序
DB2 实用程序介绍之IMPORT实用程序
SQL Server 2005对DBA的要求是否会更高
IBM XML tools for DB2 Version 9.5 及其用法
DB2 VS2005.Net插件进行XML数据验证
三种级别的DB2数据库字符集的设置与修改
理解DB2 9中新的查询:XQuery
DB2 存储和检索 XML 数据
VS2005构建针对DB2的应用程序和Web站点
.Net开发采用DB2 XML的应用程序示例

实例解析IBM DB2的数据复制、迁移方法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-30   浏览: 48 ::
收藏到网摘: n/a

  以下方法经测试,在环境IBM x346,3.2G×2,4G,RAID 1,DB2 V8.2.4,Win2000 Adv Server,DMS表空间中,数据的load速度在60-100万条/min左右。

  背景  

  需要更改数据库表空间,或者需要将数据库中所有表的数据迁移到一个新的数据库中。

  步骤

  1.通过db2控制台(db2cc)选中源数据库中的所有表,将其导出成DDL脚本;

  2.根据需要对脚本进行必要的修改,譬如更改表空间为GATHER;

  3.新建数据库,新建DMS表空间:GATHER;

  4.将DDL脚本在此数据库中执行;

  5.编写代码查询源数据库中的所有表,自动生成export脚本;

  6.编写代码查询源数据库中的所有表,自动生成import脚本;

  7.连接源数据库执行export脚本;

  8.连接目标数据库执行import脚本;  

  生成export脚本代码示例如下:

/**

  *创建导出脚本

  * @param conn

  * @param creator表创建者

  * @param filePath

  */

  public void createExportFile(Connection conn,String creator,String filePath) throws Exception {

  DBBase dbBase = new DBBase(conn);

  String selectTableSql = "select name from sysibm.systables where creator = '" + creator + "' and type='T'";

  try {

  dbBase.executeQuery(selectTableSql);

  } catch (Exception ex) {

  throw ex;

  } finally {

  dbBase.close();

  }

  DBResult result = dbBase.getSelectDBResult();

  List list = new ArrayList();

  while (result.next()) {

  String table = result.getString(1);

  list.add(table);

  }

  StringBuffer sb = new StringBuffer();

  String enterFlag = "\r\n";

  for (int i = 0; i

  String tableName = (String)list.get(i);

  sb.append("db2 \"export to aa" + String.valueOf(i+1)+ ".ixf of ixf select * from " + tableName + "\"");

  sb.append(enterFlag);

  }

  String str = sb.toString();

  FileUtility.saveStringToFile(filePath, str, false);

}