Blog - comments

When I studied Oracle New Feature Guide "Media Failure: PDB SYSTEM Data File" , I was surprised tha...
Hayat Khan

Really a nice article to study.

Thanks,

Amol Bhoite

ana 100 goid

mokok

ana 100 gold

mokok

Bonjour,

Tout d'abord merci pour cet article. J'aimerai savoir si ACFS est gratuit ?

Chris

Chris
Blog Pierre Boizot Barman: une solution pour vos backups PostgreSQL

dbi services Blog

Welcome to the dbi services Blog! This blog focuses on IT infrastructure - featuring news, troubleshooting, and tips & tricks. It covers database, middleware, and OS technologies such as Oracle, Microsoft SQL Server, Documentum, MySQL, PostgreSQL, Sybase, Unix/Linux, etc. The dbi services blog represents the view of our consultants, not necessarily that of dbi services. Feel free to comment on the postings!

  • Home
    Home This is where you can find all the blog posts throughout the site.
  • Categories
    Categories Displays a list of categories from this blog.
  • Tags
    Tags Displays a list of tags that have been used in the blog.
  • Bloggers
    Bloggers Search for your favorite blogger from this site.

Barman: une solution pour vos backups PostgreSQL

L'objet de ce posting est de décrire la mise en place et l'utilisation d'un gestionnaire de sauvegarde pour un cluster de  base postgresql. Barman - acronyme de "backup recovery manager"- pour PostgreSQL est le logiciel sur lequel nous nous pencherons. C'est un outil permettant de centraliser la gestion des sauvegardes dans une situation avec plusieurs serveurs.

La société 2ndQuadrant est à l'origine de ce projet qui a été financé par une aide de la CEE.

1 - Installation du serveur de backup.

L'installation de l'outil peut se faire sur un serveur dédié ou sur le serveur PostgreSQL lui-même.

1.1 - Validation des pre-requis

L'installation de Barman nécessite d'avoir un accès root, voici la liste des pré-requis.

• Linux/Unix                
• Python 2.6 or 2.7      
• Python modules: *      
    • argh                   
    • psycopg2
    • python-dateutil < 2.0 (since version 2.0 requires python3)
    • distribute (optional)
• PostgreSQL >= 8.4    
• rsync >= 3.0.4          

La vérification des modules python peut être faite avec la commande yokl -l

exemple :

root@ubuntu:~# yolk -l | grep psycopg2psycopg2        - 2.4.5        - active development (/usr/local/lib/python2.7/dist-packages/psycopg2-2.4.5-py2.7-linux-x86_64.egg)

Nota : La vérification des modules python peut etre sauté car l'installation vérifie les dépendances et charge les modules nécessaires.

Vérifier l'installation du package python-setuptools est suffisant.

sudo apt-get install python-setuptools
Reading package lists... Done
Building dependency tree      
Reading state information... Done
python-setuptools is already the newest version.

1.2 - Création de l'utilisateur barman

L'outils a besoin d'un utilisateur gérant les backup

adduser --home /home/barman

1.3 - Création des binaires

Installation des fichiers sources par copie puis extraction de ceux-ci dans un répertoire local, ensuite on construit et installe l'application avec les commandes ci-dessous.

.setup.py build
sudo .setup.py install


1.4 - ssh configuration.

Barman a besoin que les connexions entre le serveur de backups et les serveurs PostgreSQL à sauvegarder soient transparentes.

Pour cela on paramètre ssh avec une authentification par clef privée, publique. On procède à la création des clefs puis à une copie vers le serveur postgresql.
'postgres@srvdata1'", and check in:
  ~/.ssh/authorized_keysto make sure we haven't added extra keys that you weren't expecting.

 1.5 - Configuration de la connexion PostgreSQL

Pour que l'outil accéde aux informations à sauvegarder on configure le serveur postgresql en autorisant la connexion depuis le utilisateur barman.

Pour cela modifier le fichier pg_hba.conf de votre cluster de base en ajoutant la ligne suivante qui autorise une connexion sans demande de mot de passe entre les deux machines:

host    postgres        postgres        192.168.165.130/32      trust

Verifier la bonne communication par la commande ci-dessous depuis votre serveur barman.

psql -c 'SELECT version()' -U postgres -h srvdata1 -p 54321


1.6 - Création du répertoire de sauvegarde.

Nous utiliserons ici un point de montage /u03

cd /u03
sudo mkdir -p /u03/barman
sudo chown barman:barman /u03/barman

1.7 - Configuration de barman.

Elle se fait par copie du fichier barman.conf dans /etc et son adaptation à notre situation


[barman]
; Main directory
barman_home = /u03/barman

; System user
barman_user = barman
; Log location
log_file = /home/barman/log/barman.log

; Default compression level: possible values are None (default), bzip2, gzip or custom
compression = gzip

; 'main' PostgreSQL Server configuration

[dbi]
; Human readable description
description =  "dbi PostgreSQL Database"

; SSH options
ssh_command = ssh postgres@srvdata1

; PostgreSQL connection string
conninfo = host="srvdata1" user="postgres" port=54321

1.8 - Vérification de la configuration

Une fois l'ensemble de ces paramètrages posés, l'outil barman nous permet de vérifier la configuration avec les deux commandes show-server et check, dont vous avez le résultat ci-dessous.

