{"id":2922,"date":"2013-10-18T03:04:00","date_gmt":"2013-10-18T01:04:00","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/"},"modified":"2013-10-18T03:04:00","modified_gmt":"2013-10-18T01:04:00","slug":"pgbarman-gestion-de-sauvegarde-et-recuperation","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/","title":{"rendered":"Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL"},"content":{"rendered":"<p><img decoding=\"async\" class=\"blog-image aligncenter\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg\" alt=\"\" \/><\/p>\n<p>Fin 2012, j&#8217;ai pr\u00e9sent\u00e9\u00a0\u00ab\u00a0pgbarman\u00a0\u00bb, une solution de sauvegarde et r\u00e9cup\u00e9ration pour PostgreSQL et d\u00e9crit son installation. Pgbarman fournit un ensemble de commandes vous permettant la mise en \u0153uvre de sauvegardes vers un serveur d\u00e9di\u00e9. Le principal int\u00e9r\u00eat est \u00e0 mon sens la gestion d&#8217;un catalogue de vos sauvegardes et la g\u00e9n\u00e9ration de commandes destin\u00e9es \u00e0 une reconstruction locale ou sur un serveur tiers.<\/p>\n<p>Je vais maintenant parler de la gestion des sauvegardes et d\u00e9crire la mise en \u0153uvre d&#8217;une reconstruction (PITR) .<\/p>\n<h3>La gestion des sauvegardes<\/h3>\n<p>Avec\u00a0Pgbarman nous avons \u00e0 notre disposition un fichier de configuration et des commandes o\u00f9 nous trouvons les param\u00e8tres de gestion de la r\u00e9tention des\u00a0 sauvegardes. Depuis la version 1.2\u00a0 deux politiques de r\u00e9tention peuvent \u00eatre appliqu\u00e9es\u00a0:<\/p>\n<ul>\n<li>une politique de r\u00e9tention bas\u00e9e sur le temps<\/li>\n<li>une politique de r\u00e9tention bas\u00e9e sur le nombre de sauvegarde.<\/li>\n<\/ul>\n<p>L\u2019exemple de fichier de configuration de Pgbarman nous montre les param\u00e9trages possibles.<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">;; ; Minimum number of required backups (redundancy)\n;; ; minimum_redundancy = 1\n;;\n;; ; Examples of retention policies\n;;\n;; ; Retention policy (disabled)\n;; ; retention_policy =\n;; ; Retention policy (based on redundancy)\n;; ; retention_policy = REDUNDANCY 2\n;; ; Retention policy (based on recovery window)\n;; ; retention_policy = RECOVERY WINDOW OF 4 WEEKS<\/pre>\n<p>N.B. : le param\u00e8tre minimum_redundancy = 1 emp\u00eachera la suppression de la derni\u00e8re sauvegarde et prot\u00e8gera d&#8217;un effacement involontaire&#8230;..<\/p>\n<p>Il est possible de voir l&#8217;effet de ce param\u00e9trage avec les commandes suivantes :<br \/>\nLa commande Barman status qui nous donne un r\u00e9sum\u00e9 de l&#8217;\u00e9tat des sauvegardes :<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">barman@vmpgdeb1:\/etc\/barman$ barman status dbi\nServer dbi:\n\u00a0\u00a0\u00a0 description: dbi PostgreSQL Database\n\u00a0\u00a0\u00a0 PostgreSQL version: 9.1.8\n\u00a0\u00a0\u00a0 PostgreSQL Data directory: \/u01\/pgdata\/dbi\n\u00a0\u00a0\u00a0 archive_command: rsync -a %p barman@vmpgdeb1:\/u03\/pg\/backup\/dbi\/incoming\/%f\n\u00a0\u00a0\u00a0 archive_status: last shipped WAL segment 0000000100000000000000D3\n\u00a0\u00a0\u00a0 current_xlog: 0000000100000000000000D3\n\u00a0\u00a0\u00a0 Retention policies: enforced (mode: auto, retention: REDUNDANCY 4, WAL retention: main)\n\u00a0\u00a0\u00a0 No. of available backups: 5\n\u00a0\u00a0\u00a0 first available backup: 20130927T173313\n\u00a0\u00a0\u00a0 last available backup: 20131010T093548<\/pre>\n<p>La commande Barman list-backup qui nous donne la liste d\u00e9taill\u00e9e des sauvegardes :<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">barman list-backup dbi\ndbi 20131010T093548 - Thu Oct 10 09:36:02 2013 - Size: 215.0 MiB - WAL Size: 0 B\ndbi 20131002T114643 - Wed Oct\u00a0 2 11:46:53 2013 - Size: 197.0 MiB - WAL Size: 1.0 GiB\ndbi 20130929T113103 - Sun Sep 29 11:31:09 2013 - Size: 107.0 MiB - WAL Size: 915.0 MiB\ndbi 20130927T174926 - Fri Sep 27 17:51:55 2013 - Size: 107.0 MiB - WAL Size: 6.0 MiB\ndbi 20130927T173313 - Fri Sep 27 17:45:59 2013 - Size: 126.0 MiB - WAL Size: 82.0 MiB - OBSOLETE<\/pre>\n<p>Comme on peut le voir la politique de r\u00e9tention est \u00e0 REDUNDANCY 4.<br \/>\nNous avons 5 sauvegardes disponibles, c\u2019est pourquoi Pgbarman consid\u00e8re la sauvegarde du\u00a0 \u00ab\u00a0Sep 27 17:45:59 2013\u00a0\u00bb comme \u00e9tant obsol\u00e8te.<br \/>\nPar cons\u00e9quence, la prochaine application de la commande cron la purgera :<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">barman cron\nProcessing xlog segments for dbi\n\u00a0\u00a0\u00a0 0000000100000000000000D3\nDeleting backup 20130927T173313 for server dbi\nDelete associated WAL segments:\n\u00a0\u00a0\u00a0 00000001000000000000001F\n\u00a0\u00a0\u00a0 000000010000000000000020\n\u00a0\u00a0\u00a0 000000010000000000000020.00000020.backup\n\u00a0\u00a0\u00a0 000000010000000000000021\n\u00a0\u00a0\u00a0 ......\n\u00a0\u00a0\u00a0 000000010000000000000037\n\u00a0\u00a0\u00a0 000000010000000000000038\nDone<\/pre>\n<p>&nbsp;<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">barman list-backup dbi\ndbi 20131010T093548 - Thu Oct 10 09:36:02 2013 - Size: 215.0 MiB - WAL Size: 16.0 MiB\ndbi 20131002T114643 - Wed Oct\u00a0 2 11:46:53 2013 - Size: 197.0 MiB - WAL Size: 1.0 GiB\ndbi 20130929T113103 - Sun Sep 29 11:31:09 2013 - Size: 107.0 MiB - WAL Size: 915.0 MiB\ndbi 20130927T174926 - Fri Sep 27 17:51:55 2013 - Size: 107.0 MiB - WAL Size: 6.0 MiB<\/pre>\n<p>Il est par ailleurs possible de supprimer une sauvegarde interm\u00e9diaire avec la commande delete. Un exemple\u00a0:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><samp><\/samp>barman list-backup dbi\ndbi 20131010T103012 - Thu Oct 10 10:30:22 2013 - Size: 215.0 MiB - WAL Size: 0 B\ndbi 20131010T093548 - Thu Oct 10 09:36:02 2013 - Size: 215.0 MiB - WAL Size: 16.0 MiB\ndbi 20131002T114643 - Wed Oct\u00a0 2 11:46:53 2013 - Size: 197.0 MiB - WAL Size: 1.0 GiB\ndbi 20130929T113103 - Sun Sep 29 11:31:09 2013 - Size: 107.0 MiB - WAL Size: 915.0 MiB\ndbi 20130927T174926 - Fri Sep 27 17:51:55 2013 - Size: 107.0 MiB - WAL Size: 6.0 MiB - OBSOLETEbarman delete dbi 20131010T093548\nDeleting backup 20131010T093548 for server dbi\nDonebarman list-backup dbi\ndbi 20131010T103012 - Thu Oct 10 10:30:22 2013 - Size: 215.0 MiB - WAL Size: 0 B\ndbi 20131002T114643 - Wed Oct\u00a0 2 11:46:53 2013 - Size: 197.0 MiB - WAL Size: 1.0 GiB\ndbi 20130929T113103 - Sun Sep 29 11:31:09 2013 - Size: 107.0 MiB - WAL Size: 915.0 MiB\ndbi 20130927T174926 - Fri Sep 27 17:51:55 2013 - Size: 107.0 MiB - WAL Size: 6.0 MiB<\/pre>\n<p>Comme vous pouvez le constater la notion d&#8217;obsolescence de la derni\u00e8re sauvegarde n&#8217;est pas li\u00e9e au nombre de sauvegarde r\u00e9alis\u00e9e mais au nombre r\u00e9sident sur disque.<\/p>\n<p>;<\/p>\n<h3>Reconstruction avec retour \u00e0 une date donn\u00e9e. ( PITR )<\/h3>\n<p>Description de la situation: Nous avons une base dbi sur le serveur vmpgdeb2 sauvegard\u00e9e sur notre serveur de sauvegarde avec pgbarman.<br \/>\nNous avons un projet de mont\u00e9e de version de cette base et nous voulons tester la proc\u00e9dure. Pour cela nous allons reconstruire sur la machine vmpgdeb3 une base test \u00e0 partir d&#8217;une sauvegarde de la base au 9 octobre 17:00.<\/p>\n<p>La commande de r\u00e9cup\u00e9ration sera la suivante\u00a0:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">barman recover --remote-ssh-command=''ssh postgres@vmpgdeb3''--target-time ''2013-10-09 17:00:00.000'' dbi 20131002T114643 \/u02\/pg\/data\/testdb<\/pre>\n<p>Il faudra pr\u00e9alablement autoriser la connexion au serveur vmpgdeb3 et donner les droits de cr\u00e9ation sur le r\u00e9pertoire \/u02\/pg\/data \u00e0 l&#8217;utilisateur Postgres.<br \/>\nEx\u00e9cution de la commande qui est plut\u00f4t une commande de restoration que de reconstruction :<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">barman recover --remote-ssh-command=''ssh <a href=\"mailto:postgres@vmpgdeb3''--target-time ''2013-10-09\">postgres@vmpgdeb3''--target-time ''2013-10-09<\/a> 17:00:00.000'' dbi 20131002T114643 \/u02\/pg\/data\/testdbStarting remote restore for server dbi using backup 20131002T114643\nDestination directory: \/u02\/pg\/data\/testdb\nDoing PITR. Recovery target time: '2013-10-09 17:00:00'\nCopying the base backup.\nCopying required wal segments.\nGenerating recovery.conf\nThe archive_command was set to 'false' to prevent data losses.Your PostgreSQL server has been successfully prepared for recovery!Please review network and archive related settings in the PostgreSQL\nconfiguration file before starting the just recovered instance.<\/pre>\n<p>Le r\u00e9sultat sur le serveur vmpgdeb3 est\u00a0:<\/p>\n<ol>\n<li>la cr\u00e9ation d&#8217;un r\u00e9pertoire contenant la base<\/li>\n<li>la cr\u00e9ation dans ce r\u00e9pertoire, en plus des fichiers de la base, du r\u00e9pertoire barman_xlog contenant l&#8217;ensemble des fichiers WAL n\u00e9cessaires \u00e0 la reconstruction.<\/li>\n<li>La sauvegarde du fichier postgresql.conf sous le nom postgresql.conf.origin<\/li>\n<li>la cr\u00e9ation d&#8217;un fichier recovery.conf ou nous trouverons les commandes de recovery.<\/li>\n<\/ol>\n<p>Contenu de recovery.conf :<\/p>\n<p>cat recovery.conf<br \/>\nrestore_command = &#8216;cp barman_xlog\/%f %p&#8217;<br \/>\nrecovery_end_command = &#8216;rm -fr barman_xlog&#8217;<br \/>\nrecovery_target_time = &#8216;2013-10-09 17:00:00.000&#8217;<\/p>\n<p>Modification de postgresql.conf:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">diff postgresql.conf.origin postgresql.conf\n183c183,184\n&lt; archive_command = 'rsync -a %p barman@vmpgdeb1:\/u03\/pg\/backup\/dbi\/incoming\/%f'\u00a0\u00a0\u00a0 # command to use to archive a logfile segment\n---\n&gt; #BARMAN# archive_command = 'rsync -a %p barman@vmpgdeb1:\/u03\/pg\/backup\/dbi\/incoming\/%f'\u00a0\u00a0\u00a0 # command to use to archive a logfile segment\n&gt; archive_command = false<\/pre>\n<p>Avant de lancer la r\u00e9cup\u00e9ration, nous devons modifier les param\u00e8tres propres \u00e0 notre environnement de travail, \u00e0 savoir\u00a0:<\/p>\n<ul>\n<li>Ajout du cluster dans le fichier postgresql.cnf de notre gestionnaire d&#8217;environnement dmkpg<\/li>\n<li>Cr\u00e9ation d&#8217;un r\u00e9pertoire d&#8217;administration de la base<\/li>\n<li>Modification du port de connexion et de la destination du logging<\/li>\n<\/ul>\n<p>On peut ensuite, une fois l&#8217;environnement positionn\u00e9, d\u00e9marrer le cluster de db par la commande\u00a0:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">pg_ctl start\nserver starting<\/pre>\n<p>Le processus de r\u00e9cup\u00e9ration d\u00e9marre imm\u00e9diatement et s\u2019interrompt lorsqu\u2019il a atteint la derni\u00e8re transaction compl\u00e8te avant le point de restoration, dans notre cas, la base ayant \u00e9t\u00e9 arr\u00eat\u00e9e entre le 6 et le 9 octobre. Le restore n&#8217;a pas pu se poursuivre au-del\u00e0 de la derni\u00e8re transaction compl\u00e8te enregistr\u00e9e :<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">last completed transaction was at log time 2013-10-06 17:19:26.555007+02\n2013-10-10 12:03:15 CEST [2597]: [93-1] user=,db= LOG:\u00a0 restored log file \"0000000100000000000000D1\" from archive<\/pre>\n<p>Un examen des WAL montre que la base a produit des archives depuis le 6 octobre, mais uniquement parce que le param\u00e8tre archive_timeout = 3600 \u00e9tait actif ou parce que le cluster de base avait red\u00e9marr\u00e9 :<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\">-rw------- 1 barman postgres 16777216 Oct\u00a0 9 11:47 \/u03\/pg\/backup\/dbi\/wals\/0000000100000000\/0000000100000000000000CA\n-rw------- 1 barman postgres 16777216 Oct\u00a0 9 12:47 \/u03\/pg\/backup\/dbi\/wals\/0000000100000000\/0000000100000000000000CB\n-rw------- 1 barman postgres 16777216 Oct\u00a0 9 13:47 \/u03\/pg\/backup\/dbi\/wals\/0000000100000000\/0000000100000000000000CC\n-rw------- 1 barman postgres 16777216 Oct\u00a0 9 14:47 \/u03\/pg\/backup\/dbi\/wals\/0000000100000000\/0000000100000000000000CD\n-rw------- 1 barman postgres 16777216 Oct\u00a0 9 15:47 \/u03\/pg\/backup\/dbi\/wals\/0000000100000000\/0000000100000000000000CE\n-rw------- 1 barman postgres 16777216 Oct\u00a0 9 16:24 \/u03\/pg\/backup\/dbi\/wals\/0000000100000000\/0000000100000000000000CF<\/pre>\n<p>Une fois le \u00ab\u00a0recover\u00a0\u00bb fini, le moteur de postgres renomme le fichier recovery.conf en recovery.done et ouvre la base avec une new timeline et produit des fichiers WAL avec cette nouvelle timeline ce qui donne\u00a0:<\/p>\n<pre class=\"brush: actionscript3; gutter: true; first-line: 1\"><samp><\/samp>-rw-------\u00a0 1 postgres postgres 16777216 Oct 10 12:03 0000000200000000000000D1\n-rw-------\u00a0 1 postgres postgres 16777216 Oct 10 12:07 0000000200000000000000D2\n-rw-------\u00a0 1 postgres postgres 16777216 Oct 10 12:11 0000000200000000000000D3\n-rw-------\u00a0 1 postgres postgres 16777216 Oct 10 12:11 0000000200000000000000D4<\/pre>\n<p>La base est imm\u00e9diatement disponible en fin de r\u00e9cup\u00e9ration.<\/p>\n<h3>Conclusion<\/h3>\n<p>Pgbarman est une solution simple et efficace de sauvegarde de vos bases PostgreSQL, il n&#8217;existe pas encore de commandes permettant de mettre en \u0153uvre une r\u00e9plication de base \u00e0 partir de Pgbarman. Le chemin restant \u00e0 faire ne semblant pas tr\u00e8s grand, l&#8217;\u00e9quipe de d\u00e9veloppement de 2nd Quadrant y pense et est ouverte au proposition de sponsoring d&#8217;une telle fonctionnalit\u00e9.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fin 2012, j&#8217;ai pr\u00e9sent\u00e9\u00a0\u00ab\u00a0pgbarman\u00a0\u00bb, une solution de sauvegarde et r\u00e9cup\u00e9ration pour PostgreSQL et d\u00e9crit son installation. Pgbarman fournit un ensemble de commandes vous permettant la mise en \u0153uvre de sauvegardes vers un serveur d\u00e9di\u00e9. Le principal int\u00e9r\u00eat est \u00e0 mon sens la gestion d&#8217;un catalogue de vos sauvegardes et la g\u00e9n\u00e9ration de commandes destin\u00e9es \u00e0 [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":2855,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[199],"tags":[202,329,77,226],"type_dbi":[],"class_list":["post-2922","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hardware-storage","tag-backup","tag-barman","tag-postgresql","tag-recovery"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL - dbi Blog<\/title>\n<meta name=\"description\" content=\"Pgbarman est une solution simple et efficace de sauvegarde de vos bases PostgreSQL, il n&#039;existe pas encore de commandes permettant de mettre en \u0153uvre une r\u00e9plication de base \u00e0 partir de Pgbarman. Le chemin restant \u00e0 faire ne semblant pas tr\u00e8s grand, l&#039;\u00e9quipe de d\u00e9veloppement de 2nd Quadrant y pense et est ouverte au proposition de sponsoring d&#039;une telle fonctionnalit\u00e9.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL\" \/>\n<meta property=\"og:description\" content=\"Pgbarman est une solution simple et efficace de sauvegarde de vos bases PostgreSQL, il n&#039;existe pas encore de commandes permettant de mettre en \u0153uvre une r\u00e9plication de base \u00e0 partir de Pgbarman. Le chemin restant \u00e0 faire ne semblant pas tr\u00e8s grand, l&#039;\u00e9quipe de d\u00e9veloppement de 2nd Quadrant y pense et est ouverte au proposition de sponsoring d&#039;une telle fonctionnalit\u00e9.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2013-10-18T01:04:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/\"},\"author\":{\"name\":\"Open source Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b\"},\"headline\":\"Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL\",\"datePublished\":\"2013-10-18T01:04:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/\"},\"wordCount\":850,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg\",\"keywords\":[\"Backup\",\"Barman\",\"PostgreSQL\",\"Recovery\"],\"articleSection\":[\"Hardware &amp; Storage\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/\",\"name\":\"Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg\",\"datePublished\":\"2013-10-18T01:04:00+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b\"},\"description\":\"Pgbarman est une solution simple et efficace de sauvegarde de vos bases PostgreSQL, il n'existe pas encore de commandes permettant de mettre en \u0153uvre une r\u00e9plication de base \u00e0 partir de Pgbarman. Le chemin restant \u00e0 faire ne semblant pas tr\u00e8s grand, l'\u00e9quipe de d\u00e9veloppement de 2nd Quadrant y pense et est ouverte au proposition de sponsoring d'une telle fonctionnalit\u00e9.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"caption\":\"Open source Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL - dbi Blog","description":"Pgbarman est une solution simple et efficace de sauvegarde de vos bases PostgreSQL, il n'existe pas encore de commandes permettant de mettre en \u0153uvre une r\u00e9plication de base \u00e0 partir de Pgbarman. Le chemin restant \u00e0 faire ne semblant pas tr\u00e8s grand, l'\u00e9quipe de d\u00e9veloppement de 2nd Quadrant y pense et est ouverte au proposition de sponsoring d'une telle fonctionnalit\u00e9.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/","og_locale":"en_US","og_type":"article","og_title":"Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL","og_description":"Pgbarman est une solution simple et efficace de sauvegarde de vos bases PostgreSQL, il n'existe pas encore de commandes permettant de mettre en \u0153uvre une r\u00e9plication de base \u00e0 partir de Pgbarman. Le chemin restant \u00e0 faire ne semblant pas tr\u00e8s grand, l'\u00e9quipe de d\u00e9veloppement de 2nd Quadrant y pense et est ouverte au proposition de sponsoring d'une telle fonctionnalit\u00e9.","og_url":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/","og_site_name":"dbi Blog","article_published_time":"2013-10-18T01:04:00+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg","type":"image\/jpeg"}],"author":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/"},"author":{"name":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"headline":"Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL","datePublished":"2013-10-18T01:04:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/"},"wordCount":850,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg","keywords":["Backup","Barman","PostgreSQL","Recovery"],"articleSection":["Hardware &amp; Storage"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/","url":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/","name":"Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg","datePublished":"2013-10-18T01:04:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b"},"description":"Pgbarman est une solution simple et efficace de sauvegarde de vos bases PostgreSQL, il n'existe pas encore de commandes permettant de mettre en \u0153uvre une r\u00e9plication de base \u00e0 partir de Pgbarman. Le chemin restant \u00e0 faire ne semblant pas tr\u00e8s grand, l'\u00e9quipe de d\u00e9veloppement de 2nd Quadrant y pense et est ouverte au proposition de sponsoring d'une telle fonctionnalit\u00e9.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/2e1ax_default_entry_postgresqlfr-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/pgbarman-gestion-de-sauvegarde-et-recuperation\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Pgbarman : gestion de sauvegarde et r\u00e9cup\u00e9ration PostgreSQL"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/59554f0d99383431eb6ed427e338952b","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","caption":"Open source Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2922","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=2922"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/2922\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/2855"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=2922"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=2922"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=2922"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=2922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}