在 Ubuntu 12.04 LTS 上更改和初始化 Postgresql 9.3 預設數據和日誌目錄
在帶有 Ubuntu 12.04 LTS 映像的 Azure 上,我們正在嘗試更改 Postgres 9.3 預設數據和日誌文件路徑,並首次在輔助驅動器上初始化它們
/mnt/pgdata
。我們從通過 apt-get 全新安裝 Postgres 9.3 開始。我們已經停止了 postgres:
sudo service postgresql stop
。我們嘗試執行 pg_createcluster
以下僅顯示幫助/手冊頁。可能是因為它缺少版本和名稱參數。
pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto
以下結果會導致“錯誤:集群配置已存在”,即使
/mnt/pgdata
.
pg_createcluster 9.3 main -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto
總的來說,我們對 Linux 還很陌生,所以請具體說明您的答案。
此外,我們還有以下問題:
- 可以使用直接掛載路徑還是使用符號連結更好?
- 我們還需要做些什麼或更改以在預設埠上使用這些預設數據目錄設置 Postgres 9.3 並自動啟動伺服器?
- 還有其他建議嗎?
此錯誤的原因
"Error: cluster configuration already exists"
是:名稱main
已分配給最初創建的集群。如果您沒有任何數據,您可以在創建自己的數據之前刪除它:
pg_dropcluster 9.3 main
這也將產生理想的效果,即您的新集群將被分配埠號
5432
而不是 non-default5433
。使用直接掛載路徑還是符號連結並不重要,但請注意配置文件將在
/etc/postgresql/<version>/<clustername>/
數據目錄之外創建。根據其手冊頁,
pg_createcluster
命令需要版本和名稱之前的選項,因此命令將是:pg_createcluster -d /mnt/pgdata/data -l /mnt/pgdata/log --start-conf auto 9.3 main
也有日誌文件
/mnt/pgdata
使其無法訪問logrotate
,因此它將無休止地增長。你可以看看/etc/logrotate.d/postgresql-common
它是如何配置來處理的/var/log/postgresql/*.log