SlideShare a Scribd company logo
1 of 62
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
How can I be ready for the
next recovery of a
PostgreSQL database?
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
PostgreSQL continuous
backup and PITR with
Barman
Webinar - 10 June 2020
Gabriele Bartolini
Head of Global Support
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Something about me
● PostgreSQL user since ~2000
● Co-Founder of 2ndQuadrant
○ Head of Global Support
○ Leader of Cloud Native Initiative
○ Founding member of Barman
● Lean and DevOps practitioner
● Co-Founder of PostgreSQL
Europe and ITPUG
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Public Asciinema screencasts
1. Verify PostgreSQL is up and running
2. Create 'barman' superuser and 'streaming_barman' replication user in
PostgreSQL
3. RPM installation overview
4. Our first backup
5. Incremental backup based on hard links
6. Remote recovery and setup of Hot standby with on-demand WAL
fetching
7. Add WAL streaming to the standby server
8. Add 'zero data loss' or RPO=0 to the Primary/Standby/Barman cluster
9. Introduce geo-redundancy for a backed up server
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Part One
Basic concepts for backup and recovery with
PostgreSQL
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Logical backup with pg_dump
● Consistent snapshot of a PostgreSQL database
● Portable across major versions
● SQL format or Binary format
● Very useful
○ Development
○ Migrations
○ Dump and restore of portions of a database
● Not suitable for disaster recovery
○ Would you trust a home alarm system that takes a picture once a day?
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Continuous physical backup
● Evolution of PostgreSQL’s crash recovery
○ Entire PostgreSQL instance, not a single database
● Founded on Write Ahead Logs
○ Also known as REDO log
○ Changes to the database are first written in the REDO logs, then in the data files
○ WAL files are by default 16MB
● Basic theory:
○ Archive WAL files on a different location
○ Take a physical copy of the PostgreSQL data files on a different location
● Introduced in PostgreSQL 8.1 (2005)
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Continuous Recovery
● Founded on:
○ Standby servers
○ Continuous recovery
● Basic Theory:
○ Copy the data files on another server
○ Apply “redo” logs (roll forward)
■ Until the end of the WAL (full recovery)
■ Up to an exact moment (Point In Time Recovery)
○ Inspect or promote the server (exit continuous recovery)
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
WAL shipping
● Transfer WAL records to a different location
● WAL archiving:
○ Through PostgreSQL’s archive_command
■ Every time a WAL file is closed (16MB or archive_timeout)
○ Through native streaming replication
■ Continuously (WAL sender and WAL receiver)
■ Also synchronous (“zero data loss”)
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Freedom & creativity
● Lego bricks
○ PostgreSQL continuous backup
○ WAL shipping
○ PostgreSQL continuous recovery
● Infinite combinations
○ Architectures
○ Recovery objectives (RPO and RTO)
○ Processes
○ Use cases
● Temptation: DIY solution
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Part Two
Key aspects of Barman
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
First backup & recovery tool for Postgres
● Conceived in 2011, Open sourced in 2012
● Linux & Python, started with Postgres 8.3
● Innovative concepts at that time:
○ Remote backup
○ Remote recovery
○ Multiple PostgreSQL servers
○ Backup catalogue and independent WAL archive
○ Monitoring integration
○ WAL compression
○ Retention policies
○ Incremental backup and recovery
○ Hook scripts
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Requirements
1. Online backup
2. Automation
3. Management of frequency and retention
4. Off-site copies
5. Notifications of anomalies
6. Access limitations
7. Availability
8. Encryption
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Lean approach (customers needs)
● Foster migrations from Oracle
● Parallel backup and recovery
○ Reduce backup and recovery times on very large databases
● Streaming replication support
○ Including synchronous replication for Zero Data loss backups
● On-Demand WAL fetching (WAL hub)
● Geo-redundancy
● Object stores interface (Barman Cloud)
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Faster, Cheaper, Safer (DevOps)
● “We build it, we own it”
○ Barman team is on the front line of 2ndQ Support Incidents for Barman
● Multi-disciplinary development team
○ Peer review
● Trunk based development
● CI/CD and test automation
○ Build quality in / Shift left on security
○ Thousands of automated tests per commit
■ Unit tests, Smoke tests, Acceptance tests, Integration tests
■ All supported PostgreSQL versions and distributions
■ Release time went from 1 week to 2 hours
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Part Three
Tips
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#1 - Separate Barman from Postgres
● Let Barman and Postgres:
○ Run on different servers
○ Use different storage
● Think about:
○ Resilience
○ Commodity storage
■ Physical servers with high capacity local disks
○ Integration with standby servers
■ Zero data loss clusters
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#2 - Avoid network disks
● … if you can
● Some customers run Barman on NFS/CIFS/…
● Think about:
○ File lock issues
■ Place “barman_lock_directory” in the local Linux disk
○ Performance issues
■ Especially if storage is shared
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#3 - Favour locality over distance
● Let Barman and Postgres:
○ Be next to each other
○ In the same data centre
● Think about:
○ Data centre is a single point of failure - Yes, but don’t let it scare you
■ It can be solved
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#4 - WAL streaming
● Let Postgres stream WAL records to Barman
○ Enable WAL streaming
○ Ensure all WALs are shipped
■ Rely on replication slots
■ Fully automated with “create_slot” option
● Think about:
○ Asynchronous replication by default
○ Synchronous replication if …
■ You add a standby server
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#5 - WAL fetching
● Take advantage of WAL archive
● Use Barman as an “infinite” hub of WAL files
○ Forget about configuring “wal_keep_segments”
● On-demand remote fetching:
○ Standby servers
○ Recovery operations
● Parallel pre-fetch (performance boost)
● On the fly decompression
● “get-wal” feature
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#6 - Don’t take yourself so seriously
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#7 - Compress your WALs
● Set “compression” option, globally
● Performed by the WAL archiver process
○ Invoked automatically by the “cron” command
● gzip is normally fine
● Supported algorithms:
○ bzip2
○ pigz
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#8 - Your PostgreSQL building block
● The “Flux capacitor”:
○ Primary instance
○ Standby instance
○ Barman instance
● Think about:
○ High Availability
○ Disaster Recovery
○ Local standby servers
■ You can always add more
■ This architecture is simple yet very effective
○ Symmetric architecture (next rule)
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#9 - Multi-data centre architecture
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#10 - Encryption
● Encrypt at rest your:
○ PostgreSQL servers
○ Backup servers
● Think about:
○ Secure connections
○ Secure access to backup servers
○ Encryption of exported backup files:
■ Tar files on tape
■ Tar files on Cloud object stores
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#11 - Define your maximum RPO
● Clearly define your Recovery Point Objective
○ For example maximum 5 minutes
● Set “archive_timeout”
○ For example “archive_timeout = 5min”
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#12 - Reduce your RPO to 0
● Native synchronous replication
● Requirements:
○ A local standby
○ A local Barman
● Two options:
○ Zero data loss standby
○ Zero data loss backup
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#13 - Backup from a standby
● Available with PostgreSQL 9.6
○ 9.2 to 9.5 requires the pgespresso extension
● Think about:
○ Symmetric architecture
○ Off-load the primary
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#14 - Let “check” be your compass
● “barman check” is the most critical command
● It guides you
○ Setup process
○ Problem solving
● Think about:
○ Integration with alerting tools
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#15 - Monitoring
● Barman is on a Linux system
● That system must be under monitoring
○ Standard metrics
○ Disk usage
● Think about:
○ “barman check --nagios all”
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#16 - Weekly backups
● Start with weekly backups
○ Evaluate daily backups if you require shorter RTO
● Think about:
○ “barman backup all”
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#17 - Retention policies
● Automatically purge old backups
● Retention policies based on:
○ Redundancy (quantity)
○ Recovery window (time, Point of Recoverability)
● Think about:
○ Delete hook scripts
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#18 - Use rsync/SSH for backups
● Optimised algorithm
● Enables incremental copy
○ Set “reuse_backup = link” if your file system supports hard links
● Enables parallel copy
○ Set “parallel_jobs” option
● Think about:
○ Remember locality? Barman and Postgres are in the same network
■ Looser security measures
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#19 - Rely on object stores
● By … relaying to AWS S3 compatible object stores
○ Requires Boto3 library
○ Use “barman-cloud-wal-archive” for WAL files
● Public cloud, Private cloud, Hybrid clouds
○ E.g. use a local object store that relays to public cloud
● Think about:
○ Removing single point of failure for data availability
■ Data centre, Provider, Continent, Planet, … that’s it for now
■ Multi-tiered backup and recovery
○ Enhanced disaster recovery capabilities
○ Remember encryption!
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#20 - Public cloud, via Barman
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#21 - Public cloud, direct
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#22 - Local object store with gateway
To be implemented
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#23 - Geo-redundancy
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#24 - Aggressive start
● Enable “immediate_checkpoint”
● Speed up the start of the backup
○ Request a checkpoint without waiting for the scheduled one
● Think about:
○ Not available on standby servers
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#25 - Precautions
● minimum_redundancy
○ Safety measure: set it to 1
● last_backup_maximum_age
○ Based on the backup frequency
● max_incoming_wals_queue
○ Let “check” fail if your incoming queue gets too high
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#26 - Server configuration files
● Use a separate configuration file per server
● Place them in the /etc/barman.conf.d folder
● Suggested convention:
○ SERVER_ID-PGVERSION.conf
○ Example: juventus-12.conf
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#27 - Last version always wins
● Always install the latest version of Barman
○ Trunk based development
○ Backwards compatible
● Test our development snapshots
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#28 - Use our public repositories
● rpm.2ndquadrant.com
● apt.2ndquadrant.com
● Entry points:
○ Release level (default)
○ Snapshot level
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#29 - Cross data centre backups
● If you have to …
● Use network compression
● Think about:
○ Symmetric architecture
○ Locality
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#30 - Enjoy convention over configuration
● Most options in Barman:
○ Can be set globally in the configuration file
○ Can be overridden at server level
○ Have default values
● If you use our packages:
○ System configuration is already taken care of
■ User
■ Cron
■ Log rotation
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#31 - Get hooked
● Hook scripts
● Before/After certain events
● Two types:
○ Standard: in case of failure, no retry
○ Retry: in case of failure, retry
■ Typical: before WAL archive to relay WAL files in the Cloud
● See “barman-cloud-wal-archive” man page
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#32 - Work in small batches
● Configure archiver batch size
○ For standard archiving or streaming
○ By default unlimited batch
● Archiver process run by the “cron” command
○ Every minute
○ Tune it based on the number of expected WALs between two cron runs
○ Good value to start with is between 10 and 100
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#33 - JSON output
● Every command supports “-f json”
● Integration with other applications
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#34 - Principle Of Least Authority (POLA)
● Avoid using a superuser for Barman
● The “barman” user can be a standard user
○ With specific grants for backup and read operations
○ barman_streaming can be used for replication connections
● Requirements:
○ PostgreSQL 10+
○ Barman 2.11
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
#35 - Enhance gradually
● Consider:
○ One PostgreSQL instance
○ One Barman instance
● Think about:
○ Can I achieve Disaster Recovery?
○ Can I achieve High Availability?
○ Can I achieve Business Continuity?
○ What are my RPO and RTO?
○ Start with your goals, add components gradually to improve them
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Part Four
What lies ahead of us
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Version 2.11 (June 2020)
● “barman-cli-cloud” package
○ barman-cloud-wal-archive (experimental in 2.10)
○ barman-cloud-backup (experimental in 2.10)
○ barman-cloud-wal-restore
○ barman-cloud-restore
○ barman-cloud-list-backup
● Non superuser connections
● Bug fixes
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Tar format for backups
● Tier 2 - optional
● Introduce “tar_retention_policy”
○ >= retention_policy
● Compressed backups
● Encrypted backups
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Object store relay
● Tier 3 - optional
● Introduce “s3_retention_policy”
○ >= tar_retention_policy
● Compressed backups
● Encrypted backups
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Kubernetes
● Cloud Native PostgreSQL
○ Private operator by 2ndQuadrant
○ Public Docker images
● 1st stage:
○ Object store integration with barman-cli-cloud
○ Direct usage from the PostgreSQL primary node
■ Backup and WAL archive
● 2nd stage
○ Barman operator (Barman inside Kubernetes)
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Part Five
Conclusions
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Base backup information:
Disk usage : 24.2 TiB (24.2 TiB with WALs)
Incremental size : 6.7 TiB (-72.44%)
Timeline : 9
Begin WAL : 000000090000A9690000006A
End WAL : 000000090000A96D000000DC
WAL number : 1139
WAL compression ratio: 77.05%
Begin time : 2020-06-05 13:00:04.930924+00:00
End time : 2020-06-06 01:55:34.543064+00:00
Copy time : 12 hours, 47 minutes, 33 seconds + 42 seconds startup
Estimated throughput : 152.1 MiB/s ( 4 jobs)
Begin Offset : 13931024
End Offset : 14041528
Begin LSN : A969/6AD49210
End LSN : A96D/DCD641B8
WAL information:
No of files : 7136
Disk usage : 25.3 GiB
WAL rate : 90.79/hour
Compression ratio : 77.26%
Last available : 000000090000A989000000BC
Output of “barman show-backup” - Courtesy of Barman’s founding sponsor “Navionics”
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Recap
● “Flux capacitor”
● RPO=0 scenarios
● Very Large Databases
● Stable, robust and backwards compatible
● Supports all supported PostgreSQL versions
● Used in mission critical environments
● Used in our infrastructure at 2ndQuadrant
○ We can say: “It saved us once”
● Enhance gradually
● Open source
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
License
Attribution 4.0 International (CC BY 4.0)
You are free to:
Share — copy and redistribute the material in any medium or
format
Adapt — remix, transform, and build upon the material for any
purpose, even commercially.
The licensor cannot revoke these freedoms as long as you
follow the license terms.
Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com
PostgreSQL continuous backup
and PITR with Barman - Webinar
Questions?
www.pgbarman.org
info@2ndquadrant.com

