首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Informix专用表导出

Informix专用表导出
EN

Database Administration用户
提问于 2016-08-16 11:09:54
回答 1查看 1.6K关注 0票数 1

我正忙于使用dbexport和dbimport实用程序在informix数据库之间迁移数据。

我知道在PostgreSQL中,我可以使用以下方法

代码语言:javascript
复制
pg_dump –a –t table database > /destination/table.sql

然后,我可以使用

代码语言:javascript
复制
psql database < /destination/table.sql

informix dbexport和import实用程序是否具有等效性?

EN

回答 1

Database Administration用户

发布于 2016-08-16 15:57:46

dbimport工具假设它必须创建数据库(并且不能使用现有的数据库)。没有像您尝试的那样迁移数据的实用程序。

你有多种选择。一种是使用一种复制方案(ER、HDR、RSS等)来创建原始数据库的克隆。另一种方法是自己创建相关的SQL,并通过DB-Access或其他工具运行它。您可能会发现外部表或HPL与在加载中获得良好性能相关。

如何处理目标数据库中已经存在的数据?在导入新文件之前删除它?保存它,以防新的导入不干净?您是否有约束--主键、外键--会使任何数据加载复杂化?是否需要在所有加载发生时推迟这些约束?您想从头开始重建这些表吗?

目前正在讨论的数据库有多大?兆字节,千兆字节,兆字节,比字节?几张桌子?最大的表--行大小、列数、行数有多大?

顺便说一句,如果PostgreSQL工具简单地将数据从一个表导出并导入到另一个表中,那么这可以用我的SQLCMD程序来完成--这个程序早于微软的约翰尼--最近是一个同名的程序。SQLCMD有两个别名,sqlunloadsqlreload。你可以用:

代码语言:javascript
复制
sqlunload -d old_database -t old_table |
sqlreload -d new_database -t new_table

当然,您可以将数据保存在文件中:

代码语言:javascript
复制
sqlunload -d old_database -t old_table -o old_table.unl
sqlreload -d new_database -t new_table -i old_table.unl

并且可以根据需要在卸载和重新加载操作之间进行文件传输等。如果需要在加载之前截断新表,这是一个单独的操作:

代码语言:javascript
复制
sqlcmd -d new_database -e 'truncate table new_table'

诸若此类。默认情况下,sqlreload (您也可以使用sqlcmd -R …sqlcmd -U …用于sqlunload)将批处理加载到1024行的子事务,但您当然可以配置它。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/146942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档