我正忙于使用dbexport和dbimport实用程序在informix数据库之间迁移数据。
我知道在PostgreSQL中,我可以使用以下方法
pg_dump –a –t table database > /destination/table.sql然后,我可以使用
psql database < /destination/table.sqlinformix dbexport和import实用程序是否具有等效性?
发布于 2016-08-16 15:57:46
dbimport工具假设它必须创建数据库(并且不能使用现有的数据库)。没有像您尝试的那样迁移数据的实用程序。
你有多种选择。一种是使用一种复制方案(ER、HDR、RSS等)来创建原始数据库的克隆。另一种方法是自己创建相关的SQL,并通过DB-Access或其他工具运行它。您可能会发现外部表或HPL与在加载中获得良好性能相关。
如何处理目标数据库中已经存在的数据?在导入新文件之前删除它?保存它,以防新的导入不干净?您是否有约束--主键、外键--会使任何数据加载复杂化?是否需要在所有加载发生时推迟这些约束?您想从头开始重建这些表吗?
目前正在讨论的数据库有多大?兆字节,千兆字节,兆字节,比字节?几张桌子?最大的表--行大小、列数、行数有多大?
顺便说一句,如果PostgreSQL工具简单地将数据从一个表导出并导入到另一个表中,那么这可以用我的SQLCMD程序来完成--这个程序早于微软的约翰尼--最近是一个同名的程序。SQLCMD有两个别名,sqlunload和sqlreload。你可以用:
sqlunload -d old_database -t old_table |
sqlreload -d new_database -t new_table当然,您可以将数据保存在文件中:
sqlunload -d old_database -t old_table -o old_table.unl
sqlreload -d new_database -t new_table -i old_table.unl并且可以根据需要在卸载和重新加载操作之间进行文件传输等。如果需要在加载之前截断新表,这是一个单独的操作:
sqlcmd -d new_database -e 'truncate table new_table'诸若此类。默认情况下,sqlreload (您也可以使用sqlcmd -R …,sqlcmd -U …用于sqlunload)将批处理加载到1024行的子事务,但您当然可以配置它。
https://dba.stackexchange.com/questions/146942
复制相似问题