源数据库非常大。目标数据库不会自动增长。他们在不同的机器上。
我来自MS SQL Server,MySQL背景和IDS11似乎过于复杂(我确信,有充分的理由)。
答案 0 :(得分:2)
将数据从一台服务器移动到另一台服务器的一种方法是使用dbexport命令备份数据库。
然后在将备份文件复制到目标服务器之后运行dbimport命令。
要创建新数据库,您需要使用onmonitor工具为新数据库创建DBSpace,此时您可以使用其他服务器中的现有文件。
然后,您需要使用dbaccess工具在目标服务器上创建数据库。 dbaccess工具有一个数据库选项,允许您创建数据库。创建数据库时,您可以指定要使用的DBSpace。
源数据库可能由许多块组成,您还需要将这些块复制并附加到新数据库。
答案 1 :(得分:2)
最简单的方法是dbexport / dbimport,正如其他人提到的那样。
最快的方法是使用onpload,即High Performance Loader。如果你有大量的数据,但不是一个荒谬的数量的表,这绝对值得追求。在IIUG站点上有一些零碎的部分可能有助于编写HPL脚本以生成您需要的所有配置。
答案 2 :(得分:2)
你有几个选择
的dbexport / dbimport
onunload的/ onload事件
HPL(高性能加载器)选项。
我个人使用onunload / onload和dbexport / dbimport。我没有使用过HPL。我正在使用IDS 10。
onunload / onload IBM docs
这是一个从文档开始的好地方 - > Migration of Data Between Database Servers
答案 3 :(得分:1)
因为使用informix,您曾经能够指定用于表的DBSpace(甚至可能在alter table中?)。
检查 - dbaccess工具 - 有一个导出命令 将数据库置于静默模式或关闭,复制数据库空间,然后附加表,告诉它指向新的数据库空间文件。 (dbspaces工具看起来很值得......我手边有这些手册。它们是9.2,但它不应该有太多变化)。
答案 4 :(得分:1)
如果两台机器使用相同版本的IDS,那么另一种选择是使用ontape在一台机器上备份一台机器并在另一台机器上恢复。您可以使用STDIO选项,然后将备份流式传输到另一台可以从STDIO恢复的计算机上。
来自“高可用性和分发的数据复制”红皮书:
ontape -s -L 0 -F | rsh secondary_server "ontape –p"
您还可以在主机上创建无密码的ssh连接,并以更安全的方式传输。