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?
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?
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.