我正在尝试将一个IBM DB2 UDB服务器中的特定模式的内容转储到sql文本文件中(很像mysql的mysqldump功能)。
我遇到了db2look,但它只转储了架构的结构(只有ddl,没有dml)。
那我怎么能完成我的事呢?
JRH。
答案 0 :(得分:10)
您正在寻找的是db2move命令。对于特定架构,您应该使用“sn”开关。
例如,导出数据:
db2move [your_db_name] EXPORT -sn [your_schema_name]
db2move有许多选项和开关可供选择,具体取决于您想要做什么。
如果db2move不完全符合您的需要,您可以查看Data Movement Options available in DB2的表格。
答案 1 :(得分:5)
您可以使用SQquirreL(一种用Java实现的SQL客户端)来实现此目的。在其“对象” - 树中,您将选择所有需要的表,并从上下文菜单中选择“脚本>创建数据脚本”。
答案 2 :(得分:2)
如果目标是将数据传输回另一个DB2数据库,则可以使用EXPORT
和相关的IMPORT
或LOAD
命令。
实际上,您可以根据SYSCAT.TABLES
导出强>
SELECT 'EXPORT TO /usr/data/SCHEMA/' || TABNAME || '.ixf OF IXF LOBS TO /usr/data/SCHEMA/lbos/ MODIFIED BY LOBSINFILE SELECT * FROM SCHEMA.' || TABNAME || ';'
FROM SYSCAT.TABLES
WHERE TABSCHEMA = 'SCHEMA'
ORDER BY TABNAME
导入强>
SELECT 'IMPORT FROM /usr/data/SCHEMA/' || TABNAME || '.ixf OF IXF LOBS FROM /usr/data/SCHEMA/lobs/ MODIFIED BY LOBSINFILE INSERT INTO SCHEMA.' || TABNAME || ';'
FROM SYSCAT.TABLES
WHERE TABSCHEMA = 'SCHEMA'
ORDER BY TABNAME
如果你想要实际的插入脚本,那么你可能需要使用第三方工具(我不知道DB2提供的工具,但我可能错了。)
答案 3 :(得分:1)
所有DDL备份的Db2架构:
我使用下面的命令,它为我导出所有DDL。
db2look -d CusDb -x -e -z CusSchema -o OutputFile
语法: db2look -d DbName -x -e -z SchemaName -o OutputFile_name
答案 4 :(得分:0)
对于输入,稍微调整以使用负载有助于避免行被拒绝。
db2 -x“SELECT”加载FROM / usr / data / SCHEMA /'|| TABNAME ||'.ixf OF IXF LOBS FROM / usr / data / SCHEMA / MODIFIED BY identityoverride INSERT INTO CFEXT。' || TABNAME ||';'FROM SYSCAT.TABLES WHERE TABSCHEMA ='CFEXT'ODER BY TABNAME“> /tmp/db2cfeimport.sql