Вложение файлов Informix .dat и .idx - PullRequest
1 голос
/ 22 сентября 2008

Мы пытаемся дублировать одну из наших баз данных informix на тестовом сервере, но без собственного опыта Informix мы можем только догадываться, что нам нужно делать. Я сам изучаю этот материал на лету, и нигде не достиг уровня, необходимого для эффективной или даже неэффективной работы Informix. Так или иначе ... Нам удалось скопировать файлы .dat и .idx с живого сервера куда-нибудь. Установил Linux и последнюю версию Informix Dynamic Server на нем и запустил его.

Теперь, что нам делать с файлами .dat и idx с живого сервера? Копируем ли мы его куда-нибудь, и он распознает это автоматически?

Или есть эквивалентный способ, как вы можете присоединить БД из MS SQLServer для регистрации файлов базы данных в новой базе данных?

На моем конце веревки ...

Ответы [ 4 ]

1 голос
/ 30 мая 2016

Эти файлы данных Informix-SE (.DAT) и связанные с ними индексные файлы (.IDX) бесполезны, если у вас нет также всех связанных файлов каталога, таких как SYSTABLES.DAT SYSTABLES.IDX, SYSCOLUMNS, SYSINDEXES и т. Д.

Кроме того, вам также следует позаботиться о том, какая версия Informix-SE их создала, поскольку у некоторых размер файла индекса 2K или 4K.

Ваш лучший подход - получить все файлы .DAT и .IDX из исходной базы данных, а также правильный стандартный механизм, установленный на том же оборудовании и операционной системе, из которой он получен.

Короче говоря, на исходном компьютере запустите "dbexport", чтобы выгрузить все данные в файлы ascii, и запустите "dbschema", чтобы сгенерировать все схемы таблиц и индексы. Также не мешало бы запустить bcheck для всех файлов перед их выгрузкой в ​​плоские файлы ascii.

1 голос
/ 22 сентября 2008

Вы задали довольно сложный вопрос, не осознавая этого. Informix спроектирован как ядро ​​базы данных с общим доступом, что означает, что все ресурсы, доступные для экземпляра, доступны для каждой базы данных в этом экземпляре. Это означает, что в вашем случае несколько баз данных могут хранить данные в любом заданном пространстве базы данных, .dat или .idx. Большинство администраторов баз данных знают лучше, чем делать это, но об этом нужно знать. Зная это, вы теперь знаете, что файлы .dat и .idx не принадлежат базе данных, а принадлежат экземпляру. Пространства баз данных и файлы были созданы для хранения данных вашей базы данных, но технически они относятся к экземпляру. Стоит отметить, что файлы .dat и .idx известны базе данных под логическим именем пространства баз данных.

Вооружившись этой справочной информацией и предполагая, что серверы производства и разработки работают под одной и той же ОС и что ваше оборудование относительно одинаковое, а не комбинация PARISC, Itanium или x86 / x64, я выброшу пару вариантов для вас.

  1. Создайте необходимые вам пространства баз данных в новом экземпляре и используйте onunload и onload скопировать базу данных из производства в разработку.
  2. Используйте ontape или onbar для резервного копирования всего производственного экземпляра и восстановите его на своем экземпляре разработки.

Вариант 1 требует, чтобы вы знали, как называются пространства баз данных и насколько они велики. Используйте onstat -d в производственном экземпляре, чтобы выяснить это. Кстати, числа, перечисленные в onstat -d, указаны на страницах, я считаю, что Linux - это страница 2K.

Вариант 2 просто требует, чтобы пути к файлам данных были одинаковыми на обоих серверах. Это означает, что ROOTDBS должен быть одинаковым в обоих случаях. Это можно найти, выполнив onstat -c | grep ROOTDBS

Есть многое, что было упущено, но я надеюсь, что это даст вам информацию, необходимую для продвижения вперед с вашей задачей.

1 голос
/ 25 сентября 2008

Файлы .dat и .idx связаны с C-ISAM, или, при организации в каталоге с именем dbase.dbs (где dbase - имя вашей базы данных), файлы .dat и .idx связаны с Informix. Стандартный двигатель, он же Informix SE. SE использует C-ISAM для управления своим хранилищем. SE несколько отличается от (и намного проще) Informix Dynamic Server (IDS). Не исключено, что файлы .dat и .idx связаны с IDS; это просто крайне маловероятно.

Судя по имеющейся информации, ваш производственный сервер работает под управлением SE. Чтобы получить данные из SE в IDS, вы, вероятно, захотите использовать DB-Export в конце SE и DB-Import в конце Linux / IDS. Конечно, это самый простой способ сделать это.

Существуют и другие возможные решения - одним из таких является база данных C-ISAM, - но они дороже и, вероятно, не гарантированы. Существуют и другие возможные решения для загрузки, такие как HPL (высокопроизводительный загрузчик).

Для получения дополнительной информации об Informix либо используйте различные веб-сайты, на которые уже есть ссылки (http://www.informix.com - это ссылка на раздел Informix на веб-сайте IBM), либо используйте Международная группа пользователей Informix (IIUG) веб-сайт. Доступны списки рассылки (которые требуют вашего участия, но членство бесплатно) для подробного обсуждения Informix.

0 голосов
/ 22 сентября 2008

У меня нет никаких конкретных советов по Informix, но для подобных ситуаций вы обычно можете найти ответ, посмотрев, как перемещать базу данных (обычная задача администратора, и обычно хорошо описанная в руководстве), и просто пропустив шаги, которые удалили бы старую базу данных.

Кроме того, будьте осторожны с проблемами, вызванными различными архитектурами системы; некоторые базы данных выдаются со сбоем, если вы переместите их из системы с прямым порядком байтов (например, Solaris) в систему с прямым порядком байтов (например, x86 Linux). Опять же, раздел руководства по перемещению базы данных будет охватывать любые дополнительные необходимые шаги. 1003 *

...