PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 01/10/2013 13:45:02

mortimer.pw
Membre

Gestion des fichiers WAL

Bonjour,

Nous travaillons à la migration d'une base de données de 40 Go, d'un moteur 8.2.4 à 9.2.4 sous CentOS 5.9.

Dans le fichier postgresql.conf, nous avons défini le checkpoint_segments à 32. Toutefois dans le répertoire pg_xlog, je vois 66 fichiers.
Est-ce que la valeur du paramètre n'est pas assez haute ?
Est-ce que PostgreSQL utilise "un peu" plus de fichiers au besoin ?

Nous allons activer l'archivage des fichiers wal, et le week-end, nous allons faire tourner un script de maitenance qui effectue :
     - vacuumdb -a -f -z
     - reindexdb -a
Cela va t'il généré davantage de fichiers dans pg_xlog ? ou est-ce uniquement le répertoire des logs archivés qui va grossir ?

Notre script de maintenance est-il toujours d'actualité en 9.2, à savoir faut-il toujours faire un vacuum full ? et un reindex de toutes les bases ?

D'avance merci pour les réponses.

Hors ligne

#2 01/10/2013 18:08:01

gleu
Administrateur

Re : Gestion des fichiers WAL

> Est-ce que la valeur du paramètre n'est pas assez haute ?

Impossible à répondre. Si votre idée est qu'avec un checkpoint_segments à 32, vous ne devriez avoir que 32 fichiers, vous vous trompez. Vous aurez en temps normal au maximum 3*checkpoint_segments+1 (97 dans votre cas). Et plus s'il y a plein d'activité...

> Est-ce que PostgreSQL utilise "un peu" plus de fichiers au besoin ?

Oui, en effet.

> Cela va t'il généré davantage de fichiers dans pg_xlog ?

Ah oui, un VACUUM FULL et un REINDEX va générer énormément de WAL.

> ou est-ce uniquement le répertoire des logs archivés qui va grossir ?

Lui aussi va grossir.


Guillaume.

Hors ligne

#3 02/10/2013 09:08:17

mortimer.pw
Membre

Re : Gestion des fichiers WAL

Bonjour Guillaume,
Effectivement, je n'avais pas compris.
Pouvez-vous me dire pourquoi "3*" ?
Sur ma base de 40Go, si je fais un vacuum full puis un reindex, est-il possible de prévoir le volume d'occupation disque que cela va engendrer dans pg_xlog ? et dans le répertoire des logs archivés ?
J'espère ne pas trop monopoliser de votre temps et encore merci pour votre aide.

Hors ligne

#4 02/10/2013 09:20:45

pitpoule
Membre

Re : Gestion des fichiers WAL

mortimer.pw a écrit :

Bonjour Guillaume,
Pouvez-vous me dire pourquoi "3*" ?

Parce que si l'activité est "normale", au delà de ce seuil, Postgresql supprimera les fichiers WAL supplémentaires dont il n'aurait plus besoin et en deça de cette limite, il les recyclera plutôt.

Hors ligne

#5 02/10/2013 10:41:01

mortimer.pw
Membre

Re : Gestion des fichiers WAL

Bonjour Pitpoule,
Merci pour votre réponse.
Avez-vous une réponse pour ma deuxième question ?

Hors ligne

#6 02/10/2013 11:24:06

gleu
Administrateur

Re : Gestion des fichiers WAL

Très exactement, c'est "(2+checkpoint_completion_timeout)*checkpoint_segments + 1". Avant ce seuil, PostgreSQL renomme ceux dont il n'a plus besoin. Après ce seuil, comme dit pitpoule, il supprime ceux en trop dont il n'a plus besoin.

Quant à la question de la volumétrie, non, il n'est pas possible de prévoir ce que cela va engendrer. D'ailleurs plus checkpoint_segments est petit, et plus la quantité d'informations à enregistrer dans les WAL est importante. Comme on ne peut pas prévoir le nombre de WAL générés, on ne peut pas plus savoir pour les archivés (en dehors du fait qu'il s'agira du même volume).


Guillaume.

Hors ligne

Pied de page des forums