Communauté francophone de PostgreSQL

La communauté francophone de PostgreSQL

Outils pour utilisateurs

Outils du site


admin:tantor

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
admin:tantor [2012/06/05 12:24]
daamien créée
admin:tantor [2014/08/19 00:07] (Version actuelle)
rjuju
Ligne 4: Ligne 4:
  
 <note important> <note important>
-Si vous effectuez des opérations sur Babar, merci de vous connectez sur **#postgresqlfr-admin** pour vérifier que personne n'a eu la même idée que vous au même moment ! +Si vous effectuez des opérations sur Tantor, merci de vous connectez sur **#postgresqlfr-admin** pour vérifier que personne n'a eu la même idée que vous au même moment ! 
  
 Merci de respecter les [[règles de base]] Merci de respecter les [[règles de base]]
 </note> </note>
  
-voir aussi ->  [[Babar]] & [[Dumbo]]+voir aussi ->  [[Celeste]]
  
 ===== Roles ===== ===== Roles =====
 +
 +Serveur postgresql esclave.
  
 ===== Log ===== ===== Log =====
  
-=== 5 juin 2012 : install par damien ===+==== mises à jour ==== 
 + 
 +* 9.3.5 le 19/08/2014 par rjuju 
 + 
 +==== 5 juin 2012 : install par damien ====
  
        
Ligne 21: Ligne 27:
        
 config de base : config de base :
- +
   * IP : 95.142.169.64  / 2001:4b98:dc0:47:216:3eff:fe22:7666   * IP : 95.142.169.64  / 2001:4b98:dc0:47:216:3eff:fe22:7666
   * CPU : 5 coeurs   * CPU : 5 coeurs
