我有一个带postgresql后端的Django应用。PostgreSQL时不时地创建临时文件-如果磁盘空间很关键(就像我这样),这可能是一个致命的杀手。
缓解此问题的一种方法是创建到磁盘空间不是瓶颈的其他存储位置的符号链接。就我而言,postgresql将临时文件存储在/$PGDATA/base/pgsql_tmp
。我在安装了一个大SSD /mnt
,因此我希望临时文件驻留在那里。以下应注意这一点:
ln -sTf /mnt/pgsql_tmp $PGDATA/base/pgsql_tmp
chown -R postgres /mnt/pgsql_tmp #ensuring user 'postgres' has the right perms
chmod o+x /mnt
在进行生产之前,我决定在本地进行测试。我创建/mnt
和/pgsql_tmp
我的桌面上,然后尝试ln -sTf /home/hassan/Desktop/mnt/pgsql_tmp /home/hassan/Desktop/pgsql_tmp
。
但这最终给了我ln: ‘/home/hassan/Desktop/pgsql_tmp’: cannot overwrite directory
。谁能指出我做错了什么?作为新手,我真的想尽一切办法。
T
和f
旗帜ln
,然后我觉得你不应该这样做的。首先,它是不透明的。其次,数据库喜欢控制一切,甚至系统可能不会打开这样的文件,因为open()
可以告诉调用将符号链接视为错误。原因是符号链接几乎可以指向任何地方。您的第一选择应该是更改数据库的配置。