我正在使用具有 3 个不同硬盘驱动器的工作站。前段时间,我有一个不适合系统驱动器的大型数据库进行逆向工程。因此,我在另一个硬盘驱动器中创建了一个新的表空间,当时它已安装在/media/Work1
文件夹上。
一切正常,直到今天在启动时系统决定将驱动器安装在/media/Work
文件夹上。自然地,Postgres 不能再访问该表空间中的数据库。
如何更改 Postgres 中表空间的位置?我知道这个pg_tablespace_location
功能,但不知道要修改它。
我正在使用具有 3 个不同硬盘驱动器的工作站。前段时间,我有一个不适合系统驱动器的大型数据库进行逆向工程。因此,我在另一个硬盘驱动器中创建了一个新的表空间,当时它已安装在/media/Work1
文件夹上。
一切正常,直到今天在启动时系统决定将驱动器安装在/media/Work
文件夹上。自然地,Postgres 不能再访问该表空间中的数据库。
如何更改 Postgres 中表空间的位置?我知道这个pg_tablespace_location
功能,但不知道要修改它。
表空间位置由目录中的符号链接定义
pg_tblspc
(这就是为什么您只能在具有符号链接的系统上使用自定义表空间,如文档中所述):作为 user
postgres
,您可以更改此符号链接指向的位置:这将修复您的表空间位置。作为预防措施,我只会在数据库未运行时执行此操作。
但是,您必须首先确定位置更改的原因,并且它不会变回或更改为其他任何内容。