More Related Content

What's hot

ProxySQL for MySQL
ProxySQL for MySQLProxySQL for MySQL
ProxySQL for MySQLMydbops
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HAharoonm
 
Optimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performanceOptimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performanceMariaDB plc
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PGConf APAC
 
Using all of the high availability options in MariaDB
Using all of the high availability options in MariaDBUsing all of the high availability options in MariaDB
Using all of the high availability options in MariaDBMariaDB plc
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsCommand Prompt., Inc
 
Postgresql Database Administration- Day3
Postgresql Database Administration- Day3Postgresql Database Administration- Day3
Postgresql Database Administration- Day3PoguttuezhiniVP
 
High Availability and Disaster Recovery in PostgreSQL - EQUNIX
High Availability and Disaster Recovery in PostgreSQL - EQUNIXHigh Availability and Disaster Recovery in PostgreSQL - EQUNIX
High Availability and Disaster Recovery in PostgreSQL - EQUNIXJulyanto SUTANDANG
 
Connection Pooling in PostgreSQL using pgbouncer
Connection Pooling in PostgreSQL using pgbouncer Connection Pooling in PostgreSQL using pgbouncer
Connection Pooling in PostgreSQL using pgbouncer Sameer Kumar
 
Postgresql database administration volume 1
Postgresql database administration volume 1Postgresql database administration volume 1
Postgresql database administration volume 1Federico Campoli
 
