Discussion:
Tablespaces
Illya
2018-01-04 19:49:01 UTC
Permalink
Hi list,

I have a large amount of data in a number of databases on a separate
internal drive, under the tablespace e_drive which normally sits in
location E:\postgis. This setup has been been working happily for years.
Yesterday I became unable to connect to any of the databases in the e_drive
tablespace. I connected to the cluster and ran \db and lo the location is
now changed to C for some unknown reason (I haven't upgraded or anything
like that).


​ Name | Owner | Location
------------+----------+------------
e_drive | theowner | C:\postgis​


​I realise that I can't use ALTER TABLESPACE for this, so can I delete the
tablespace e_drive and recreate it with the correct location and everything
will be fine?

Or am I going to have to use pg_dumpall and hope I can dump the data
out.....​


​Thanks in advance, ​

​Ills​
Alvaro Herrera
2018-01-04 21:05:27 UTC
Permalink
Post by Illya
Hi list,
I have a large amount of data in a number of databases on a separate
internal drive, under the tablespace e_drive which normally sits in
location E:\postgis. This setup has been been working happily for years.
Yesterday I became unable to connect to any of the databases in the e_drive
tablespace. I connected to the cluster and ran \db and lo the location is
now changed to C for some unknown reason (I haven't upgraded or anything
like that).
​ Name | Owner | Location
------------+----------+------------
e_drive | theowner | C:\postgis​
As I understand, the location is stored in symlinks in your data
directory only, so to fix it it should work to stop the server, change
the symlink to point to the right drive, then restart.

Probably it was Windows itself that updated the symlink when it saw that
the destination drive E: no longer existed.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Loading...