簡體   English   中英

將 PostgreSQL 數據目錄更改為 PostgresSQL 在另一台機器上創建的目錄

[英]Change PostgreSQL data directory to directory created by PostgresSQL on another machine

我有一個存儲在外部硬盤驅動器上的數據庫。 該數據庫是在 Ubuntu 18.04 機器上使用 PostgreSQL 11 創建的。 它存儲的文件夾是我的 Ubuntu 機器上我的 PostgreSQL 實例的數據目錄,一切正常。 我無法再訪問這台 Ubuntu 機器,這將持續幾個月,但我有外部驅動器。 我同時在 macOS 14.6 下工作。 我使用 Postgres.app 在我的 Mac 上設置了 PostgreSQL。 我創建了一個新服務器,確保使用版本 11。默認數據目錄當然不是我想要的,所以我在 postgresql.conf 中更改了它的路徑以指向我現有的數據目錄:

data_directory = 'path_to_external_HDD_data_directory'      

請注意,這是我在 .conf 文件中所做的全部更改(我還應該更改其他內容嗎?)。 當我嘗試通過 Postgres.app 連接到服務器時,我收到以下錯誤:

pg_ctl: 服務器沒有及時啟動

日志是:

2019-10-21 22:06:47.628 CEST [72547] LOG:  listening on IPv6 address "::1", port 5432
2019-10-21 22:06:47.629 CEST [72547] LOG:  listening on IPv4 address "127.0.0.1", port 5432
2019-10-21 22:06:47.654 CEST [72547] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
2019-10-21 22:06:47.742 CEST [72548] LOG:  database system was interrupted; last known up at 2019-10-21 22:00:07 CEST
2019-10-21 22:06:58.263 CEST [72548] LOG:  database system was not properly shut down; automatic recovery in progress
2019-10-21 22:06:58.266 CEST [72548] LOG:  redo starts at 4A/B2804E40
2019-10-21 22:06:58.266 CEST [72548] LOG:  invalid record length at 4A/B2804E78: wanted 24, got 0
2019-10-21 22:06:58.266 CEST [72548] LOG:  redo done at 4A/B2804E40
2019-10-21 22:06:58.314 CEST [72547] LOG:  database system is ready to accept connections

Postgres.app 然后告訴我該端口正在使用中。 運行lsof -n -i4TCP:5432 ,我看到 postgres 正在監聽。 我殺了它並重試,但得到了相同的 pg_ctl 錯誤。 知道我能做什么嗎?

您的服務器已成功啟動。 您不使用pg_ctl連接到 PostgreSQL,而是使用命令行客戶端psql

無論如何,在造成任何損害之前,你應該停止你現在正在做的事情。

支持使用在不同架構 (MacOS) 上使用一種架構 (Linux) 創建的 PostgreSQL 數據目錄。

如果服務器啟動,那是巧合。 連接可能會起作用,但它也可能會破壞您的數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM