Estou usando uma estação de trabalho que tem 3 discos rígidos diferentes. Algum tempo atrás eu consegui um grande banco de dados para engenharia reversa que não caberia na unidade do sistema. Por isso criei um novo table-space em um dos outros discos rígidos, que na época estava montado na /media/Work1
pasta.
Estava tudo funcionando bem, até hoje na inicialização o sistema resolveu montar o drive na /media/Work
pasta. Naturalmente, o Postgres não pode mais acessar os bancos de dados nesse espaço de tabela.
Como posso alterar a localização de um espaço de tabela no Postgres? Estou ciente da pg_tablespace_location
função, mas não de algo para modificá-la.
A localização do tablespace é definida por um link simbólico no
pg_tblspc
diretório (é por isso que, a propósito, você só pode usar tablespaces personalizados em sistemas que possuem links simbólicos, conforme declarado na documentação ):Como user
postgres
, você pode alterar o local para o qual este link simbólico aponta:Isso corrigirá a localização do seu tablespace. Por precaução, eu faria isso apenas quando o banco de dados não estivesse em execução.
No entanto, você precisa ter certeza de por que o local mudou em primeiro lugar e que ele não mudará de volta ou para qualquer outra coisa.