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

jsed 发布于 2018-04-28 administration 最后更新 2018-04-28 07:14 152 浏览

源数据库非常大。目标数据库不会自动增长。他们在不同的机器上。 我来自MS SQL Server,MySQL背景和IDS11似乎过于复杂(我确信,有很好的理由)。

已邀请:

vet

赞同来自:

你有使用出口工具吗?如果你首先将数据库置于静态模式,然后实际上可以复制DBSpaces(我认为dbspace工具已经过去几年了),那么以前有一种方法。 因为使用informix,您可以指定用于该表的DBSpaces(可能甚至在alter table中?)。 检查 - dbaccess工具 - 有一个导出命令。
将数据库置于quiesent模式或关闭,复制数据库空间,然后附加表,告诉它指向新的数据库空间文件。 (数据库空间工具可能值得一看。我有这里的手册,他们是9.2,但它不应该有太多变化)。

snon

赞同来自:

将数据从一台服务器移动到另一台服务器的一种方法是使用dbexport命令备份数据库。 然后,在将备份文件复制到目标服务器之后,运行dbimport命令。 要创建新数据库,您需要使用onmonitor工具为新数据库创建DBSpace,此时可以使用其他服务器中的现有文件。 然后您需要使用dbaccess工具在目标服务器上创建数据库。 dbaccess工具有一个数据库选项,允许您创建数据库。创建数据库时,您可以指定要使用的DBSpace。 源数据库可能由许多块组成,您还需要复制并附加到新数据库。

ket

赞同来自:

正如其他人所说的,最简单的方法是dbexport/dbimport。 最快的方法是使用onpload,即高性能加载程序。如果你有很多数据,但不是可笑的桌子数量,这绝对值得追求。在IIUG网站上有一些小部件可能有助于编写HPL脚本来生成所需的所有配置。

svero

赞同来自:

你有几个选择。
点击 的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的好地方
  • sit_et

    赞同来自:

    如果两台机器使用相同版本的IDS,则另一种选择是使用ontape在一台机器上备份一台机器,并在另一台机器上进行恢复。您可以使用STDIO选项,然后将备份传输到另一台机器上,其中恢复只需从STDIO恢复即可。 从“用于高可用性和分发的数据复制”红皮书:

    ontape -s -L 0 -F | rsh secondary_server "ontape –p"
    
    您还可以创建一个无密码的SSH主机连接,并以更安全的方式进行传输。