banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Tue 20 August 2019 10:09

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Déplacer répertoire BDD PostGreSQL

Bonjour à tous,

Je suis sur Windows, et après quelques années de prises en main de PostGreSQL, mon répertoire de stockage de la BDD a pris beaucoup de poid.
Le dossier "C:\Program Files\PostgreSQL\9.3\data\base" fait maintenant plus de 100 Go, et comme je n'ai plus que 10 Go libre sur le disque, je souhaiterais le déplacer sur un autre disque.

Comme je n'ai jamais fait cette manip, je me permets de vous solliciter afin de ne pas faire de bêtise.

J'ai bien trouvé cet article, mais il concerne l'environnement Linux.

Pourriez-vous m'aider à trouver la méthode pour Windows ?

Merci à vous !


Sylvain M.

Hors ligne

 

#2 Tue 20 August 2019 10:14

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Déplacer répertoire BDD PostGreSQL

Je m'auto-répond, car je pense que je viens de trouver la solution ici :
https://www.developpez.net/forums/d8226 … sier-data/

- arrêter le service postgresql
- éditer le fichier postgresql.conf et changer l'entrée data_directory
- déplacer le répertoire en question vers son nouvel emplacement
- relancer le service postgresql


--> je vais tester et reviendrai ici si ça ne marche pas


Sylvain M.

Hors ligne

 

#3 Tue 20 August 2019 10:40

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Déplacer répertoire BDD PostGreSQL

J'aurai sans doute tenté avant votre réponse, mais je pose la question au cas où :
j'aimerais que les données soient déplacées sur mon serveur de données SIG, auquel j'accède avec ce chemin :
\\serveur-sig\data\..

Du coup, j'ai bien vu le problème des chemins d'accès dans postgresql.conf, qui doivent être écrits en doublant les antislash.
Ex. : data_directory='d:\\pgdata'

Dans le cas d'un dossier sur serveur, est-ce que l'écriture devra être "\\\\serveur-sig\\data\\.." ?


Sylvain M.

Hors ligne

 

#4 Tue 20 August 2019 10:43

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Déplacer répertoire BDD PostGreSQL

Bonjour,