MySQL GTID 시작하기
MySQL GTID 시작하기MySQL GTID 시작하기
MySQL GTID 시작하기I Goo Lee
 
PostgreSQL Extensions: A deeper look
PostgreSQL Extensions:  A deeper lookPostgreSQL Extensions:  A deeper look
PostgreSQL Extensions: A deeper lookJignesh Shah
 
Maxscale_메뉴얼
Maxscale_메뉴얼Maxscale_메뉴얼
Maxscale_메뉴얼NeoClova
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep InternalEXEM
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesJimmy Angelakos
 
Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Mydbops
 
Troubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationTroubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationAlexey Lesovsky
 
PGConf.ASIA 2017 Logical Replication Internals (English)
PGConf.ASIA 2017 Logical Replication Internals (English)PGConf.ASIA 2017 Logical Replication Internals (English)
PGConf.ASIA 2017 Logical Replication Internals (English)Noriyoshi Shinoda
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)Jean-François Gagné
 

What's hot (20)

ProxySQL for MySQL
ProxySQL for MySQLProxySQL for MySQL
ProxySQL for MySQL
 
PostgreSQL HA
PostgreSQL   HAPostgreSQL   HA
PostgreSQL HA
 
Optimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performanceOptimizing MariaDB for maximum performance
Optimizing MariaDB for maximum performance
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
 
