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 22/06/2012 15:57:45

roya
Membre

PostgreSQL 9.1 et pg_standby

Bonjour,

J'ai bien lu la doc sur le paramètrage du Hot Standby et je me pose une question concernant les "outils" de récupération à utiliser.
Dans le fichier "recovery.conf", est-ce que l'appel à "pg_standby" dans "restore_command" est recommandé, même avec PostgreSQL 9.1 ?
J'ai fait des essais avec un simple "cp" et cela fonctionne mais je ne comprends pas ce qu'apporte en plus pg_standby.

Dans le même genre, est-il recommandé d'utiliser pg_start_backup/pg_stop_backup ou pg_basebackup ?

Par avance merci.

Hors ligne

#2 22/06/2012 16:27:05

gleu
Administrateur

Re : PostgreSQL 9.1 et pg_standby

Dans le fichier "recovery.conf", est-ce que l'appel à "pg_standby" dans "restore_command" est recommandé, même avec PostgreSQL 9.1 ?

Si le serveur secondaire n'a pas besoin d'être disponible en lecture seule (on parle de Warm Standby), alors oui. Si vous voulez utiliser l'esclave en lecture seule (on parle alors de Hot Standby, et ça a l'air d'être votre cas), alors non, surtout pas.

J'ai fait des essais avec un simple "cp" et cela fonctionne mais je ne comprends pas ce qu'apporte en plus pg_standby.

Un simple cp échouera si le journal de transactions attendu par PostgreSQL n'est pas présent. Dans le cas d'un serveur secondaire en Warm Standby, cela arrête la réplication et transforme le secondaire en primaire. Dans le cas d'un serveur secondaire en Hot Standby, le secondaire tente une connexion de réplication sur le serveur primaire si le paramètre primary_conninfo a été renseigné.

pg_standby lui n'échoue pas car il attend l'arrivée du journal de transactions. Ce qui fait qu'il n'est pas du tout fait pour du Hot Standby. Son utilisation ne concerne que les serveurs secondaires en Warm Standby.

Dans le même genre, est-il recommandé d'utiliser pg_start_backup/pg_stop_backup ou pg_basebackup ?

Utilisez pg_basebackup pour les cas simples. Il fait lui-même le pg_start_backup/pg_stop_backup. Par contre, il fait l'équivalent de cp pour la copie des fichiers. Dans certains cas, l'utilisation de rsync est recommandé pour aller plus vite. Et du coup, dans ces cas-là, il vaut mieux faire soi-même les pg_start_backup/pg_stop_backup.


Guillaume.

Hors ligne

#3 22/06/2012 16:51:31

roya
Membre

Re : PostgreSQL 9.1 et pg_standby

Bonjour Guillaume,

Encore une fois, merci pour votre réactivité et vos explications !
C'est OK pour les explications sur pg_basebackup.
Par contre :-)... pour pg_standby, j'ai du mal à comprendre pourquoi il ne faut pas l'utiliser pour du Hot Standby ?? Quels sont les risques ?

Par rapport à la commande "cp", dans les tests que j'ai fait en warm standby, j'ai effectivement constaté dans les logs du serveur en warm standby des erreurs (en boucle) concernant le prochain WAL attendu sur ce serveur :
           cp: cannot stat `/home/postgres913/warm_standby/archive_wals/000000020000000F000000FB': No such file or directory

mais la réplication n'a pas été arrêtée et le secondaire n'est pas devenu primaire... Pouvez-vous m'en dire plus svp ?

Par conséquent, pour le Hot Standby, si pg_standby et cp ne sont pas conseillés, que reste-t-il ?? rsync ?

Merci.

Hors ligne

#4 22/06/2012 17:58:11

gleu
Administrateur

Re : PostgreSQL 9.1 et pg_standby

Par contre :-)... pour pg_standby, j'ai du mal à comprendre pourquoi il ne faut pas l'utiliser pour du Hot Standby ?? Quels sont les risques ?

pg_standby ne rend pas la main à PostgreSQL lorsque ce dernier lui demande le prochain journal de transactions. Du coup, l'esclave ne passe jamais en Streaming Replication. Il reste dans le mode Log Shipping, ce qui fait qu'il conserve un retard plus ou moins important sur l'esclave.

mais la réplication n'a pas été arrêtée et le secondaire n'est pas devenu primaire... Pouvez-vous m'en dire plus svp ?

Certainement parce que vous avez configuré le paramèter standby_mode à on dans le fichier recovery.conf de l'esclave.

Par conséquent, pour le Hot Standby, si pg_standby et cp ne sont pas conseillés, que reste-t-il ?? rsync ?

Je n'ai pas dit que cp n'était pas conseillé. Il ne faut pas confondre la commande de copie des fichiers entre le pg_start_backup et le pg_stop_backup avec la commande d'archivage des journaux de transactions. Dans le cas de la copie des fichiers, cp ou rsync sont intéressants avec certainement une préférence pour rsync car plus rapide. Dans le cas de l'archivage, scp ou cp sont conseillés. Mais évidemment, tout dépend du contexte smile


Guillaume.

Hors ligne

#5 22/06/2012 21:54:31

roya
Membre

Re : PostgreSQL 9.1 et pg_standby

C'est bien ça pour le paramètre "standby_mode" :-)
Et c'est OK pour les autres points.
Merci beaucoup !

Hors ligne

Pied de page des forums