将数据库从一个Informix IDS 11服务器复制到另一个服务器的最简单方法是什么

时间:2008-09-09 11:46:11

标签: migration rdbms informix administration

源数据库非常大。目标数据库不会自动增长。他们在不同的机器上。

我来自MS SQL Server,MySQL背景和IDS11似乎过于复杂(我确信,有充分的理由)。

5 个答案:

答案 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

  • 以页面大小块的形式将原始数据库备份到磁盘或磁带
  • 更快(特别是如果你去磁盘)
  • 如果数据库服务器位于不同的操作系统或硬件上,或者它们只是具有不同的页面大小,则会出现问题。

    dbexport / dbimport IBM docs
  • 以分隔的ascii文件备份数据库
  • 编写数据库的ascii模式,包括所有用户,表,视图,索引等。数据库结构的所有内容都集成在一个巨大的纯文本文件中。
  • 也为数据库的每个表分隔纯文本文件
  • 没那么快
  • 在任何具有错误数据的表上进行dbimport问题,任何语法错误的视图等等(这可能是一件好事,一个识别和清理的机会)
  • 当你跑进商店购买冰淇淋时,不要将这个带子放在你车的前座上(或者你会得到新闻)。 同时阅读......不是一种非常安全的数据移动方式。 :)
  • 限制: 需要对源数据库的独占访问。

    这是一个从文档开始的好地方 - > Migration of Data Between Database Servers

  • 答案 3 :(得分:1)

    你使用过导出工具吗?如果您首先将数据库放入静止模式然后您可以实际复制DBSpaces(dbspaces工具,我认为......已经有几年了)。以前有一种方法。

    因为使用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连接,并以更安全的方式传输。