Postgresql

在 PostgreSQL 10 上添加數據目錄

  • January 5, 2020

我在/根分區上有一個 postgresql 數據庫(63GB 中使用了 61GB),所以我要求 VPS 提供商添加更多磁碟(50GB 到/mnt/vdb1

如何將另一個數據目錄添加到該新分區(使用符號連結或其他東西)?

這樣新創建的表不使用/var/lib/postgresql/10/main/base而是使用/mnt/vdb1。我一直在尋找,但似乎多個數據目錄僅在舊PostgreSQL 6/7上可用?

沒關係找到tablespace,它現在被呼叫

sudo chown -Rv postgres: /mnt/vdb1/pgdata2;

CREATE TABLESPACE data2 LOCATION '/mnt/vdb1/pgdata2';
SET default_tablespace = data2;
SELECT * FROM pg_tablespace;

正如您所指出的,您可以使用表空間來將數據拆分到多個驅動器上。但是使用表空間會使恢復和遷移等事情變得更加困難。此外,您必須實際將一些對象移動到這個空間,否則它不會完成任何事情。您將其設置為預設值,但這僅適用於新對象,它不會自動將現有對象的儲存溢出到新表空間。任何單個對像都不能拆分。

真的有必要嗎?在 63GB 主驅動器中,有多少是數據庫本身使用的,而不是其他東西使用的?與其使用表空間,不如將整個數據庫移動到新驅動器會更乾淨,假設它有足夠的空間來單獨保存它。如果大部分 61GB 用於該數據庫,那麼這當然行​​不通。在這種情況下,為了使事情更易於管理,我可能會刪除表空間,並要求他們為您創建一個足夠大的新驅動器,以單手容納整個數據庫,然後將整個東西移到它上面。

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