1 votes

Comment migrer les données d'une base de données Firebird vers PostGreSQL sous Linux ?

Existe-t-il de bons outils pour migrer des bases de données firebird existantes vers PostgreSQL pour les systèmes Linux ?

J'ai regardé : FBexport qui peut être utilisé pour vider les données en tant qu'instructions d'insertion, mais il est principalement écrit pour exporter/importer d'un db firebird à un autre, pas comme un outil de migration.

Il y a aussi : Outil Win32 Firebird vers PostgreSQL mais c'est seulement pour les systèmes win32.

Existe-t-il un bon outil pour faire cela ? Ou dois-je simplement créer le mien ?

2voto

dindenver Points 1600

Lorsque j'ai eu besoin de déplacer des données compliquées d'une base de données MySQL vers une base de données PostgreSQL, j'ai écrit un script en perl qui se connectait à la base de données MySQL, sélectionnait les données, effectuait les conversions nécessaires (comme tinyint(1) en booléen et autoincrément en séquence, etc. Pour les conversions plus simples, j'ai fait un mysql_dump vers un fichier d'instructions d'insertion comme le fera votre FBexport, puis j'ai corrigé ce qui devait l'être avec un sed script. Ce n'est pas automatisé et parfait, mais c'était rapide et suffisamment bon.

0 votes

L'"export-INSERTS-vers-le-texte-et-sed/awk-everthing" est à peu près une méthode universelle pour déplacer des données quand on a le dos au mur. Avec un peu d'édition judicieuse de script, ça marche tout simplement(tm). +1 pour une réponse directe avec une solution bien connue.

1voto

reconbot Points 1670

Regarde ça :
http://www.sqlmanager.net/en/products/postgresql/datapump

Je ne l'ai jamais utilisé, donc je ne peux pas dire s'il est bon ou pas.

0 votes

Merci, mais malheureusement, il s'agit d'une application Windows commerciale, et je cherche un outil Linux, de préférence open source.

0voto

Tom Feiner Points 16168

D'après les réponses que j'ai reçues ici, je comprends qu'il n'existe pas d'outil de migration spécifique pour Firebird -> PostgreSQL sur Linux.

Je suppose que je vais devoir l'écrire moi-même.

L'enjeu majeur ici est d'optimiser les performances d'une telle migration.

J'ai trouvé une excellente ressource dans le chapitre 14 de la documentation postgreSQL qui explique quelles sont les meilleures façons d'insérer de grandes quantités de données dans postgreSQL, par exemple :

  • Désactiver l'auto commits.
  • Utilisation de COPY au lieu d'une série d'instructions INSERT.
  • Suppression des index (ou plus important, ne les créer qu'à la fin des insertions de données).
  • Divers réglages de la configuration de la mémoire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X