IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration PostgreSQL Discussion :

Migration de base


Sujet :

Administration PostgreSQL

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 24
    Points : 19
    Points
    19
    Par défaut Migration de base
    Bonjour,

    je cherche à faire une copie d'une base de données d'un serveur sur un autre serveur.
    La base d'origine est codée en UTF-8 sur postresql version 8.21, serveur Debian

    la base d'arrivée est sous un serveur red hat, postgreSQL version 7.3.

    J'ai un dump obtenu avec la commande pg_dump sur le premier serveur, et que je veux déployer sur le second

    Après avoir créée la base :
    createdb nom_base

    j'essaie de la déployer avec pg restore
    et j'obtiens le message d'erreur suivant.
    pg_restore: [archiver] unsupported version (1.10) in file header


    Dans un premier temps j'ai pensé que ça venait des version de PostreSQL, mais il semble que ça vienne de l'encodage de la base.
    Sur le second serveur une base est par défaut crée en SQL_ASCII

    J'ai donc essayé de créer la base en forçant l'encodage :
    createdb -E 'UTF-8' nom_base

    mais la base se retrouve en unicode et non pas en UTF-8 d'où toujours le même message d'erreur.

    Bref, quelqu'un aurait -il une idée pour faire une copie de la base du premier serveur sur le second et résoudre mon problème d'encodage ?

    Merci par avance.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    La base d'origine est codée en UTF-8 sur postresql version 8.21, serveur Debian

    la base d'arrivée est sous un serveur red hat, postgreSQL version 7.3.
    Il s'agit donc de descendre de version, c'est plutôt rare, surtout vers une version qui a 7 ans d'âge. Il faut s'attendre à des problèmes.
    Quoiqu'il en soit, pour avoir un dump compatible, la première chose à faire serait d'utiliser le pg_dump version 7.3 connecté à la base 8.x. C'est toujours ce qui est conseillé dans les migrations de version.
    Si ça ne marche pas, il est toujours possible de faire un dump constitué purement de commandes SQL c'est-à-dire sans l'option -Ft ni -Fc, puis modifier le fichier obtenu dans un éditeur de texte pour rectifier ce qui ne passe pas, c'est-à-dire les syntaxes ou fonctionnalités de la 8.x non supportées par la 7.3

    Pour ce qui concerne l'encodage, il n'y a pas de différence entre UNICODE et UTF8 dans le contexte de postgresql. En fait UNICODE est un terme impropre pour un encodage, ça été rectifié vers la 8.1 ou 8.2 pour utiliser UTF8 à la place qui est le terme correct, et l'ancien nom UNICODE est toujours accepté par souci de compatiblité, mais les deux sont synonymes et font exactement la même chose.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2009
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Bonjour,
    merci pour votre réponse.

    Je ne suis pas du tout administrateur système mais développeur donc je ne sais pas trop comment appeler la bonne version de pg_dump.

    Est-ce que vous pourriez me renseigner sur la marche à suivre ?

    Après au vu de la taille de la base je doute de pouvoir la modifier avec un éditeur de texte.


    Au final, est-ce que ça ne serait pas plus simple de faire une migration de postgreSQl de la version 7.XXX à la version 8.XXX. Sachant qu'il y a de nombreuses bases qui se trouvent déjà sous le serveur sur cette version.

    Est-ce que vous pourriez m'indiquer également comment faire cela ?

    merci par avance.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Au final, est-ce que ça ne serait pas plus simple de faire une migration de postgreSQl de la version 7.XXX à la version 8.XXX.
    Comme la base source est en 8.x d'après le 1er message, j'imagine qu'il s'agit d'installer un serveur pg 8.X sur la machine cible qui a déjà un serveur 7.3 et de réimporter la base source telle quelle.
    Sinon je ne comprends pas la question.
    En tout cas oui c'est plus simple, il suffit de compiler une version 8.x sur la machine cible et de la faire tourner sur un port différent de la 7.3, ce qui peut se faire en quelques minutes si tout se passe bien en suivant les instructions du fichier INSTALL.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/04/2006, 17h44
  2. migration de base access vers postgres
    Par greg_ggl dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 09/03/2006, 10h33
  3. Réponses: 4
    Dernier message: 06/03/2006, 15h22
  4. Migration de Base de données SQLServer -> Oracle
    Par karamazov994 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/07/2005, 14h30
  5. migration de bases access vers postgresql
    Par passie dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 04/07/2005, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo