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 :

Comment exporter-importer une très grosse table d'un serveur à un autre


Sujet :

Administration PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut Comment exporter-importer une très grosse table d'un serveur à un autre
    Bonjour,

    Je cherche à copier une table d'un schéma à un autre, les deux bases étant sur des serveurs différents.
    J'ai donc dans un premier temps utilisé la fonction "sauvegarder" de pgAdmin III, qui m'a donné un fichier .backup de 1,35 Go.
    Lorsque je me connecte sur le second serveur, dans la table vide prête à accueillir les données je tente un "restaurer" en choisissant l'énorme fichier backup, et au bout de 2 h j'obtiens un plantage de mémoire qui met fin au processus.

    Aussi je me demande, est-ce bien de cette manière qu'il faut procéder pour cet objectif, ou pouvez-vous m'orienter vers une autre démarche ?
    J'ai bien vu la doc sur la sauvegarde SQL, mais si je comprends bien le pg_dump exporte toute une base, et moi je ne souhaite qu'une certaine table de cette base.

    Merci d'avance.

  2. #2
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Bonjour,

    Non, pg_dump vous permet de n'exporter que la table qui vous intéresse avec l'option -t (ou --table).
    Vous trouverez la documentation ici: https://www.postgresql.org/docs/9.6/...pp-pgdump.html

    Bonne fin de journée,

    Arkhena

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Effectivement j'étais passé à travers cette option, merci.
    Du coup vaut-il mieux saisir ma commande dump dans la console PSQL ou plutôt en commande DOS en pointant vers pg_dump.exe ?

  4. #4
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Bonjour,

    Je ne pense pas que vous puissiez lancer un dump avec psql (mais je peux me tromper). [Edit]Vous parlez peut-être de la commande *\c qui fait un COPY des données dans un fichier ? Dans ce cas, il me semble que seulement les données sont copiées...[/Edit]
    De manière générale, j'utilise toujours l'outil original pour faire une action. Je conseille donc pg_dump pour faire un dump...
    Après, chacun fait comme il veut.

    Bonne journée,

    Arkhena

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    581
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 581
    Par défaut
    Bonjour,

    L'étape de l'export par pg_dump s'est bien passée, j'obtiens un fichier SQL qui me convient de cette façon :
    "C:\Program Files (x86)\pgAdmin III\1.22\pg_dump.exe" -h mon_serveur_1 -p 5432 -U user -W -Fc -t "mon_schema.ma_table" "ma_base" > "C:\dump.sql"

    En revanche, lorsque je tente l'import sur mon serveur 2 par pg_restore cela n'aboutit pas, la table n'est pas créé, et j'obtiens la suite d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    pg_restore : implied data-only restore
    pg_restore : [archiver (db)] Error while INITIALIZING:
    pg_restore : [archiver (db)] coult not execute query: ERREUR; paramètre de configuration "lock_timeout" non reconnu
    Command was : SET lock_timeout = 0;
    pg_restore : [archiver (db)] coult not execute query: ERREUR; paramètre de configuration "row_security" non reconnu
    Command was : SET row_security = off;
    Voici ma commande :
    "C:\Program Files (x86)\pgAdmin III\1.22\pg_restore.exe" -h mon_serveur_2 -p 5432 -U user -W -d "ma_base" -t "mon_schema.ma_table" -v "C:\dump.sql"

    J'ai vu que la version PostgreSQL du serveur 1 (dump) est 9.4.5, alors que celle du serveur 2 (restore) est 9.1.10.

    J'imagine que le problème vient de là, mais une idée pour l'éviter ?

  6. #6
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Citation Envoyé par nicolas2603 Voir le message
    Bonjour,
    J'ai vu que la version PostgreSQL du serveur 1 (dump) est 9.4.5, alors que celle du serveur 2 (restore) est 9.1.10.

    J'imagine que le problème vient de là, mais une idée pour l'éviter ?
    Les solutions sont simples :
    1- Upgrader le serveur 2. C'est la meilleure solution, d'autant plus que la version 9.1 n'est plus maintenue.
    2- Installer la version 9.1 sur le serveur 1 et utiliser le pg_dump 9.1 pour exporter les données de la base en 9.5.

    Cordialement,

    Arkhena

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment exporter/importer une OU dans l'AD avec LDIFDE
    Par maikess dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 19/06/2019, 11h19
  2. Réponses: 6
    Dernier message: 01/09/2015, 14h11
  3. [2005] Vider une très grosse table
    Par a4i.ludo dans le forum MS SQL Server
    Réponses: 24
    Dernier message: 12/06/2013, 11h28
  4. Comment exporter / importer une table postgres
    Par Elois dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 01/03/2005, 18h22

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