Backup and restore a Postgres database


In this tutorial, How to backup and restore a Postgres database. You have installed the PostgreSQL database system.

Why Backup Your PostgreSQL Database?

Before we dive into the how, let’s briefly discuss the importance of regular database backups:

  • Data Loss Prevention: Backups protect your data against accidental deletion, corruption, or hardware failures.
  • Disaster Recovery: In the event of a catastrophic failure or data breach, having a backup allows you to quickly recover and restore your database.
  • Testing and Development: Backups can be used to create copies of your database for testing, development, or staging purposes.

Now, let’s get started with the backup and restore process.

Backup and restore a Postgres database

Backup a PostgreSQL Database

The pg_dump command is the PostgreSQL utility for creating database backups. Here’s the basic syntax:

pg_dump -U your_postgres_user -d your_database_name -f backup_file.sql

For example: import and export my-db database as below

Backup and restore a Postgres database

The output format is a plain-text SQL script file ( The default)

root@5cc6d8f56baf:/# pg_dump -h localhost -U devopsroles my-db > my-db.sql

You can compress this data by using the “custom” dump format:

# format tar
root@5cc6d8f56baf:/# pg_dump -h localhost -U devopsroles -F t my-db > my-db.tar

Backup use pg_dump via a compression tool such as gzip

root@5cc6d8f56baf:/# pg_dump -h localhost -U devopsroles my-db | gzip > my-db.gz

Backup Remote PostgreSQL Databases

pg_dump -U devopsroles -h -p 5432 my-db > my-db.sql

To explain:

  • -U: to specify the database role name
  • -h: remote host
  • -p: port a PostgreSQL database

To back up all PostgreSQL databases

root@5cc6d8f56baf:/# pg_dumpall -h localhost -U devopsroles > all_pg_dbs.sql

Restore the dump using the psql command

pgsql -f all_pg_dbs.sql postgres

Restoring a PostgreSQL Database

You can use psql or pg_restore utilities for retore postgres databases.

For example:

root@5cc6d8f56baf:/# psql -h localhost -U devopsroles my-db < my-db.sql
root@5cc6d8f56baf:/# pg_restore -h localhost -U devopsroles -d my-db my-db.tar


egularly backing up and, if necessary, restoring your PostgreSQL database is essential for data protection and disaster recovery. Remember to schedule automated backups, keep your backup files in a secure location, and test your backup and restore procedures periodically to ensure they work as expected.

By following these steps, you can safeguard your data and have peace of mind knowing that your PostgreSQL database is protected against data loss and system failures.

You have Backup and restore a Postgres database. I hope will this your helpful. Thank you for reading the DevopsRoles page!

About HuuPV

My name is Huu. I love technology, especially Devops Skill such as Docker, vagrant, git, and so forth. I like open-sources, so I created to share the knowledge I have acquired. My Job: IT system administrator. Hobbies: summoners war game, gossip.
View all posts by HuuPV →

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.