postgres@srvdata1
        conninfo: host="srvdata1" user="postgres" port=54321
        backup_directory: /u03/barman/dbi
        basebackups_directory: /u03/barman/dbi/base
        wals_directory: /u03/barman/dbi/wals
        incoming_wals_directory: /u03/barman/dbi/incoming
        lock_file: /u03/barman/dbi/dbi.lock
        compression: gzip
        custom_compression_filter: None
        custom_decompression_filter: None
        retention_policy: None
        wal_retention_policy: None
        current_xlog: 00000001000000000000001F
        last_shipped_wal: None
        archive_command: (disabled)
        server_txt_version: 9.1.4
        data_directory: /u01/pgdata/dbi
        archive_mode: off
        config_file: /u01/pgdata/dbi/postgresql.conf
        hba_file: /u01/pgdata/dbi/pg_hba.conf
        ident_file: /u01/pgdata/dbi/pg_ident.conf


barman@pgbkpsrv:~$ barman check dbi
Server dbi:
        ssh: OK
        PostgreSQL: OK
        archive_mode: FAILED (please set it to 'on')
        archive_command: FAILED (please set it accordingly to documentation)
        directories: OK
        compression settings: OK

On constate à l'exécution de ces commandes qu'il nous reste à configurer l'archivage du cluster de base.

2 - Mise en oeuvre d'une sauvegarde

Pour cela nous allons d'abord mettre le cluster de base en mode archive log, nous validerons ensuite la configuration avec les deux commandes utilisées précédemment, enfin nous lancerons un backup.

2.1 - Passage en mode archive log

Il suffit de modifier du fichier postgresql.conf de votre cluster de base en changeant les trois paramètres ci-dessous :

wal_level = 'archive' # For PostgreSQL >= 9.0
archive_mode = on
archive_command = 'rsync -a %p barman@pgbkpsrv:/u03/barman/dbi/incoming/%f'

2.2 - restart du serveur postgresql

ostgres@srvdata1:/u01/pgdata/dbi$ pg_ctl restart
waiting for server to shut down.... done
server stopped
server starting

2.2 Vérification

Lancement de la commande check

barman@pgbkpsrv:/u03/barman/dbi$ barman check dbi
Server dbi:
        ssh: OK
        PostgreSQL: OK
        archive_mode: OK
        archive_command: OK
        directories: OK
        compression settings: OK

Nous constatons que tout est conforme.

2.4 - Execution d'un backup.

Il s'agit de lancer la commande à partir du serveur de sauvegarde comme ci-dessous. L'application prendra en charge l'ensemble des étapes pour mettre le cluster de base en mode backup, puis copier les fichiers et finaliser la sauvegarde.
barman@pgbkpsrv$ barman backup dbi

barman@pgbkpsrv:/u03/barman/dbi$ barman backup dbi
Starting backup for server dbi in /u03/barman/dbi/base/20120809T075347
Backup start at xlog location: 0/4A8DC890 (00000001000000000000004A, 008DC890)
Copying files.
file has vanished: "/u01/pgdata/dbi/base/16660/pg_internal.init"
Copy done.
Asking PostgreSQL server to finalize the backup.
Backup end at xlog location: 0/4EBE4858 (00000001000000000000004E, 00BE4858)
Backup completed

3 - Conclusion 

Barman nous fourni un ensemble de commandes nous permettant de mettre en oeuvre des sauvegardes online sur un serveur externe. La mise en oeuvre est simple, je vous propose d'aborder dans un autre post le plus important: la restauration.

Reférence: http://www.pgbarman.org/

 

Tagged in: Backup Barman PostgreSQL
Rate this blog entry:
2

Pierre Boizot est Principal Consultant chez dbi services. Il bénéficie de 25 ans d’expérience dans le domaine des bases de données. Son parcours du traitement de la donnée à la gestion de son hébergement lui permet aujourd'hui d’avoir une très bonne expérience et compréhension des infrastructures techniques système et bases de données. En tant que consultant indépendant durant 8 ans, Pierre Boizot a évolué dans divers environnements, acquérant ainsi autonomie et de nouvelles connaissances, et renforçant sa capacité à mettre en œuvre des environnements hautement disponibles et performants. D’un esprit ouvert, curieux et innovateur, doté d’une grande capacité d’écoute et d’une bonne disponibilité, il met ses compétences au service de ses interlocuteurs pour réaliser et atteindre les objectifs fixés.

Comments

  • Guest
    Cédric Villemain Friday, 07 December 2012

    bonjour Pierre, merci pour cette présentation de Barman.
    Pour information, ce projet, sur lequel nous sommes très engagés, est subventionné en partie par l'UE certe, mais aussi en partie par des entreprises privées/puliques et en partie par la R&D 2ndQuadrant.
    Tout le monde peut faire évoluer ce projet Open-Source et nous cherchons également des sponsors pour les nouvelles fonctionnalités. (en ce moment nous travaillons sur les 'retention policies')

  • Guest
    Pierre Friday, 07 December 2012

    Bonjour Cédric,
    Je profite de ton commentaire pour signaler que la version courante est 1.1.1 et que la 1.2 est sur les rails.
    Salutations.
    Pierre

  • Guest
    Jean-eric Cuendet Tuesday, 08 January 2013

    Merci de ce "tutorial". Il manque une présentation de la partie restore qui à mon avis est centrale à tout outil de backup!
    Est-ce possible de l'ajouter?

Leave your comment

Guest Thursday, 17 April 2014
AddThis Social Bookmark Button
Deutsch (DE-CH-AT)   French (Fr)
NewsOfficesContact

Contact

Contact us now!

Send us your request!

Our workshops

dbi FlexService SLA - ISO 20000 certified.

dbi FlexService SLA ISO 20000

Expert insight from insiders!

Fixed Price Services

dbi FlexService SLA - ISO 20000 certified.

dbi FlexService SLA ISO 20000

A safe investment: our IT services at fixed prices!

Your flexible SLA

dbi FlexService SLA - ISO 20000 certified.

dbi FlexService SLA ISO 20000

ISO 20000 certified & freely customizable!

dbi services Newsletter