Postgresql

在 Ubuntu 18 上移動 Postgres 10 數據目錄

  • July 6, 2018

我正在嘗試將初始 Postgres 數據目錄從

/var/lib/postgresql/10/main

到另一個硬碟。硬碟驅動器可通過終端在終端內訪問

/media/chris/Datenspeicher

我使用指南來切換我的數據目錄。修改文件後 Postgres 正在啟動,postgres.conf但我無法再通過 pgadmin 或終端訪問數據庫。

當嘗試訪問數據庫時,它會詢問數據庫是否在埠 5432 上執行並接受連接。

為什麼?我究竟做錯了什麼?

更新: 全新安裝 ubuntu 和 postgres 後,所有錯誤仍然存在。postgres 日誌輸出為:

2018-07-06 14:16:04.958 CEST

$$ 5664 $$LOG:監聽 IPv4 地址“127.0.0.1”,埠 5432 2018-07-06 14:16:04.998 CEST

$$ 5664 $$日誌:監聽 Unix 套接字“/var/run/postgresql/.s.PGSQL.5432” 2018-07-06 14:16:05.124 CEST

$$ 5665 $$LOG:數據庫系統於 2018-07-06 14:00:21 CEST 關閉 2018-07-06 14:16:05.167 CEST

$$ 5664 $$LOG:數據庫系統已準備好接受連接 2018-07-06 14:16:05.714 CEST

$$ 5672 $$ $$ unknown $$@$$ unknown $$LOG:不完整的啟動包

在乾淨的 ubuntu 安裝(清理所有分區)之後,自動安裝我的第二個驅動器並使用這裡的答案一切正常!

  1. 通過以下方式安裝了 postgresql-common:

sudo apt install postgresql-common 2. 用 nano 打開 createcluster.conf

sudo nano /etc/postgresql-common/createcluster.conf 3. 取消註釋行create_main_cluster = true 4. 換data_directory = '/var/lib/postgresql/%v/%c'new/dir/%v/%c 5. 保存存檔 6. 通過安裝 postgresqlsudo apt install -y postgresql-10

請檢查套接字文件是否在 /tmp 中。如果存在,則創建指向 /var/run 的連結。

或者,我更喜歡這種方法來移動 Ubuntu 上的數據目錄。

我希望你有舊目錄的備份副本,它位於/var/lib/postgresql/10/main.

service postgresql stop
rm -rf /media/chris/Datenspeicher/*
chown -R postgres:postgres /media/chris/Datenspeicher/
chmod 700 /media/chris/Datenspeicher
/usr/lib/postgresql/10/bin/initdb -D /media/chris/Datenspeicher
rm -rf /media/chris/Datenspeicher/*
sudo rsync -av /var/lib/postgresql/10/main/* /media/chris/Datenspeicher
in postgresql.conf file,  data_directory = '/media/chris/Datenspeicher'
service postgresql start

引用自:https://dba.stackexchange.com/questions/211397