Question: How do you delete a PostgreSQL cluster?
Answer
In PostgreSQL, a "cluster" refers to a collection of databases that are managed by a single PostgreSQL server instance. It includes the shared configuration files and all the data directories for the databases. Deleting a PostgreSQL cluster means removing all these components.
To delete a PostgreSQL cluster on a Unix-like system, you typically use the pg_dropcluster
command if you're using a version of PostgreSQL provided by Debian or Ubuntu's package repositories. Here's how you can do it:
sudo pg_dropcluster [version] [cluster_name]
For example, to delete a cluster for PostgreSQL 13 named main, you would use:
sudo pg_dropcluster 13 main
Important: This command permanently deletes the cluster, including all databases and configurations contained within it. Make sure to back up any important data before proceeding.
If you're not on a Debian-based system, or you prefer doing it manually, you will need to stop the PostgreSQL service and remove the data directory. Here’s a general approach:
- Stop the PostgreSQL service:
You can use the following command to stop the PostgreSQL service:
```bash
sudo systemctl stop postgresql
```
- Remove the data directory:
The location of the data directory depends on your installation, but common locations are/var/lib/postgresql/[version]/[cluster_name]
. Remove it using:
```bash
sudo rm -r /var/lib/postgresql/13/main
```
- Remove the configuration files (if they are not inside the data directory):
These are usually located in/etc/postgresql/[version]/[cluster_name]
. Remove this directory with:
```bash
sudo rm -r /etc/postgresql/13/main
```
- Restart the PostgreSQL service (if necessary):
If you have other clusters or plan to recreate a cluster, restart the service:
```bash
sudo systemctl start postgresql
```
By following these steps, you will have successfully deleted a PostgreSQL cluster. Always ensure that you have backups of any important data before deleting database clusters.
Was this content helpful?
Help us improve by giving us your feedback.
Other Common PostgreSQL Questions (and Answers)
- How do you manage Postgres replication lag?
- How can I limit the number of rows updated in a PostgreSQL query?
- How does sharding work in PostgreSQL?
- How do you limit the number of rows deleted in PostgreSQL?
- How do you use the PARTITION OVER clause in PostgreSQL?
- What are PostgreSQL replication slots and how do they work?
- How can you partition an existing table in PostgreSQL?
- How do you partition a table by multiple columns in PostgreSQL?
- How do you check the replication status in PostgreSQL?
- What are the scaling limits of PostgreSQL?
- How do you scale Azure PostgreSQL?
- How do you use the limit clause in PostgreSQL to get the top N rows of a query result?
Free System Design on AWS E-Book
Download this early release of O'Reilly's latest cloud infrastructure e-book: System Design on AWS.

Switch & save up to 80%
Dragonfly is fully compatible with the Redis ecosystem and requires no code changes to implement. Instantly experience up to a 25X boost in performance and 80% reduction in cost