Communauté francophone de PostgreSQL

La communauté francophone de PostgreSQL

Outils pour utilisateurs

Outils du site


admin:installation_9.0

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
admin:installation_9.0 [2010/07/17 22:27]
daamien
admin:installation_9.0 [2010/07/19 12:36] (Version actuelle)
daamien
Ligne 4: Ligne 4:
 <note> <note>
 Cette doc est succinte !  Cette doc est succinte ! 
-Pour plus de détails, voir les articles de Guillaume, notamment : [[http://www.dalibo.org/hs44_installation_de_postgresql|Installation de Postgres]] +Pour plus de détails, voir les articles de Guillaume, notamment : [[http://www.dalibo.org/hs44_installation_de_postgresql|L'installation de PostgreSQL]] et [[http://www.dalibo.org/hs44_la_replication_par_les_journaux_de_transactions|La réplication par les journaux applicatifs]] 
 </note> </note>
 +
 +
 +===== Préambule =====
 +
 +On met ici en place une réplication "Hot Standby en Streaming" entre les deux serveurs de la plate-forme postgresql.fr 
 +
 +  * Babar : serveur principal : ip = 212.85.154.68 port = 5433
 +  * Dumbo : serveur secondaire (en mode standby) : ip = 212.85.154.69 port = 5433
  
 ===== Compilation ===== ===== Compilation =====
Ligne 27: Ligne 35:
  
 Avant de démarrer le serveur, on modifie port sur 5433 dans postgresql.conf Avant de démarrer le serveur, on modifie port sur 5433 dans postgresql.conf
-<code sh+<file
-vi postgresql.conf  +port 5433 
-</code>+</file>
  
 Puis on met en place le script de démarrage. Ne pas oublier de modifier la paramètre PGDATA ! Puis on met en place le script de démarrage. Ne pas oublier de modifier la paramètre PGDATA !
Ligne 57: Ligne 65:
 </code> </code>
  
-sudo Babar :+Au passage le shmmax de dumbo est trop bas pour la 9.0, on corrige : 
 + 
 +<code sh> 
 +sudo su - 
 +echo "kernel.shmmax=134217728" > /etc/sysctl.conf 
 +echo "kernel.shmall=2097152" > /etc/sysctl.conf 
 +sudo sysctl -p 
 +</code> 
 + 
 +sur Babar, on ouvre une liaison ssh pour exporter les wals : 
 <code sh> <code sh>
 sudo su - postgres sudo su - postgres
Ligne 66: Ligne 84:
 </code> </code>
  
-Modification dans le postgresql.conf de Babar+Modification dans le postgresql.conf de Babar 
  
-<code sh>+<file>
 wal_level = hot_standby wal_level = hot_standby
 archive_mode = on archive_mode = on
-archive_command = 'scp $p postgres@dumbo.postgresql.fr:/var/lib/postgresql/babar_wals/%f' +archive_command = 'scp %p postgres@dumbo.postgresql.fr:/var/lib/postgresql/babar_wals/%f' 
-</code>+</file>
  
-puis redémmarage du serveur PG sur Babar+puis redémarrage du serveur PG sur Babar
  
 <code sh> <code sh>
Ligne 80: Ligne 98:
 </code> </code>
  
-Snapshot sur Babar+On fait un snapshot de la base sur Babar
  
 <code sh> <code sh>
Ligne 110: Ligne 128:
 </code> </code>
  
-Au passage le shmmax de dumbo est trop bas pour la 9.0, on corrige : 
  
-<code sh> 
-sudo su - 
-echo "kernel.shmmax=134217728" > /etc/sysctl.conf 
-echo "kernel.shmall=2097152" > /etc/sysctl.conf 
-sudo sysctl -p 
-</code> 
  
 Il ne reste plus qu'à tester sur Dumbo : Il ne reste plus qu'à tester sur Dumbo :
Ligne 130: Ligne 141:
 </code> </code>
  
-===== Migration 8.3 -> 9.0 =====+===== Streaming Réplication =====
  
 +Sur Babar, ouverture d'un accès vers la pseudo-base "replication" en provenance de Dumbo
  
-postgres=#    SELECT pg_is_in_recovery(); +Dans postgresql.conf : 
- pg_is_in_recovery  +<file> 
-------------------- +listen_addresses = '*' 
- t+</file> 
 + 
 +et dans pg_hba.conf : 
 +<note warning> 
 +Note pour le lecteur : Ceci est une installation de test, le serveur n'a pas vocation a détenir des données sensibles et la sécurité n'est pas un enjeu crucial. Si vous souhaitez utiliser le mode streaming en production, vous devez élever le niveau d'authenitification ( évitez trust ! ) et utiliser  
 +des adresses IP issues d'un réseau privé. 
 +</note> 
 + 
 +<file> 
 +host  replication  postgres  212.85.154.69/32  trust 
 +</file> 
 + 
 +... puis redémarrage du serveur sur Babar 
 + 
 + 
 +Attention ! Il faut également vérifier la conf [[iptables]] ! 
 + 
 +Sur Dumbo, on teste avec l'option replication=
 + 
 +<code> 
 +/usr/local/pgsql/bin/psql -h babar.postgresql.fr -p 5433 -U postgres replication=1 
 +</code> 
 + 
 +Sur Babar, on configure le streaming des wals : 
 +<file> 
 +max_wal_senders = 5 
 +wal_keep_segments = 32 
 +</file> 
 + 
 +... et on redémarre le serveur 
 + 
 + 
 + 
 +Sur Dumbo, on complète le recovery.conf pour récupérer les transactions commitées en se connectant à Babar : 
 +<file> 
 +primary_conninfo      = 'host=212.85.154.68 port=5433 user=postgres' 
 +trigger_file = '/var/lib/postgresql/9.0/failover.trigger' 
 +</file> 
 + 
 +... et on redémarre le serveur 
 + 
 +Il ne reste plus qu'à tester :-) 
 + 
 +sur babar : 
 + 
 +<code> 
 +$ /usr/local/pgsql/bin/psql -h 127.0.0.1 -p 5433 -c "SELECT pg_current_xlog_location()" 
 + pg_current_xlog_location  
 +-------------------------- 
 + 0/12000BB8
 (1 row) (1 row)
 +</code>
  
 +puis sur dumbo
  
 +<code>
 +$ /usr/local/pgsql/bin/psql -h 127.0.0.1 -p 5433 -U postgres -c "SELECT pg_last_xlog_receive_location ()"
 + pg_last_xlog_receive_location 
 +--------------------------
 + 0/12000BB8
 +(1 row)
 +</code>
 +
 +
 +Pour transformer Dumbo en maitre en cas de crash de babar, taper la commande suivante sur dumbo:
 +
 +<code>
 +sudo su - postgres
 +touch /var/lib/postgresql/9.0/failover.trigger
 +</code>
 +
 +
 +===== Migration 8.3 -> 9.0 =====
 +
 +Exemple pour la base drupal6
 +
 +<code sh>
 +/usr/local/pgsql/bin/dropdb -h 127.0.0.1 -p 5433 drupal6
 +/usr/local/pgsql/bin/createdb -h 127.0.0.1 -p 5433 drupal6
 +pg_dump drupal6 | /usr/local/pgsql/bin/psql -h 127.0.0.1 -p 5433 drupal6
 +</code>
admin/installation_9.0.1279398459.txt.gz · Dernière modification: 2010/07/17 22:27 de daamien