TPSQLDump is a component for backing up a PostgreSQL database. It makes consistent backups
even if the database is being used concurrently. TPSQLDump does not block other users accessing the
database (readers or writers).
Dumps can be output in script or archive file formats. The script files are in plain-text format
and contain the SQL commands required to reconstruct the database to the state it was in at the time it
was saved. For example, to restore these scripts, use TPSQLBatchExecute. They can be used to
reconstruct the database even on other machines and other architectures, with some modifications even on
other SQL database products.
The alternative archive file formats that are meant to be used with TPSQLRestore or native
pg_restore utility to rebuild the database, and they also allow to be selective about what is
restored, or even to reorder the items prior to being restored. The archive files are also designed to
be portable across architectures.
When used with one of the archive file formats and combined with TPSQLRestore or
pg_restore, TPSQLDump provides a flexible archival and transfer mechanism. TPSQLDump
can be used to backup an entire database, then TPSQLRestore or pg_restore can be used to
examine the archive and/or select which parts of the database are to be restored. The most flexible
output file format is the "compressed archive" format, also know as "custom". It allows for selection
and reordering of all archived items, and is compressed by default. The "tar archive" format is not
compressed and it is not possible to reorder data when loading, but it is otherwise quite flexible;
moreover, it can be manipulated with other tools such as tar.