Using all of the high availability options in MariaDB
Using all of the high availability options in MariaDBUsing all of the high availability options in MariaDB
Using all of the high availability options in MariaDB
 
PostgreSQL Replication Tutorial
PostgreSQL Replication TutorialPostgreSQL Replication Tutorial
PostgreSQL Replication Tutorial
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System Administrators
 
Postgresql Database Administration- Day3
Postgresql Database Administration- Day3Postgresql Database Administration- Day3
Postgresql Database Administration- Day3
 
High Availability and Disaster Recovery in PostgreSQL - EQUNIX
High Availability and Disaster Recovery in PostgreSQL - EQUNIXHigh Availability and Disaster Recovery in PostgreSQL - EQUNIX
High Availability and Disaster Recovery in PostgreSQL - EQUNIX
 
Connection Pooling in PostgreSQL using pgbouncer
Connection Pooling in PostgreSQL using pgbouncer Connection Pooling in PostgreSQL using pgbouncer
Connection Pooling in PostgreSQL using pgbouncer
 
Postgresql database administration volume 1
Postgresql database administration volume 1Postgresql database administration volume 1
Postgresql database administration volume 1
 
MySQL GTID 시작하기
MySQL GTID 시작하기MySQL GTID 시작하기
MySQL GTID 시작하기
 
PostgreSQL Extensions: A deeper look
PostgreSQL Extensions:  A deeper lookPostgreSQL Extensions:  A deeper look
PostgreSQL Extensions: A deeper look
 
Maxscale_메뉴얼
Maxscale_메뉴얼Maxscale_메뉴얼
Maxscale_메뉴얼
 
PostgreSQL Deep Internal
PostgreSQL Deep InternalPostgreSQL Deep Internal
PostgreSQL Deep Internal
 
Deploying PostgreSQL on Kubernetes
Deploying PostgreSQL on KubernetesDeploying PostgreSQL on Kubernetes
Deploying PostgreSQL on Kubernetes
 
Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0Redo log improvements MYSQL 8.0
Redo log improvements MYSQL 8.0
 
Troubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming ReplicationTroubleshooting PostgreSQL Streaming Replication
Troubleshooting PostgreSQL Streaming Replication
 
PGConf.ASIA 2017 Logical Replication Internals (English)
PGConf.ASIA 2017 Logical Replication Internals (English)PGConf.ASIA 2017 Logical Replication Internals (English)
PGConf.ASIA 2017 Logical Replication Internals (English)
 
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
MySQL Parallel Replication: All the 5.7 and 8.0 Details (LOGICAL_CLOCK)
 

Similar to Webinar: PostgreSQL continuous backup and PITR with Barman

Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...DoKC
 
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...PGConf APAC
 
PGConf.ASIA 2019 Bali - Patroni in 2019 - Alexander Kukushkin
PGConf.ASIA 2019 Bali - Patroni in 2019 - Alexander KukushkinPGConf.ASIA 2019 Bali - Patroni in 2019 - Alexander Kukushkin
PGConf.ASIA 2019 Bali - Patroni in 2019 - Alexander KukushkinEqunix Business Solutions
 
Benchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesBenchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesDoKC
 
How to Design for Database High Availability
How to Design for Database High AvailabilityHow to Design for Database High Availability
How to Design for Database High AvailabilityEDB
 
Postgres Vision 2018: WAL: Everything You Want to Know
Postgres Vision 2018: WAL: Everything You Want to KnowPostgres Vision 2018: WAL: Everything You Want to Know
Postgres Vision 2018: WAL: Everything You Want to KnowEDB
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Severalnines
 
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueShapeBlue
 
EuroPython 2013 - Python3 TurboGears Training
EuroPython 2013 - Python3 TurboGears TrainingEuroPython 2013 - Python3 TurboGears Training
EuroPython 2013 - Python3 TurboGears TrainingAlessandro Molina
 
NetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapNetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapRuslan Meshenberg
 
Webinar: Building a multi-cloud Kubernetes storage on GitLab
Webinar: Building a multi-cloud Kubernetes storage on GitLabWebinar: Building a multi-cloud Kubernetes storage on GitLab
Webinar: Building a multi-cloud Kubernetes storage on GitLabMayaData Inc
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlSeveralnines
 
Backing up Wikipedia Databases
Backing up Wikipedia DatabasesBacking up Wikipedia Databases
Backing up Wikipedia DatabasesJaime Crespo
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSVMware Tanzu
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSCarlos Andrés García
 
Let the Tiger Roar! - MongoDB 3.0 + WiredTiger
Let the Tiger Roar! - MongoDB 3.0 + WiredTigerLet the Tiger Roar! - MongoDB 3.0 + WiredTiger
Let the Tiger Roar! - MongoDB 3.0 + WiredTigerJon Rangel
 
A Kong retrospective: from 0.10 to 0.13
A Kong retrospective: from 0.10 to 0.13A Kong retrospective: from 0.10 to 0.13
A Kong retrospective: from 0.10 to 0.13Thibault Charbonnier
 
Elephant Roads: PostgreSQL Patches and Variants
Elephant Roads: PostgreSQL Patches and VariantsElephant Roads: PostgreSQL Patches and Variants
Elephant Roads: PostgreSQL Patches and VariantsPostgreSQL Experts, Inc.
 
Elephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksElephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksCommand Prompt., Inc
 

Similar to Webinar: PostgreSQL continuous backup and PITR with Barman (20)

Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
Running PostgreSQL in Kubernetes: from day 0 to day 2 with CloudNativePG - Do...
 
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...
PGConf APAC 2018 - Managing replication clusters with repmgr, Barman and PgBo...
 
PGConf.ASIA 2019 Bali - Patroni in 2019 - Alexander Kukushkin
PGConf.ASIA 2019 Bali - Patroni in 2019 - Alexander KukushkinPGConf.ASIA 2019 Bali - Patroni in 2019 - Alexander Kukushkin
PGConf.ASIA 2019 Bali - Patroni in 2019 - Alexander Kukushkin
 
Benchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetesBenchmarking for postgresql workloads in kubernetes
Benchmarking for postgresql workloads in kubernetes
 
Backups
BackupsBackups
Backups
 
How to Design for Database High Availability
How to Design for Database High AvailabilityHow to Design for Database High Availability
How to Design for Database High Availability
 
Postgres Vision 2018: WAL: Everything You Want to Know
Postgres Vision 2018: WAL: Everything You Want to KnowPostgres Vision 2018: WAL: Everything You Want to Know
Postgres Vision 2018: WAL: Everything You Want to Know
 
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
Webinar slides: Backup Management for MySQL, MariaDB, PostgreSQL & MongoDB wi...
 
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
 
EuroPython 2013 - Python3 TurboGears Training
EuroPython 2013 - Python3 TurboGears TrainingEuroPython 2013 - Python3 TurboGears Training
EuroPython 2013 - Python3 TurboGears Training
 
NetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmapNetflixOSS meetup lightning talks and roadmap
NetflixOSS meetup lightning talks and roadmap
 
Webinar: Building a multi-cloud Kubernetes storage on GitLab
Webinar: Building a multi-cloud Kubernetes storage on GitLabWebinar: Building a multi-cloud Kubernetes storage on GitLab
Webinar: Building a multi-cloud Kubernetes storage on GitLab
 
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControlWebinar slides: How to Automate & Manage PostgreSQL with ClusterControl
Webinar slides: How to Automate & Manage PostgreSQL with ClusterControl
 
Backing up Wikipedia Databases
Backing up Wikipedia DatabasesBacking up Wikipedia Databases
Backing up Wikipedia Databases
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
 
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKSPostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
PostgreSQL-as-a-Service with Crunchy PostgreSQL for PKS
 
Let the Tiger Roar! - MongoDB 3.0 + WiredTiger
Let the Tiger Roar! - MongoDB 3.0 + WiredTigerLet the Tiger Roar! - MongoDB 3.0 + WiredTiger
Let the Tiger Roar! - MongoDB 3.0 + WiredTiger
 
A Kong retrospective: from 0.10 to 0.13
A Kong retrospective: from 0.10 to 0.13A Kong retrospective: from 0.10 to 0.13
A Kong retrospective: from 0.10 to 0.13
 
Elephant Roads: PostgreSQL Patches and Variants
Elephant Roads: PostgreSQL Patches and VariantsElephant Roads: PostgreSQL Patches and Variants
Elephant Roads: PostgreSQL Patches and Variants
 
Elephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forksElephant Roads: a tour of Postgres forks
Elephant Roads: a tour of Postgres forks
 

More from Gabriele Bartolini

From 0 to ~100: Business Continuity with PostgreSQL
From 0 to ~100: Business Continuity with PostgreSQLFrom 0 to ~100: Business Continuity with PostgreSQL
From 0 to ~100: Business Continuity with PostgreSQLGabriele Bartolini
 
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)Gabriele Bartolini
 
PostgreSQL Disaster Recovery with Barman (PGConf.EU 2013)
PostgreSQL Disaster Recovery with Barman (PGConf.EU 2013)PostgreSQL Disaster Recovery with Barman (PGConf.EU 2013)
PostgreSQL Disaster Recovery with Barman (PGConf.EU 2013)Gabriele Bartolini
 
PostgreSQL 9.3: novità in "vista" (in italiano)
PostgreSQL 9.3: novità in "vista" (in italiano)PostgreSQL 9.3: novità in "vista" (in italiano)
PostgreSQL 9.3: novità in "vista" (in italiano)Gabriele Bartolini
 
JSON con PostgreSQL 9.3 (in italiano)
JSON con PostgreSQL 9.3 (in italiano)JSON con PostgreSQL 9.3 (in italiano)
JSON con PostgreSQL 9.3 (in italiano)Gabriele Bartolini
 
Writing infinite scalability web applications with PHP and PostgreSQL
Writing infinite scalability web applications with PHP and PostgreSQLWriting infinite scalability web applications with PHP and PostgreSQL
Writing infinite scalability web applications with PHP and PostgreSQLGabriele Bartolini
 
PostgreSQL Disaster Recovery with Barman
PostgreSQL Disaster Recovery with BarmanPostgreSQL Disaster Recovery with Barman
PostgreSQL Disaster Recovery with BarmanGabriele Bartolini
 

More from Gabriele Bartolini (8)

From 0 to ~100: Business Continuity with PostgreSQL
From 0 to ~100: Business Continuity with PostgreSQLFrom 0 to ~100: Business Continuity with PostgreSQL
From 0 to ~100: Business Continuity with PostgreSQL
 
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
Agile Oracle to PostgreSQL migrations (PGConf.EU 2013)
 
