DB2是个有着广泛商业应用的关系数据库软件。作为一个数据库管理员时常面临着数据库系统的迁移工作,这是一个复杂而艰巨的过程。互联网和DB2的帮助文档中有许多关于DB2数据库迁移的介绍,但是对于DB2数据库的跨平台迁移却很少谈及。本文将基于笔者的成功实践,总结一下跨平台数据库迁移的步骤和注意事项。
简介
设想您是一个 DB2 商业数据库系统的管理员。您被给予一项任务,支持业务开发和测试团队对商业系统的持续开发,为他们创建一套独立于产品环境的数据库系统,从而不影响日常的商业运作。由于种种原因,这套开发和测试数据库系统将运行在一个不同于产品环境的操作系统。我们知道 DB2 提供了一些方便的数据库管理工具,比如数据库的整体备份和恢复功能,用户可以用它很方便的将一个 DB2数据库从一台物理节点迁移到另一个物理节点,但是 DB2的备份和恢复功能目前只支持同构操作系统平台间的迁移,比如从 Windows 平台到 Windows 平台,AIX 平台到 AIX 平台。对于上述任务要求的跨平台的数据库迁移,就没有一个专门的工具可以很方便的实现。
迁移步骤
经过笔者的实践,总结 DB2数据库的跨平台迁移步骤如下:
记录源数据库管理系统配置参数,以备迁移过后数据库系统性能调优;
检查源数据库系统对象,明确要迁移哪些数据库系统对象;
导出源数据库系统的数据集;
生成源数据库系统的数据对象定义语句;
在目标平台创建新的数据库,参照源系统进行设置;
导入源数据集;
检查数据集导入过程日志,排除可能的错误;
执行数据对象定义语句;
检查数据对象语句执行日志,排除可能的错误;
检查更新存储过程的定义;
连接应用系统,测试数据库迁移是否成功。
下面给出一个遵循上述步骤的具体例子,其中将给出执行这些步骤的具体 DB2 命令以供参考。
1.记录源数据库管理系统配置参数。这些是很重要的数据环境设置,其中的一些设置关系到迁移能否成功。
清单 1.显示数据库管理系统配置参数的命令
db2 get dbm cfg
清单 2.显示数据库配置参数的命令
db2 get db cfg for source_db_name
注意:Italic part should be replaced by your settings.
注意:对于比较复杂的源数据库,要注意它的应用程序组内存大小参数(appgroup_memo_sz)。如果它的大小不够,后面生成数据对象定义的时候会有问题。
清单 3.显示数据库注册表变量的命令
db2set -all
清单 4.显示数据库表空间的命令
db2 list tablespaces show detail
清单 5.显示数据库程序包的命令
db2 list packages
上述显示表空间和程序包的命令都需要先建立到源数据库的连接。