介紹如何在 Linux 系統中清除 PostgreSQL 資料庫的所有資料與設定,重設為全新的資料庫。

重設 PostgreSQL 資料庫的方法就是將現有的 PostgreSQL cluster 移除,然後再新增一個全新的 PostgreSQL cluster,這裡我們以 Ubuntu Linux 系統來示範,此方式對於其他不同的 Linux 發行版也同樣適用。

移除 PostgreSQL 資料庫 Cluster

Step 1

首先列出目前系統上所有的 PostgreSQL 資料庫 clusters:

# 列出所有 PostgreSQL clusters
pg_lsclusters
Ver Cluster Port Status Owner    Data directory              Log file
10  main    5432 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log

一般的伺服器上通常只有一個 PostgreSQL cluster

Step 2

移除 PostgreSQL cluster 之前,要先停止系統的 PostgreSQL 資料庫服務:

# 停止系統 PostgreSQL 服務
sudo systemctl stop postgresql@10-main

Step 3

停止 PostgreSQL 服務之後,將舊的 PostgreSQL cluster 移除:

# 移除 PostgreSQL 10 main cluster
sudo pg_dropcluster --stop 10 main

新增 PostgreSQL 資料庫 Cluster

Step 1

重新建立一個新的 PostgreSQL cluster,資料庫的版本可以自行指定,但除非有特殊需要,不然就維持跟原來的版本相同即可:

# 建立新的 PostgreSQL 10 main cluster
sudo pg_createcluster --start 10 main

Step 2

啟動系統的 PostgreSQL 服務:

# 啟動系統 PostgreSQL 服務
sudo systemctl start postgresql@10-main

如果沒有出現錯誤訊息,這樣就完成重設 PostgreSQL 資料庫的動作了。

Step 3

切換成 postgres 使用者,並進入 PostgreSQL 資料庫的指令介面,進行後續的設定操作。

# 切換成 postgres 使用者,並進入 PostgreSQL 指令介面
sudo -u postgres psql

參考資料