PostgreSQL Disaster Recovery with Barman (PGConf.EU 2013)
PostgreSQL Disaster Recovery with Barman (PGConf.EU 2013)PostgreSQL Disaster Recovery with Barman (PGConf.EU 2013)
PostgreSQL Disaster Recovery with Barman (PGConf.EU 2013)
 
PostgreSQL 9.3: novità in "vista" (in italiano)
PostgreSQL 9.3: novità in "vista" (in italiano)PostgreSQL 9.3: novità in "vista" (in italiano)
PostgreSQL 9.3: novità in "vista" (in italiano)
 
JSON con PostgreSQL 9.3 (in italiano)
JSON con PostgreSQL 9.3 (in italiano)JSON con PostgreSQL 9.3 (in italiano)
JSON con PostgreSQL 9.3 (in italiano)
 
Writing infinite scalability web applications with PHP and PostgreSQL
Writing infinite scalability web applications with PHP and PostgreSQLWriting infinite scalability web applications with PHP and PostgreSQL
Writing infinite scalability web applications with PHP and PostgreSQL
 
PostgreSQL Disaster Recovery with Barman
PostgreSQL Disaster Recovery with BarmanPostgreSQL Disaster Recovery with Barman
PostgreSQL Disaster Recovery with Barman
 
Why use PostgreSQL?
Why use PostgreSQL?Why use PostgreSQL?
Why use PostgreSQL?
 

Recently uploaded

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 

Recently uploaded (20)

Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 

