快捷搜索:

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

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

上述显示表空间和法度榜样包的敕令都必要先建立到源数据库的连接。

2. 反省源数据库系统工具,明确要迁移哪些数据库系统工具

若何反省源数据库系统工具?一个最直不雅的措施便是应用DB2节制中间(db2cc)浏览查看表,视图,触发器,用户定义的函数,存储历程等数据库工具。尤其要留意有无大年夜的表,比如一行数据的表定义可能大年夜于8K的表。 这样的表必要在目标数据库上建立具有足够页大年夜小的表空间。下面的步骤中将会给出列子。还必要留意的是有无外部定义的存储历程,这些存储历程所关联的外部法度榜样包必要手工从新关联。

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

DB2 供给了一个对象叫作 db2move,用户经由过程它可以把所有用户定义的表中的数据导出到 IXF(集成互换款式)的文件中。同时,在导入数据的时刻,它还可以天生表上的所定义的索引。详细的导出履行敕令如下:

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敕令在导入数据集时,会自动天生表和索引。这样的顺序对付繁杂数据工具定义的数据库迁移是独一可行的顺序,由于繁杂数据库中每每包孕诸多繁杂的数据约束语句, 它们会造成数据集导入时的各种问题。

清单 11. 导入源数据集的敕令示例

db2move targetdbname

您可能还会对下面的文章感兴趣: