Назад | Перейти на главную страницу

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

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

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

Есть также: Инструмент Firebird для PostgreSQL Win32, но это только для систем win32.

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

Когда мне нужно было переместить некоторые сложные данные из базы данных 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.
  • Удаление индексов (или, что более важно, создавать их только в конце вставки данных).
  • Различные настройки конфигурации памяти.