Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 跨不同的数据库和子网复制DB2模式_Bash_Shell_Db2 - Fatal编程技术网

Bash 跨不同的数据库和子网复制DB2模式

Bash 跨不同的数据库和子网复制DB2模式,bash,shell,db2,Bash,Shell,Db2,我想要一种更好的方法,从一个生产数据库模式复制所有表及其数据,并使用bash卸载和加载,将其放入不同子网中不同数据库上的dev数据库模式中。 dev数据库上的模式名称是不同的,并且可以不同,这一点很重要。 两个模式的表结构相同,只有数据库名称、模式名称和数据发生了更改 解决方案需要最少的手动操作,这一点很重要。可以手动复制文件,但不能通过编辑文件内容来更改数据,除非可以编写脚本自动执行此操作 目前,我们为每个表分别运行一系列非常长的脚本化导出到ixf LOB,然后是一系列非常长的精心放置的脚本化

我想要一种更好的方法,从一个生产数据库模式复制所有表及其数据,并使用bash卸载和加载,将其放入不同子网中不同数据库上的dev数据库模式中。 dev数据库上的模式名称是不同的,并且可以不同,这一点很重要。 两个模式的表结构相同,只有数据库名称、模式名称和数据发生了更改

解决方案需要最少的手动操作,这一点很重要。可以手动复制文件,但不能通过编辑文件内容来更改数据,除非可以编写脚本自动执行此操作

目前,我们为每个表分别运行一系列非常长的脚本化导出到ixf LOB,然后是一系列非常长的精心放置的脚本化加载,小心地按顺序加载数据,先加载父级,再加载子级

卸载示例:

export to CLIENT.ixf of ixf lobs to $LOCATION lobfile CLIENT_lobs modified by lobsinfile   select * from CLIENT;
load from CLIENT.ixf of ixf lobs from $LOCATION modified by lobsinfile replace into CLIENT statistics no copy no  indexing mode autoselect allow no access check pending cascade deferred;
加载示例:

export to CLIENT.ixf of ixf lobs to $LOCATION lobfile CLIENT_lobs modified by lobsinfile   select * from CLIENT;
load from CLIENT.ixf of ixf lobs from $LOCATION modified by lobsinfile replace into CLIENT statistics no copy no  indexing mode autoselect allow no access check pending cascade deferred;
我已经研究了db2move,但找不到如何在加载期间指定数据库和模式名称,因为它似乎只在卸载/导出中受支持


db2look看起来很有希望,但它是否也会导出数据,还是只导出表名?

您对“总体更好的方式”的定义是什么?您当前的解决方案有哪些缺陷?将生产数据复制到非产品环境的真正动机是什么?将生产数据复制到开发环境主要用于帮助识别和修复用户错误。总的来说,更好的方法是更简单或更干净的解决方案。也许有一个db2工具已经做到了这一点?理想情况下,我不希望每次添加新表时都必须更改脚本。