Webinar: PostgreSQL continuous backup and PITR with Barman

  • 1. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar How can I be ready for the next recovery of a PostgreSQL database?
  • 2. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar PostgreSQL continuous backup and PITR with Barman Webinar - 10 June 2020 Gabriele Bartolini Head of Global Support
  • 3. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Something about me ● PostgreSQL user since ~2000 ● Co-Founder of 2ndQuadrant ○ Head of Global Support ○ Leader of Cloud Native Initiative ○ Founding member of Barman ● Lean and DevOps practitioner ● Co-Founder of PostgreSQL Europe and ITPUG
  • 4. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Public Asciinema screencasts 1. Verify PostgreSQL is up and running 2. Create 'barman' superuser and 'streaming_barman' replication user in PostgreSQL 3. RPM installation overview 4. Our first backup 5. Incremental backup based on hard links 6. Remote recovery and setup of Hot standby with on-demand WAL fetching 7. Add WAL streaming to the standby server 8. Add 'zero data loss' or RPO=0 to the Primary/Standby/Barman cluster 9. Introduce geo-redundancy for a backed up server
  • 5. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Part One Basic concepts for backup and recovery with PostgreSQL
  • 6. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Logical backup with pg_dump ● Consistent snapshot of a PostgreSQL database ● Portable across major versions ● SQL format or Binary format ● Very useful ○ Development ○ Migrations ○ Dump and restore of portions of a database ● Not suitable for disaster recovery ○ Would you trust a home alarm system that takes a picture once a day?
  • 7. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Continuous physical backup ● Evolution of PostgreSQL’s crash recovery ○ Entire PostgreSQL instance, not a single database ● Founded on Write Ahead Logs ○ Also known as REDO log ○ Changes to the database are first written in the REDO logs, then in the data files ○ WAL files are by default 16MB ● Basic theory: ○ Archive WAL files on a different location ○ Take a physical copy of the PostgreSQL data files on a different location ● Introduced in PostgreSQL 8.1 (2005)
  • 8. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Continuous Recovery ● Founded on: ○ Standby servers ○ Continuous recovery ● Basic Theory: ○ Copy the data files on another server ○ Apply “redo” logs (roll forward) ■ Until the end of the WAL (full recovery) ■ Up to an exact moment (Point In Time Recovery) ○ Inspect or promote the server (exit continuous recovery)
  • 9. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar WAL shipping ● Transfer WAL records to a different location ● WAL archiving: ○ Through PostgreSQL’s archive_command ■ Every time a WAL file is closed (16MB or archive_timeout) ○ Through native streaming replication ■ Continuously (WAL sender and WAL receiver) ■ Also synchronous (“zero data loss”)
  • 10. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Freedom & creativity ● Lego bricks ○ PostgreSQL continuous backup ○ WAL shipping ○ PostgreSQL continuous recovery ● Infinite combinations ○ Architectures ○ Recovery objectives (RPO and RTO) ○ Processes ○ Use cases ● Temptation: DIY solution
  • 11. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar
  • 12. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Part Two Key aspects of Barman
  • 13. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar First backup & recovery tool for Postgres ● Conceived in 2011, Open sourced in 2012 ● Linux & Python, started with Postgres 8.3 ● Innovative concepts at that time: ○ Remote backup ○ Remote recovery ○ Multiple PostgreSQL servers ○ Backup catalogue and independent WAL archive ○ Monitoring integration ○ WAL compression ○ Retention policies ○ Incremental backup and recovery ○ Hook scripts
  • 14. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Requirements 1. Online backup 2. Automation 3. Management of frequency and retention 4. Off-site copies 5. Notifications of anomalies 6. Access limitations 7. Availability 8. Encryption
  • 15. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Lean approach (customers needs) ● Foster migrations from Oracle ● Parallel backup and recovery ○ Reduce backup and recovery times on very large databases ● Streaming replication support ○ Including synchronous replication for Zero Data loss backups ● On-Demand WAL fetching (WAL hub) ● Geo-redundancy ● Object stores interface (Barman Cloud)
  • 16. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Faster, Cheaper, Safer (DevOps) ● “We build it, we own it” ○ Barman team is on the front line of 2ndQ Support Incidents for Barman ● Multi-disciplinary development team ○ Peer review ● Trunk based development ● CI/CD and test automation ○ Build quality in / Shift left on security ○ Thousands of automated tests per commit ■ Unit tests, Smoke tests, Acceptance tests, Integration tests ■ All supported PostgreSQL versions and distributions ■ Release time went from 1 week to 2 hours
  • 17. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Part Three Tips
  • 18. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #1 - Separate Barman from Postgres ● Let Barman and Postgres: ○ Run on different servers ○ Use different storage ● Think about: ○ Resilience ○ Commodity storage ■ Physical servers with high capacity local disks ○ Integration with standby servers ■ Zero data loss clusters
  • 19. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #2 - Avoid network disks ● … if you can ● Some customers run Barman on NFS/CIFS/… ● Think about: ○ File lock issues ■ Place “barman_lock_directory” in the local Linux disk ○ Performance issues ■ Especially if storage is shared
  • 20. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #3 - Favour locality over distance ● Let Barman and Postgres: ○ Be next to each other ○ In the same data centre ● Think about: ○ Data centre is a single point of failure - Yes, but don’t let it scare you ■ It can be solved
  • 21. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #4 - WAL streaming ● Let Postgres stream WAL records to Barman ○ Enable WAL streaming ○ Ensure all WALs are shipped ■ Rely on replication slots ■ Fully automated with “create_slot” option ● Think about: ○ Asynchronous replication by default ○ Synchronous replication if … ■ You add a standby server
  • 22. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #5 - WAL fetching ● Take advantage of WAL archive ● Use Barman as an “infinite” hub of WAL files ○ Forget about configuring “wal_keep_segments” ● On-demand remote fetching: ○ Standby servers ○ Recovery operations ● Parallel pre-fetch (performance boost) ● On the fly decompression ● “get-wal” feature
  • 23. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #6 - Don’t take yourself so seriously
  • 24. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #7 - Compress your WALs ● Set “compression” option, globally ● Performed by the WAL archiver process ○ Invoked automatically by the “cron” command ● gzip is normally fine ● Supported algorithms: ○ bzip2 ○ pigz
  • 25. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #8 - Your PostgreSQL building block ● The “Flux capacitor”: ○ Primary instance ○ Standby instance ○ Barman instance ● Think about: ○ High Availability ○ Disaster Recovery ○ Local standby servers ■ You can always add more ■ This architecture is simple yet very effective ○ Symmetric architecture (next rule)
  • 26. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #9 - Multi-data centre architecture
  • 27. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #10 - Encryption ● Encrypt at rest your: ○ PostgreSQL servers ○ Backup servers ● Think about: ○ Secure connections ○ Secure access to backup servers ○ Encryption of exported backup files: ■ Tar files on tape ■ Tar files on Cloud object stores
  • 28. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #11 - Define your maximum RPO ● Clearly define your Recovery Point Objective ○ For example maximum 5 minutes ● Set “archive_timeout” ○ For example “archive_timeout = 5min”
  • 29. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #12 - Reduce your RPO to 0 ● Native synchronous replication ● Requirements: ○ A local standby ○ A local Barman ● Two options: ○ Zero data loss standby ○ Zero data loss backup
  • 30. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #13 - Backup from a standby ● Available with PostgreSQL 9.6 ○ 9.2 to 9.5 requires the pgespresso extension ● Think about: ○ Symmetric architecture ○ Off-load the primary
  • 31. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #14 - Let “check” be your compass ● “barman check” is the most critical command ● It guides you ○ Setup process ○ Problem solving ● Think about: ○ Integration with alerting tools
  • 32. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #15 - Monitoring ● Barman is on a Linux system ● That system must be under monitoring ○ Standard metrics ○ Disk usage ● Think about: ○ “barman check --nagios all”
  • 33. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #16 - Weekly backups ● Start with weekly backups ○ Evaluate daily backups if you require shorter RTO ● Think about: ○ “barman backup all”
  • 34. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #17 - Retention policies ● Automatically purge old backups ● Retention policies based on: ○ Redundancy (quantity) ○ Recovery window (time, Point of Recoverability) ● Think about: ○ Delete hook scripts
  • 35. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #18 - Use rsync/SSH for backups ● Optimised algorithm ● Enables incremental copy ○ Set “reuse_backup = link” if your file system supports hard links ● Enables parallel copy ○ Set “parallel_jobs” option ● Think about: ○ Remember locality? Barman and Postgres are in the same network ■ Looser security measures
  • 36. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #19 - Rely on object stores ● By … relaying to AWS S3 compatible object stores ○ Requires Boto3 library ○ Use “barman-cloud-wal-archive” for WAL files ● Public cloud, Private cloud, Hybrid clouds ○ E.g. use a local object store that relays to public cloud ● Think about: ○ Removing single point of failure for data availability ■ Data centre, Provider, Continent, Planet, … that’s it for now ■ Multi-tiered backup and recovery ○ Enhanced disaster recovery capabilities ○ Remember encryption!
  • 37. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #20 - Public cloud, via Barman
  • 38. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #21 - Public cloud, direct
  • 39. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #22 - Local object store with gateway To be implemented
  • 40. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #23 - Geo-redundancy
  • 41. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #24 - Aggressive start ● Enable “immediate_checkpoint” ● Speed up the start of the backup ○ Request a checkpoint without waiting for the scheduled one ● Think about: ○ Not available on standby servers
  • 42. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #25 - Precautions ● minimum_redundancy ○ Safety measure: set it to 1 ● last_backup_maximum_age ○ Based on the backup frequency ● max_incoming_wals_queue ○ Let “check” fail if your incoming queue gets too high
  • 43. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #26 - Server configuration files ● Use a separate configuration file per server ● Place them in the /etc/barman.conf.d folder ● Suggested convention: ○ SERVER_ID-PGVERSION.conf ○ Example: juventus-12.conf
  • 44. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #27 - Last version always wins ● Always install the latest version of Barman ○ Trunk based development ○ Backwards compatible ● Test our development snapshots
  • 45. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #28 - Use our public repositories ● rpm.2ndquadrant.com ● apt.2ndquadrant.com ● Entry points: ○ Release level (default) ○ Snapshot level
  • 46. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #29 - Cross data centre backups ● If you have to … ● Use network compression ● Think about: ○ Symmetric architecture ○ Locality
  • 47. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #30 - Enjoy convention over configuration ● Most options in Barman: ○ Can be set globally in the configuration file ○ Can be overridden at server level ○ Have default values ● If you use our packages: ○ System configuration is already taken care of ■ User ■ Cron ■ Log rotation
  • 48. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #31 - Get hooked ● Hook scripts ● Before/After certain events ● Two types: ○ Standard: in case of failure, no retry ○ Retry: in case of failure, retry ■ Typical: before WAL archive to relay WAL files in the Cloud ● See “barman-cloud-wal-archive” man page
  • 49. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #32 - Work in small batches ● Configure archiver batch size ○ For standard archiving or streaming ○ By default unlimited batch ● Archiver process run by the “cron” command ○ Every minute ○ Tune it based on the number of expected WALs between two cron runs ○ Good value to start with is between 10 and 100
  • 50. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #33 - JSON output ● Every command supports “-f json” ● Integration with other applications
  • 51. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #34 - Principle Of Least Authority (POLA) ● Avoid using a superuser for Barman ● The “barman” user can be a standard user ○ With specific grants for backup and read operations ○ barman_streaming can be used for replication connections ● Requirements: ○ PostgreSQL 10+ ○ Barman 2.11
  • 52. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar #35 - Enhance gradually ● Consider: ○ One PostgreSQL instance ○ One Barman instance ● Think about: ○ Can I achieve Disaster Recovery? ○ Can I achieve High Availability? ○ Can I achieve Business Continuity? ○ What are my RPO and RTO? ○ Start with your goals, add components gradually to improve them
  • 53. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Part Four What lies ahead of us
  • 54. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Version 2.11 (June 2020) ● “barman-cli-cloud” package ○ barman-cloud-wal-archive (experimental in 2.10) ○ barman-cloud-backup (experimental in 2.10) ○ barman-cloud-wal-restore ○ barman-cloud-restore ○ barman-cloud-list-backup ● Non superuser connections ● Bug fixes
  • 55. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Tar format for backups ● Tier 2 - optional ● Introduce “tar_retention_policy” ○ >= retention_policy ● Compressed backups ● Encrypted backups
  • 56. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Object store relay ● Tier 3 - optional ● Introduce “s3_retention_policy” ○ >= tar_retention_policy ● Compressed backups ● Encrypted backups
  • 57. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Kubernetes ● Cloud Native PostgreSQL ○ Private operator by 2ndQuadrant ○ Public Docker images ● 1st stage: ○ Object store integration with barman-cli-cloud ○ Direct usage from the PostgreSQL primary node ■ Backup and WAL archive ● 2nd stage ○ Barman operator (Barman inside Kubernetes)
  • 58. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Part Five Conclusions
  • 59. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Base backup information: Disk usage : 24.2 TiB (24.2 TiB with WALs) Incremental size : 6.7 TiB (-72.44%) Timeline : 9 Begin WAL : 000000090000A9690000006A End WAL : 000000090000A96D000000DC WAL number : 1139 WAL compression ratio: 77.05% Begin time : 2020-06-05 13:00:04.930924+00:00 End time : 2020-06-06 01:55:34.543064+00:00 Copy time : 12 hours, 47 minutes, 33 seconds + 42 seconds startup Estimated throughput : 152.1 MiB/s ( 4 jobs) Begin Offset : 13931024 End Offset : 14041528 Begin LSN : A969/6AD49210 End LSN : A96D/DCD641B8 WAL information: No of files : 7136 Disk usage : 25.3 GiB WAL rate : 90.79/hour Compression ratio : 77.26% Last available : 000000090000A989000000BC Output of “barman show-backup” - Courtesy of Barman’s founding sponsor “Navionics”
  • 60. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Recap ● “Flux capacitor” ● RPO=0 scenarios ● Very Large Databases ● Stable, robust and backwards compatible ● Supports all supported PostgreSQL versions ● Used in mission critical environments ● Used in our infrastructure at 2ndQuadrant ○ We can say: “It saved us once” ● Enhance gradually ● Open source
  • 61. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar License Attribution 4.0 International (CC BY 4.0) You are free to: Share — copy and redistribute the material in any medium or format Adapt — remix, transform, and build upon the material for any purpose, even commercially. The licensor cannot revoke these freedoms as long as you follow the license terms.
  • 62. Twitter: @_GBartolini_ @2ndQuad https://www.2ndQuadrant.com PostgreSQL continuous backup and PITR with Barman - Webinar Questions? www.pgbarman.org info@2ndquadrant.com