What is recommended way to bakup postgresql database: pg_dump VS pg_basebackup?

Viewed 6793

There are two different tools in PostgreSQL server: pg_dump, pg_basebackup

What is the difference between this tools?
Which one to use to create database backup?

1 Answers

pg_dump creates a logical backup, that is a series of SQL statements that, when executed, create a new database that is logically like the original one.

pg_basebackup creates a physical backup, that is a copy of the files that constitute the database cluster. You have to use recovery to make such a backup consistent.

The main differences are:

  • pg_dump typically takes longer and creates a smaller backup.

  • With pg_dump you can back up one database or parts of a database, while pg_basebackup always backs up the whole cluster.

  • A backup created by pg_dump is complete, while you need WAL archives to restore a backup created with pg_basebackup (unless you used the default option -X stream, in which case the backup contains the WAL segments required to make the backup consistent).

  • With a logical backup you can only restore the state of the database at backup time, while with a physical backup you can restore any point in time after the end of the backup, provided you archived the required WAL segments.

  • You need pg_basebackup to create a standby server, pg_dump won't do.

Related