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

资讯 驱动中国 若水 2,442 次阅读 0 条评论
分享 Q

以下方法经测试  ,在环境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);

}

版权声明:本文由驱动中国整理发布,转载需注明出处与原文链接。如有疑问请联系 editor@qudong.com
本文价值 成为第一个评分的人
登录后为本文打分
网友评论0 条评论
正在回复 的评论取消
评论加载中…
🔐

登录后参与互动

评论、点赞均可赚积分
连续签到、邀请好友也有奖励 🎁

电脑端: 微信扫码登录 微信内: 一键登录

微信扫一扫

打开微信「扫一扫」,分享本文到朋友圈或好友