赛迪网 > IT技术 数据库 > DB2开发者园地
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

IBM DB2跨平台数据库迁移步骤和注意事项 (2)

发布时间:2008.05.15 04:56     来源:赛迪网    作者:小乔

3. 导出源数据库系统的数据集

db2 提供了一个工具叫作 db2move,用户通过它可以把所有用户定义的表中的数据导出到 IXF(集成交换格式)的文件中。同时,在导入数据的时候,它还可以生成表上的所定义的索引。具体的导出执行命令如下:

清单 6. 导出源数据集

以下是引用片段:

db2move dbname

export -u

username

-p

password

根据数据库大小,机器性能的不同,这个导出过程可能耗时几分钟到几个小时不等。在笔者的经历中,这个导出过程就长达 2 个多小时。

4. 生成源数据库系统的数据对象定义语句

在导出了数据之后,要做的就是导出数据对象定义。DB2提供了一个工具叫db2look,用户可以通过它来生成数据库中的数据对象定义,包括别名,表,索引,视图,触发器,用户定义函数,存储过程等。具体的命令如下:

清单 7. 生成数据对象定义语句

以下是引用片段:

db2look -d dbname

-e -o

ddlfile

-i

username

-w

password

如果数据库非常复杂,包含很多的数据对象定义,那么在执行上述命令前,用户有可能要先调整参数appgroup_memo_sz,才能够顺利的生成数据对象定义文件。下面是笔者修改这个参数的命令示例:

清单 8. 调整源数据库参数

以下是引用片段:

db2 update db cfg for dbname using appgroup_mem_sz 51368

5. 在目标平台创建新的数据库,参照源系统设置参数

在源平台上完成了数据导出和数据对象定义语句生成之后,下面就是要在目标平台建立目标数据库了。参考源数据库的设置为新创建的数据库配置适当的参数,通常需要调整的参数有:

dbheap - 数据堆大小

catalogcache_sz - 目录高速缓存大小

logbufsz - 日志缓冲区大小

util_heap_sz - 实用程序堆大小

buffpage - 缓冲池大小

sortheap - 排序列表堆

stmtheap - sql 语句堆

applheapsz - 缺省应用程序堆

笔者使用的调整语句如下:

清单 9. 调整语句

以下是引用片段:

db2 update db cfg for dbname using dbheap 41599

db2 update db cfg for dbname using catalogcache_sz 38049

db2 update db cfg for dbname using logbufsz 256

db2 update db cfg for dbname using util_heap_sz 20000

db2 update db cfg for dbname using buffpage 1000

db2 update db cfg for dbname using sortheap 4096

db2 update db cfg for dbname using stmtheap 16384

db2 update db cfg for dbname using applheapsz 10242

对于非常复杂的数据库,目标数据库的日志参数还需要做出调整,以便在导入数据和生成数据对象时,系统不至于日志溢出。由于笔者要迁移的数据库比较复杂,所以使用了较大的日志配置,命令示例如下:

清单 10. 命令示例

db2 update db cfg for dbname using logfilsiz 8192

db2 update db cfg for dbname using mincommit 1

db2 update db cfg for dbname using logprimary 24

db2 update db cfg for dbname using logsecond 108

6. 导入源数据集

细心的读者可能会发现,这里总结的步骤6和8看似不太符合一般的逻辑顺序。对于数据库系统,通常都是先生成数据系统对象,如表,视图,触发器等,然后再导入数据集。而上述步骤中却是先导入数据集,然后再生成数据对象定义。 这能行的通吗?对于DB2来说,这完全行得通,因为db2move命令在导入数据集时,会自动生成表和索引。这样的顺序对于复杂数据对象定义的数据库迁移是唯一可行的顺序,因为复杂数据库中往往包含诸多复杂的数据约束语句, 它们会造成数据集导入时的种种问题。

<<上一页 1 2 3 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 在Linux平台下进行DB2数据库的迁移 (05-14) · 如何将MySQL数据库迁移到Oracle数据库 (05-14)
· 一则DB2数据库重定向表空间的恢复案例 (05-12) · 循序渐进讲解DB2数据库的内置数据类型 (05-12)
· 如何使用重定向恢复操作克隆DB2数据库 (05-12) · 讲解IBM DB2数据库的常用日期操作函数 (05-10)
· 带你深入了解IBM DB2数据库的备份与恢复 (05-08) · 带你深入了解IBM DB2数据库的备份与恢复 (05-08)
· 学习DB2数据库必须掌握的五十四条常用语句 (05-08) · 解决IBM DB2数据库锁等待的相关问题 (05-07)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 信息化市场百家争鸣 SaaS深陷争议“泥潭”
· 提高管理水平 "两栖"CIO应具备的六大能力
· 国产ITIL运维先行者 四大厂商角力BI市场
· 金融行业GSN专题解决方案 企业网解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统