自动卸载/加载 DB2 数据库所有表的工具

Posted

技术标签:

【中文标题】自动卸载/加载 DB2 数据库所有表的工具【英文标题】:Tool to automatically unload/load all tables of DB2 databases 【发布时间】:2015-09-16 16:02:13 【问题描述】:

通常,我们需要从数据库中卸载(DB2 实用程序)所有数据并将其加载到另一个数据库(相同的结构)。

我通常每个表(源数据库)有一个卸载 jcl,每个表(目标数据库)一个加载 jcl。 50-100个表的数据库,jcl很多,代码重复。

是否有可能构建一个工具来使用 DB2 实用程序为我完成所有这些工作?示例:指定源数据库和目标数据库,然后 SUB...

任何想法将不胜感激。谢谢!

【问题讨论】:

【参考方案1】:

是的,您可以构建这样的工具。一种方法是用您选择的语言编写一个程序来生成 JCL。另一种方法是创建一个编目或流内过程来执行卸载和加载实用程序,然后执行将表作为参数提供的过程。

如果您想变得更有趣,您可以编写一个程序来读取 DB2 目录以获取您的表列表并为您编写卸载和加载 JCL。

【讨论】:

谢谢@cschneid!我们使用 Cobol,并且我们有用于 JCL 的程序。使用 Cobol 获取表列表,然后多次执行单个 proc 听起来是个好主意。有没有办法可以使用我创建的表列表并循环访问它来多次调用相同的卸载过程? JCL 和过程中是否可能出现循环?谢谢 @user3489502 JCL 没有循环功能。当我过去做过这种事情时,我编写了 proc,然后编写程序来生成每个步骤以使用正确的参数执行 proc。请注意将步骤数限制为不超过 255,超过该数量不能在单个作业中执行。 谢谢。我读了一点,并考虑使用 REXX 进行循环。我会看看我能找到什么

以上是关于自动卸载/加载 DB2 数据库所有表的工具的主要内容,如果未能解决你的问题,请参考以下文章

如何统计一个DB2数据库里所有表一共的记录条数?

db2如何实现用一张表的某个字段更新另一张表的相应字段。

如何在卸载作业中为分隔符编写 DB2 SELECT 语句

SQLAlchemy - 从自动加载表的内部连接映射列的子集

linux 卸载数据库

自己开发DB2工具 (10)