Ligne 27: Ligne 33:
   * Datacenter : Paris   * Datacenter : Paris
   * distro : debian linux 6 64 bits    * distro : debian linux 6 64 bits 
 +
 +==== Mise à jour en 9.3 le 29/04/2014 par rjuju ====
 +
 +Configuration de postgres: 
 +
 +<code>
 +postgres@tantor:~$ grep -Ev '^\s*(#.*)?$' /etc/postgresql/9.3/main/postgresql.conf
 +
 +data_directory = '/var/lib/postgresql/9.3/main' # use data in another directory
 +hba_file = '/etc/postgresql/9.3/main/pg_hba.conf' # host-based authentication file
 +ident_file = '/etc/postgresql/9.3/main/pg_ident.conf' # ident configuration file
 +external_pid_file = '/var/run/postgresql/9.3-main.pid' # write an extra PID file
 +listen_addresses = '*' # what IP address(es) to listen on;
 +port = 5432 # (change requires restart)
 +max_connections = 100 # (change requires restart)
 +unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
 +ssl = true # (change requires restart)
 +ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem' # (change requires restart)
 +ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key' # (change requires restart)
 +shared_buffers = 128MB # min 128kB
 +wal_level = hot_standby # minimal, archive, or hot_standby
 +checkpoint_completion_target = 0.9 # checkpoint target duration, 0.0 - 1.0
 +archive_mode = on # allows archiving to be done
 +archive_command = 'rsync -a %p postgres@celeste.postgresql.fr:/data/backups/postgresql/xlog/%f' # command to use to archive a logfile segment
 +max_wal_senders = 3 # max number of walsender processes
 +log_checkpoints = on
 +log_connections = on
 +log_disconnections = on
 +log_line_prefix = '%t [%p]: [%l-1] db=%d,user=%u ' # special values:
 +log_timezone = 'localtime'
 +datestyle = 'iso, dmy'
 +timezone = 'localtime'
 +lc_messages = 'C' # locale for system error message
 +lc_monetary = 'fr_FR.UTF-8' # locale for monetary formatting
 +lc_numeric = 'fr_FR.UTF-8' # locale for number formatting
 +lc_time = 'fr_FR.UTF-8' # locale for time formatting
 +default_text_search_config = 'pg_catalog.french'
 +</code>
 +
 +Crontabs :
 +<code>
 +postgres@tantor:~$ crontab -l
 +
 +# m h  dom mon dow   command
 +
 +#0 1 * * *   pg_dumpall | gzip -c > /var/backups/postgresql/pgsql.daily.sql.gz
 +#0 2 * * 1   pg_dumpall | gzip -c > /var/backups/postgresql/pgsql.weekly.sql.gz
 +#0 3 1 * *   pg_dumpall | gzip -c > /var/backups/postgresql/pgsql.monthly.sql.gz
 +#0 4 * 1 *   pg_dumpall | gzip -c > /var/backups/postgresql/pgsql.yearly.sql.gz
 +#0 5 * * *   /var/lib/postgresql/backup_pitr.sh
 +# export vers Tantor
 +#0 6 * * *   rsync -av --delete /var/backups/postgresql/* tantor.postgresql.fr:/var/backups/postgres-celeste/
 +
 +# purge des backups
 +0 7 * * *   /var/lib/postgresql/purge_pitr.sh
 +</code>
 +
 +Script de sauvegarde PITR:
 +<code bash /var/lib/postgresql/backup_pitr.sh>
 +#!/bin/bash
 +SRVDEST="celeste.postgresql.fr"
 +VERSION="9.3"
 +INST="main"
 +SNAPNAME="snapshot_$(date '+%Y_%m_%d_%H_%M_%S')"
 +PGDIR="/var/lib/postgresql/${VERSION}/${INST}/"
 +DESTDIR="/data/backups/postgresql/snapshot/${SNAPNAME}/"
 +
 +rc=0
 +
 +psql --cluster ${VERSION}/${INST} -c "SELECT pg_start_backup('${SNAPNAME}')"
 +if [ $? -ne 0 ]; then
 +    echo "Unable to start backup !"
 +    exit 1
 +fi
 +
 +rsync -avp --exclude "pg_xlog/*" ${PGDIR} postgres@${SRVDEST}:${DESTDIR}
 +if [ $? -ne 0 ]; then
 +    echo "Error during rsync of ${PGDIR} to postgres@${SRVDEST}:${DESTDIR} !"
 +    rc=1
 +fi
 +
 +psql --cluster ${VERSION}/${INST} -c "SELECT pg_stop_backup()"
 +if [ $? -ne 0 ]; then
 +    echo "Unable to stop backup !"
 +    rc=1
 +fi
 +
 +exit ${rc}
 +</code>
 +
 +Script de purge PITR :
 +<file bash /var/lib/postgresql/purge_pitr.sh>
 +#!/bin/bash
 +RETENTION=5
 +# Suppression des snapshots de plus de $RETENTION jours
 +find /data/backups/postgresql/snapshot/ -maxdepth 1 -type d -name "snapshot_*" -mtime +${RETENTION} -print -exec rm -rf {} \;
 +
 +# Suppression des WAL de plus de $RETENTION jours
 +find /data/backups/postgresql/xlog/ -type f -mtime +${RETENTION} -print -delete
 +</file>
 +
 +Recovery.conf :
 +<file conf /var/lib/postgresql/9.3/main/recovery.conf>
 +standby_mode = on
 +primary_conninfo = 'host=celeste.postgresql.fr port=5432 user=repli'
 +restore_command = 'cp /data/backups/postgresql/xlog/%f %p'
 +# pas de cleanup comme on a une sauvegarde pitr, ils seront purgés par le cron PITR
 +# pas de trigger file
 +</file>
 +
 +Template de recovery.conf :
 +<file conf /var/lib/postgresql/recovery.conf>
 +standby_mode = on
 +primary_conninfo = 'host=celeste.postgresql.fr port=5432 user=repli'
 +restore_command = 'cp /data/backups/postgresql/xlog/%f %p'
 +# pas de cleanup comme on a une sauvegarde pitr, ils seront purgés par le cron PITR
 +# pas de trigger file
 +</file>
 +
 +Liens symboliques :
 +
 +  * /data -> /srv/data_tantor
 +  * /var/lib/postgresql -> /data/var/lib/postgresql/
 +  * /var/log -> /data/var/log/
 +  * /var/www -> /data/var/www/
 +
admin/tantor.1338891846.txt.gz · Dernière modification: 2012/06/05 12:24 de daamien