Postgresql

在 PSQL 9.4 中更改 data_directory 位置後的表空間符號連結錯誤

  • February 5, 2022

**問題:**在 PSQL 9.4 (Windows Server 2012 R2) 中更改“data_directory”位置後,在以下情況下會向使用者拋出錯誤:*(a)嘗試使用 PgAdmin 連接到 PSQL 伺服器或(b)*嘗試\db使用SQL 外殼。在這兩種情況下,錯誤如下:

錯誤:無法讀取符號連結“pg_tblspc/53605151”:無效參數。

儘管即使在重新啟動 PSQL 伺服器後錯誤消息仍然存在,但它似乎不會影響使用者使用數據庫進行 ETL 的能力。

背景:我按照以下連結https://stackoverflow.com/questions/22596301/how-to-change-postgresql-data-directory中建議的說明更改“data_directory”。

**採取的措施:**我嘗試使用我的系統管理員帳戶使用以下命令刪除符號連結。:

rmdir ...\pg_tblspc\53605151

刪除符號連結後,拋出的錯誤將略微更改為以下內容:

錯誤:無法讀取符號連結“pg_tblspc/53605151”:沒有這樣的文件或目錄

關於如何解決此問題的任何見解都將受到歡迎。

Postgres 表空間是目錄中的符號連結pg_tblspc。該連結必須指向表空間文件的有效位置。

請再次創建連結,指向正確的位置。

您可以使用以下命令或執行以下查詢來查看psql客戶端上的表空間位置:\db

SELECT 
 spcname AS "Name",
 pg_catalog.pg_get_userbyid(spcowner) AS "Owner",
 pg_catalog.pg_tablespace_location(oid) AS "Location"
FROM pg_catalog.pg_tablespace
ORDER BY 1;

有關更多詳細資訊,請參閱文件

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