Присоединение файлов Informix .dat и .idx

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

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

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

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

Пакеты Java
Пакеты Java
Пакет java - это группа классов, интерфейсов и подпакетов схожего типа. Думайте об этом как о папке в каталоге файлов. Мы используем пакеты, чтобы...
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
0
5 750
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

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

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

пока нам известны такие инструменты, как dbexport и dbimport, которые будут извлекать данные из текущей базы данных, но мы также пытаемся использовать этот альтернативный путь, чтобы увидеть, сможем ли мы запустить тестовую базу данных и запустить ее быстрее

Jimmy Chandra 22.09.2008 11:33

С помощью Informix вы можете копировать файлы данных, если не используете типы SQL FLOAT или SMALLFLOAT (C double и float соответственно). Эти типы хранятся в машинно-зависимом формате; все другие типы (включая DECIMAL) не зависят от архитектуры.

Jonathan Leffler 24.11.2008 02:00
Ответ принят как подходящий

Вы задали довольно сложный вопрос, даже не осознавая этого. Informix спроектирован как общий движок базы данных, что означает, что все ресурсы, доступные экземпляру, доступны каждой базе данных в этом экземпляре. Это означает, что несколько баз данных могут хранить данные в любом заданном dbspace, .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

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

Файлы .dat и .idx связаны с C-ISAM, или, если они организованы в каталог с именем dbase.dbs (где dbase - это имя вашей базы данных), файлы .dat и .idx связаны с Informix Standard Engine, он же 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.

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

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

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

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

Привет, я работаю над проектом, который требует переноса данных из файлов .DAT, и я признаю, что подобные вещи выходят за рамки моей компетенции. Есть интерес к частному консультированию?

BakerStreetSystems 05.03.2020 07:03

@BakerStreetSystems, я отправил вам электронное письмо, давайте обсудим ваши потребности.

Frank R. 06.03.2020 18:52

Другие вопросы по теме