Backup & Restore PostgreSQL Database on CentOS 7
date
Feb 28, 2024
slug
backup-restore-postgresql-database-on-centos-7
status
Published
type
Short
summary
Backup and restore PostgreSQL databases on CentOS 7 using
pg_dump
and pg_restore
commands.tags
DevOps
Databases are crucial components of many systems and software. Thus, knowing how to backup and restore them becomes an essential skill. This article will guide you through the process of backing up and restoring a database in PostgreSQL on a CentOS 7 system.
Backup
The first step is to backup the database. In PostgreSQL, you can use the
pg_dump
command to achieve this. Here's an example of using this command:pg_dump -h 0.0.0.0 -p 5432 -U postgres -F c -b -v -f "/usr/local/backup/db.dump" db -W
Command Option | Description |
-h | Specifies the host |
-p | Specifies the port |
-U | Specifies the user |
-F c | Creates a custom-format archive |
-b | Includes large objects in the dump |
-v | Enables verbose mode |
-f | Specifies the filename for the output |
db | Indicates the name of the database to be dumped |
-W | prompts for password |
Before executing this command, make sure the backup directory exists by running
mkdir /usr/local/backup
Restore
Once the backup is complete, the next step is to restore it. The
pg_restore
command is used for this purpose. Here's an example of how to use it:pg_restore -d db -U postgres -C "usr/local/backup/db.dump" -W
Command Option | Description |
-d | Specifies the database to restore |
-U | Specifies the user |
-C | Specifies the path to the dump file |
-W | prompts for password |
This command instructs PostgreSQL to restore the database
db
using the user postgres
and the dump file db.dump
.Troubleshooting
In case of encountering errors like
FATAL: Peer authentication failed for user "postgres"
or FATAL: Indent authentication failed for user "postgres"
, the issue usually lies with the pg_hba.conf
file.To solve this, change
peer
or indent
to md5
in pg_hba.conf
. Here's an example of how to do this:# "local" is for Unix domain socket connections only local all all md5 # IPv4 local connections: host all all 127.0.0.1/32 md5
The
pg_hba.conf
file is usually located in /var/lib/pgsql/<version>/data/pg_hba.conf
.By following these steps, you can effectively backup and restore your PostgreSQL databases on a CentOS 7 system.