{"id":259,"date":"2022-01-21T07:42:42","date_gmt":"2022-01-21T06:42:42","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/2022\/01\/21\/new-options-for-pg_basebackup-in-postgresql-15\/"},"modified":"2022-04-06T08:27:00","modified_gmt":"2022-04-06T06:27:00","slug":"new-options-for-pg_basebackup-in-postgresql-15","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/","title":{"rendered":"New options for pg_basebackup in PostgreSQL 15"},"content":{"rendered":"<p>If, and you should, are doing base backups of your PostgreSQL instances you&#8217;ve probably used <a href=\"https:\/\/www.postgresql.org\/docs\/devel\/app-pgbasebackup.html\" target=\"_blank\" rel=\"noopener\">pg_basebackup<\/a>. Another use case for pg_basebackup is to create a starting point for replicas when you are setting up streaming replication. Up to now, pg_basebackup will send the result always to the node\/machine where you started it. That means: If you started pg_basebackup on your client or backup machine, then the resulting base backup will go there. No other options are available in recent versions of PostgreSQL. This will change with PostgreSQL 15.<br \/>\n<!--more--><\/p>\n<p>The commit which implemented this is this (don&#8217;t be confused by the commit date, it really happened yesterday, not in 2021):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\ncommit 3500ccc39b0dadd1068a03938e4b8ff562587ccc (HEAD -&gt; master, origin\/master, origin\/HEAD)\nAuthor: Robert Haas \nDate:   Tue Nov 16 15:20:50 2021 -0500\n\n    Support base backup targets.\n    \n    pg_basebackup now has a --target=TARGET[:DETAIL] option. If specfied,\n    it is sent to the server as the value of the TARGET option to the\n    BASE_BACKUP command. If DETAIL is included, it is sent as the value of\n    the new TARGET_DETAIL option to the BASE_BACKUP command.  If the\n    target is anything other than 'client', pg_basebackup assumes that it\n    will now be the server's job to write the backup in a location somehow\n    defined by the target, and that it therefore needs to write nothing\n    locally. However, the server will still send messages to the client\n    for progress reporting purposes.\n    \n    On the server side, we now support two additional types of backup\n    targets.  There is a 'blackhole' target, which just throws away the\n    backup data without doing anything at all with it. Naturally, this\n    should only be used for testing and debugging purposes, since you will\n    not actually have a backup when it finishes running. More usefully,\n    there is also a 'server' target, so you can now use something like\n    'pg_basebackup -Xnone -t server:\/SOME\/PATH' to write a backup to some\n    location on the server. We can extend this to more types of targets\n    in the future, and might even want to create an extensibility\n    mechanism for adding new target types.\n    \n    Since WAL fetching is handled with separate client-side logic, it's\n    not part of this mechanism; thus, backups with non-default targets\n    must use -Xnone or -Xfetch.\n    \n    Patch by me, with a bug fix by Jeevan Ladhe.  The patch set of which\n    this is a part has also had review and\/or testing from Tushar Ahuja,\n    Suraj Kharage, Dipesh Pandit, and Mark Dilger.\n    \n    Discussion: http:\/\/postgr.es\/m\/CA+TgmoaYZbz0=Yk797aOJwkGJC-LK3iXn+wzzMx7KdwNpZhS5g@mail.gmail.com\n<\/pre>\n<p>To demonstrate the feature I&#8217;ve setup two nodes. This is my client:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [10]\">\npostgres@debian11latest:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin$ ip a\n1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1\/8 scope host lo\n       valid_lft forever preferred_lft forever\n    inet6 ::1\/128 scope host \n       valid_lft forever preferred_lft forever\n2: enp1s0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n    link\/ether 52:54:00:ca:ce:73 brd ff:ff:ff:ff:ff:ff\n    inet 192.168.100.240\/24 brd 192.168.100.255 scope global dynamic enp1s0\n       valid_lft 3155sec preferred_lft 3155sec\n    inet6 fe80::5054:ff:feca:ce73\/64 scope link \n       valid_lft forever preferred_lft forever\n<\/pre>\n<p>&#8230; and this is my server:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [10]\">\npostgres@debian11pg:\/u01\/app\/postgres\/product\/DEV\/db_0\/ [pgdev] ip a\n1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1\/8 scope host lo\n       valid_lft forever preferred_lft forever\n    inet6 ::1\/128 scope host \n       valid_lft forever preferred_lft forever\n2: enp1s0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n    link\/ether 52:54:00:c7:93:6c brd ff:ff:ff:ff:ff:ff\n    inet 192.168.100.241\/24 brd 192.168.100.255 scope global dynamic enp1s0\n       valid_lft 2278sec preferred_lft 2278sec\n    inet6 fe80::5054:ff:fec7:936c\/64 scope link \n       valid_lft forever preferred_lft forever\n<\/pre>\n<p>What happens if I start a base backup on the client is, that the data is send from the server to my client and I&#8217;ll have the base backup locally stored on the client:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,2,3]\">\npostgres@debian11latest:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin$ mkdir \/var\/tmp\/backup\npostgres@debian11latest:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin$ .\/pg_basebackup -h 192.168.100.241 -F t -D \/var\/tmp\/backup\/\npostgres@debian11latest:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin$ ls -l \/var\/tmp\/backup\/\ntotal 39624\n-rw------- 1 postgres postgres   138469 Jan 21 07:41 backup_manifest\n-rw------- 1 postgres postgres 23652864 Jan 21 07:41 base.tar\n-rw------- 1 postgres postgres 16778752 Jan 21 07:41 pg_wal.tar\n<\/pre>\n<p>What the above introduces is to tell the server to store the backup. The option for this is this one:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@debian11latest:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin$ .\/pg_basebackup --help | grep -A 1 TARGET\n  -t, --target=TARGET[:DETAIL]\n                         backup target (if other than client)\n<\/pre>\n<p>So now, again executing pg_basebackup from the client, we can do this:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@debian11latest:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin$ ssh 192.168.100.241 'mkdir \/var\/tmp\/bb'\npostgres@debian11latest:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin$ .\/pg_basebackup -h 192.168.100.241 -X none -t server:\/var\/tmp\/bb\/\npostgres@debian11latest:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin$ ssh 192.168.100.241 'ls -l \/var\/tmp\/bb\/'\ntotal 23236\n-rw------- 1 postgres postgres   138469 Jan 21 07:57 backup_manifest\n-rw------- 1 postgres postgres 23654400 Jan 21 07:57 base.tar\n<\/pre>\n<p>Now the backup is generated on the server without sending it to the client. For testing purposes there is also the &#8220;blackhole&#8221; target, which just throws away the backup:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@debian11latest:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin$ .\/pg_basebackup -h 192.168.100.241 -X none -t blackhole\npostgres@debian11latest:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin$ \n<\/pre>\n<p>Why is that feature cool? Because now there is the infrastructure to implement other targets, maybe <a href=\"https:\/\/aws.amazon.com\/s3\/\" target=\"_blank\" rel=\"noopener\">S3<\/a>, or whatever.<\/p>\n<p>Another feature that just got committed is <a href=\"https:\/\/git.postgresql.org\/gitweb\/?p=postgresql.git;a=commit;h=5c649fe153367cdab278738ee4aebbfd158e0546\" target=\"_blank\" rel=\"noopener\">this<\/a>: Extend the options of pg_basebackup to control compression.<\/p>\n<p>This gives you more options for compression:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\npostgres@debian11pg:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin\/ [pgdev] .\/pg_basebackup --help | grep -A 1 LEVEL\n  -Z, --compress={gzip,none}[:LEVEL] or [LEVEL]\n                         compress tar output with given compression method or level\n<\/pre>\n<p>For the moment there is only &#8220;none&#8221; and &#8220;gzip&#8221;:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,2,3,6,7,8]\">\npostgres@debian11pg:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin\/ [pgdev] mkdir \/var\/tmp\/aa\npostgres@debian11pg:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin\/ [pgdev] .\/pg_basebackup -D \/var\/tmp\/aa\/ -Z none\npostgres@debian11pg:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin\/ [pgdev] ls \/var\/tmp\/aa\/\nbackup_label     base              global        pg_dynshmem  pg_ident.conf  pg_logical    pg_notify    pg_serial     pg_stat      pg_subtrans  pg_twophase  pg_wal   postgresql.auto.conf\nbackup_manifest  current_logfiles  pg_commit_ts  pg_hba.conf  pg_log         pg_multixact  pg_replslot  pg_snapshots  pg_stat_tmp  pg_tblspc    PG_VERSION   pg_xact  postgresql.conf\npostgres@debian11pg:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin\/ [pgdev] rm -rf \/var\/tmp\/aa\/*\npostgres@debian11pg:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin\/ [pgdev] .\/pg_basebackup -D \/var\/tmp\/aa\/ -F t -Z gzip:4\npostgres@debian11pg:\/u01\/app\/postgres\/product\/DEV\/db_0\/bin\/ [pgdev] ls -l \/var\/tmp\/aa\/\ntotal 3316\n-rw------- 1 postgres postgres  138314 Jan 21 08:39 backup_manifest\n-rw------- 1 postgres postgres 3235329 Jan 21 08:39 base.tar.gz\n-rw------- 1 postgres postgres   17075 Jan 21 08:39 pg_wal.tar.gz\n<\/pre>\n<p>The same applies here: The infrastructure is now in place, and other options can be added. Nice features, thanks to all involved.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If, and you should, are doing base backups of your PostgreSQL instances you&#8217;ve probably used pg_basebackup. Another use case for pg_basebackup is to create a starting point for replicas when you are setting up streaming replication. Up to now, pg_basebackup will send the result always to the node\/machine where you started it. That means: If [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[77],"type_dbi":[],"class_list":["post-259","post","type-post","status-publish","format-standard","hentry","category-database-administration-monitoring","tag-postgresql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>New options for pg_basebackup in PostgreSQL 15 - dbi Blog<\/title>\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\/new-options-for-pg_basebackup-in-postgresql-15\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"New options for pg_basebackup in PostgreSQL 15\" \/>\n<meta property=\"og:description\" content=\"If, and you should, are doing base backups of your PostgreSQL instances you&#8217;ve probably used pg_basebackup. Another use case for pg_basebackup is to create a starting point for replicas when you are setting up streaming replication. Up to now, pg_basebackup will send the result always to the node\/machine where you started it. That means: If [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-21T06:42:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-04-06T06:27:00+00:00\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 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\\\/new-options-for-pg_basebackup-in-postgresql-15\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-options-for-pg_basebackup-in-postgresql-15\\\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"New options for pg_basebackup in PostgreSQL 15\",\"datePublished\":\"2022-01-21T06:42:42+00:00\",\"dateModified\":\"2022-04-06T06:27:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-options-for-pg_basebackup-in-postgresql-15\\\/\"},\"wordCount\":310,\"commentCount\":0,\"keywords\":[\"PostgreSQL\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-options-for-pg_basebackup-in-postgresql-15\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-options-for-pg_basebackup-in-postgresql-15\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-options-for-pg_basebackup-in-postgresql-15\\\/\",\"name\":\"New options for pg_basebackup in PostgreSQL 15 - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"datePublished\":\"2022-01-21T06:42:42+00:00\",\"dateModified\":\"2022-04-06T06:27:00+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-options-for-pg_basebackup-in-postgresql-15\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-options-for-pg_basebackup-in-postgresql-15\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/new-options-for-pg_basebackup-in-postgresql-15\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"New options for pg_basebackup in PostgreSQL 15\"}]},{\"@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\\\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\\\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/westermanndanie\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/daniel-westermann\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"New options for pg_basebackup in PostgreSQL 15 - dbi Blog","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\/new-options-for-pg_basebackup-in-postgresql-15\/","og_locale":"en_US","og_type":"article","og_title":"New options for pg_basebackup in PostgreSQL 15","og_description":"If, and you should, are doing base backups of your PostgreSQL instances you&#8217;ve probably used pg_basebackup. Another use case for pg_basebackup is to create a starting point for replicas when you are setting up streaming replication. Up to now, pg_basebackup will send the result always to the node\/machine where you started it. That means: If [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/","og_site_name":"dbi Blog","article_published_time":"2022-01-21T06:42:42+00:00","article_modified_time":"2022-04-06T06:27:00+00:00","author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"New options for pg_basebackup in PostgreSQL 15","datePublished":"2022-01-21T06:42:42+00:00","dateModified":"2022-04-06T06:27:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/"},"wordCount":310,"commentCount":0,"keywords":["PostgreSQL"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/","url":"https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/","name":"New options for pg_basebackup in PostgreSQL 15 - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"datePublished":"2022-01-21T06:42:42+00:00","dateModified":"2022-04-06T06:27:00+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/new-options-for-pg_basebackup-in-postgresql-15\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"New options for pg_basebackup in PostgreSQL 15"}]},{"@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\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/259","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\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=259"}],"version-history":[{"count":3,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/259\/revisions"}],"predecessor-version":[{"id":667,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/259\/revisions\/667"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=259"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}