我在Ubuntu 16.04上安裝了PostgreSQL 9.5。由於它位於SSD上,我不想過於頻繁地寫入,所以我寧願將大部分數據保存在最近安裝並分區到Ext4文件系統的硬盤上(通過SATA連接)。 (Postgres的安裝在SSD)如何在已安裝的第二個硬盤上獲得PostgreSQL表空間?
我想創建硬盤驅動器具有以下所有權和位置設置在表空間:
[email protected]:/media/me/EXT4_LARGE# ls -la
total 36
drwx------ 6 me root 4096 Nov 30 23:17 .
drwxr-x---+ 5 me root 4096 Nov 30 23:09 ..
drwx------ 2 root root 16384 Nov 30 21:59 lost+found
drwx------ 2 postgres postgres 4096 Nov 30 22:25 pg_data
而且從psql
命令行:
postgres=# CREATE TABLESPACE hdd_ts LOCATION
'/media/me/EXT4_LARGE/pg_data';
ERROR: could not set permissions on
directory "/media/me/EXT4_LARGE/pg_data": Permission denied
我試過修改各種配置中的所有權設置,但他們都沒有工作。
如何獲取硬盤上的表空間?
不知道關於Ubuntu,因爲我使用Windows,但postgres需要persmision寫在磁盤上。僅供參考,我在SSD中創建我的表空間,因爲我希望我的數據庫更快。不知道你爲什麼要把表空間放在一個慢SATA中。 –
在EXT4_LARGE和pg_data之間需要一個額外的目錄節點,以允許postgres寫入該目錄。這裏是'/ ssd/db/postgres /',所有者是postgres。 – wildplasser
正如wildplasser所說 - 它試圖在pg_data目錄上設置權限。爲了能夠做到這一點,它需要讀/寫訪問pg_data的父目錄。 –