Oui, le déplacement du répertoire data de pg marche bien (faites attention que le nouveau répertoire ait les mêmes droits que l'ancien).

Vous pouvez aussi faire ca depuis PG avec les tablespaces (https://www.postgresql.org/docs/12/mana … paces.html):
Le tablespace est l'espace de stockage de données, vu depuis PG. Par défaut, il y a un tablespace qui est le répertoire data.

Vous pouvez créer d'autres tablespaces:
• créer un répertoire qq part, avec les droits pour l'utilisateur postgres
• créer un tablespace PG vers ce répertoire : create tablespace nouvel_espace ...
• Modifier la BD pour utiliser ce tablespace: alter database ... set tablespace nouvel_espace

PG va alors déplacer les données de la BD vers ce répertoire.

Nicolas

Hors ligne

 

#5 Tue 20 August 2019 10:47

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1160

Re: Déplacer répertoire BDD PostGreSQL

Salut,

logiquement oui, il faudrait doubler tout les anti-slash.

Par contre, il est déconseillé d'utiliser un partage réseau
pour héberger le répertoire data.

Déplacez votre serveur PostgreSQL complétement sur votre serveur SIG
si c'est possible.

En ligne

 

#6 Tue 20 August 2019 10:49

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1160

Re: Déplacer répertoire BDD PostGreSQL

Les raisons d'éviter l’hébergement sur un partage SMB :

    * Performances catastrophiques
    * risque de perte de données/corruption.

En ligne

 

#7 Tue 20 August 2019 10:51

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Déplacer répertoire BDD PostGreSQL

Sylvain M. a écrit:

J'aurai sans doute tenté avant votre réponse, mais je pose la question au cas où :
j'aimerais que les données soient déplacées sur mon serveur de données SIG, auquel j'accède avec ce chemin :
\\serveur-sig\data\..

Du coup, j'ai bien vu le problème des chemins d'accès dans postgresql.conf, qui doivent être écrits en doublant les antislash.
Ex. : data_directory='d:\\pgdata'

Dans le cas d'un dossier sur serveur, est-ce que l'écriture devra être "\\\\serveur-sig\\data\\.." ?


Sur un disque distant, vous risquez d'avoir des (gros ?) pb de performance lors des écritures dans la base (et meme lors des select, pour charger les données en mémoire). A moins que vous n'ayez un réseau ultra rapide, style fibre 10GB ou plus, ou un stockage disque style nas, san

Pour des performance optimum, il faut que les données soient sur un disque accédé très rapidement depuis le serveur sur lequel est installé PG. Si les données entre le disque et le système doivent transiter par un réseau, il faut que celui-ci soit rapide.

Pour le montage du disque, le plus simple n'est il pas d'attribuer un lecteur au disque réseau, style z:\, et que ce lecteur soit visible depuis le serveur PG ?
(mes connaissances en windows sont très limitées...) 

Nicolas

Hors ligne

 

#8 Tue 20 August 2019 11:01

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Déplacer répertoire BDD PostGreSQL

tumasgiu a écrit:

Les raisons d'éviter l’hébergement sur un partage SMB :

    * Performances catastrophiques
    * risque de perte de données/corruption.


Salut tumasgiu,

Oui effectivement, je n'avais pas pensé à ces pb de corruption potentielle.

Nico

Hors ligne

 

#9 Tue 20 August 2019 11:50

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Déplacer répertoire BDD PostGreSQL

Bon, ben j'ai bien fait de poser la question !!!
(et heureusement que j'ai été interrompu par plusieurs coups de téléphone avant de faire la manip sur le serveur distant)

Je pense donc faire le choix d'ajouter un nouveau disque dédié sur mon PC Windows.

Déplacez votre serveur PostgreSQL complétement sur votre serveur SIG
si c'est possible.


Ça me plairait bien, mais mon "Serveur-SIG" est actuellement uniquement un "serveur de données", et n'a pas beaucoup de puissance... Je préfère utiliser mon PC qui est un peu plus puissant pour les traitements SIG.

N'hésitez pas à me signaler si vous voyez dans mes propos une incohérence, ou si vous avez d'autres suggestions !


Sylvain M.

Hors ligne

 

#10 Wed 18 September 2019 17:52

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Déplacer répertoire BDD PostGreSQL

Je me permets de relancer cet échange qui m'a déjà beaucoup appris (j'ai temporairement déplacé certaines données sur un nouveau tablespace).

Je n'ai pas encore mon nouveau disque dur afin de gagner en espace de stockage local, mais je viens d'apprendre que la maintenance informatique allait passer mon PC de Windows 7 à Windows 10 (mise à niveau ou réinstallation, je ne sais pas encore).

Du coup, le point qui m'inquiète le plus concerne les bases de données de mon serveur PostGre local.

Je pense que j'en profiterai pour installer une version plus récente de PostGreSQL (je suis en 9.3 et je passerais bien en 11.5, depuis ici)

Afin que je ne fasse pas de bêtise et comme la manip risque d'être assez longue vu le volume de données (100Go dans le dossier "base"), pouvez-vous me confirmer qu'un simple "pg_dumpall" sera suffisant ?
Pour sauvegarder:

Code:

$ pg_dumpall > db.out

Pour restaurer :

Code:

$ psql -f db.out template1

(si j'ai bien compris, le "template1" est bidon, car on ne spécifie pas de base de donnée particulière, toutes étant restaurées)

Pensez-vous à d'autres choses avant d'envisager cette mise à jour (voire réinstallation) du système ?

Merci pour vos conseils smile

Dernière modification par Sylvain M. (Wed 18 September 2019 17:53)


Sylvain M.

Hors ligne

 

#11 Wed 18 September 2019 17:56

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Déplacer répertoire BDD PostGreSQL

d'ailleurs, j'ai une petite incertitude de la syntaxe pour le "db.out", sachant qu'il sera sur un partage réseau (pas assez de place en local) :

Code:

\\\\serveur-sig\\data\\db.out
ou
\\serveur-sig\data\db.out
ou
//serveur-sig/data/db.out
???

Sylvain M.

Hors ligne

 

#12 Thu 19 September 2019 11:53

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1160

Re: Déplacer répertoire BDD PostGreSQL

Salut,

çà dépends du terminal que vous utilisez :

windows :
    \\serveur-sig\data\db.out

*nix:
    //serveur-sig/data/db.out

En ligne

 

#13 Thu 19 September 2019 12:00

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Déplacer répertoire BDD PostGreSQL

çà dépends du terminal que vous utilisez


Je suis sur Windows, et je lance les commande avec CMD

Du coup, pas de doublement des antislash :

Code:

$ pg_dumpall > \\serveur-sig\data\db.out

Et quant au fait de sauvegarder 100Go de données (une 20aine de BDD) dans un seul fichier dump, ça vous semble raisonnable ?


Sylvain M.

Hors ligne

 

#14 Thu 19 September 2019 14:17

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1160

Re: Déplacer répertoire BDD PostGreSQL

Du coup, pas de doublement des antislash :


Doubler les antislash a du sens quand vous devez spécifier
un chemin d'accès windows dans un environnement ou
l'antislash est le caractère d'échappement, c'est à dire qu'il
n'est pas considéré comme un caractère mais qu'il demande
a l'environnement d'interpréter différemment le caractère qui
lui succède (exemple \n, symbolise un retour à la ligne).
Pour que l'environnement interprète l'antislash comme un antislash,
on lui applique lui même un antislash.

Et quant au fait de sauvegarder 100Go de données (une 20aine de BDD) dans un seul fichier dump, ça vous semble raisonnable ?


Ca n'est pas interdit, vous pouvez juste peut etre compresser la sortie
afin de ne pas avoir un gigantesque ficher sql en sortie.

Code:

pg_dumpall |  gzip > \\serveur-sig\data\db.sql.gz

(il vous faut gzip d'installé, ou un programme equivalent)

En ligne

 

#15 Fri 20 September 2019 11:28

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Déplacer répertoire BDD PostGreSQL

Merci Tumasgiu smile
Je m'en suis sorti avec cette commande :

Code:

pg_dumpall --host localhost --port 5432 --username postgres > \\serveur-sig\data\backup_db_20190919.sql

Pour Gzip, je ne dois pas avoir le programme sur mon PC (j'ai 7Zip comme utilitaire de compression).
J'ai ce message :

'gzip' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.


Mais ce n'est pas grave, j'ai largement de la place sur le serveur-sig, donc je suppose que la compression aurait augmentée le temps d’exécution.
Et là, il a quand même fallu 14h15 !!!

Merci de m'avoir aidé ! smile


Sylvain M.

Hors ligne

 

Pied de page des forums

Powered by FluxBB