我在ubuntu环境中有一个DB2数据库。包含所有表的空数据库已存在。现在我想将1000个相应的* .ixf文件导入数据库。另外,每个文件都有一个* .msg文件。
有人知道怎么做吗? 谢谢, Jassin
答案 0 :(得分:1)
出于速度原因,您不必使用导入,而是可以使用Db2加载实用程序。如果您已经知道文件很小并且有足够的事务日志记录容量,或者表存在而不是索引,并且您希望导入操作也创建索引,则仅使用import。
解决方案取决于您的脚本编写技能,以及您希望运行作业的频率。无论使用何种技术,您都需要知道哪个文件填充了哪个表。
Linux上的Db2可以通过shell脚本编程(例如,使用bash)。这是一项值得学习的技能。
您还可以使用perl,python或任何脚本语言编写此类内容的脚本。
最简单(也是最慢)的方法是使用Db2 LOAD实用程序来串行注入文件。
更复杂的方法包括并行使用Db2 LOAD实用程序,具体取决于您可用的核心数量和可用的I / O带宽。例如,如果您有32个内核,则可能有20个并发加载作业,每个作业都加载一个单独的表,其中子任务具有自己与数据库的连接。除非您的容器位于具有足够I / O带宽的SAN上,否则这种方法没有任何好处。
无论是串行还是并行加载,都应检查每个命令的退出代码,并从故障点重新启动,并验证加载的行数是否与每个IXF文件中的行(计算任何被拒绝的行)。
答案 1 :(得分:1)
你有一个文件吗?你有,然后你可以执行db2move导入或db2move加载,然后RDBMS将把所有这些数据放入数据库。
ixf文件包含表定义和数据。
msg文件包含有关导出时间的信息。执行db2move导入后,您将使用有关导入的信息重新生成这些文件。