Как перенести данные из базы данных Firebird в PostGreSQL в Linux

Есть ли хорошие инструменты для переноса существующих баз данных Firebird в PostgreSQL для систем Linux?

Я посмотрел на: FBexport, который можно использовать для вывода данных в виде операторов вставки, но в основном он написан для экспорта / импорта из одной базы данных Firebird в другую, а не в качестве инструмента миграции.

Также есть: Firebird to PostgreSQL Win32, но только для систем win32.

Есть ли хороший инструмент для этого? Или я должен просто свернуть свой?

4 ответа

Решение

Когда мне нужно было переместить некоторые сложные данные из базы данных MySQL в базу данных PostgreSQL, я написал сценарий perl, который подключился к базе данных MySQL, выбрал данные и сделал все необходимые преобразования (например, tinyint(1) для логического значения и автоинкремент к последовательности). и т. д.) и вставил его в базу данных PostgreSQL. Для более простых преобразований я сделал mysql_dump для файла операторов вставки, как это сделает ваш FBexport, затем исправил то, что нужно было исправить с помощью сценария sed. Это не автоматизировано и не идеально, но это было быстро и достаточно хорошо.

Проверь это:
http://www.sqlmanager.net/en/products/postgresql/datapump

Я никогда не использовал его, поэтому не могу сказать, хорошо это или нет.

Вы можете использовать FullConverter, но я не думаю, что какой-либо коммерческий инструмент справится с этим одним щелчком мыши. вам нужно будет проверить ограничения, индексы и автоинкременты.

Вы также можете попробовать написать свой собственный скрипт bash/perl/python/ любой другой для выполнения этой работы.

Из ответов, которые я получил здесь, я понимаю, что нет специального инструмента миграции для Firebird -> PostgreSQL в Linux.

Я думаю, мне придется написать это самому.

Основной проблемой здесь является оптимизация производительности такой миграции.

Я нашел отличный ресурс в главе 14 документации postgreSQL, которая объясняет, как лучше всего вставить большие объемы данных в postgreSQL, например:

  • Отключение автоматической фиксации.
  • Использование COPY вместо серии операторов INSERT.
  • Удаление индексов (или, что более важно, только создавать их в конце вставки данных).
  • Различные настройки конфигурации памяти.
Другие вопросы по тегам