オリジナルの記事はこちら
ディレクトリ`/usr/local/pgsql/tblspc`に作った`tblspc`を、`/home/postgres/tblspc`に移す。
[1] テーブルスペース`tblspc`のOidを調べる
testdb=# SELECT oid,spcname FROM pg_tablespace WHERE spcname = 'tblspc'; oid | spcname -------+---------- 24580 | tblspc (1 row)
[2] PostgreSQLを止める
postgres$ pg_ctl -D $PGDATA stop
[3] ディレクトリを移動する
postgres$ mv /usr/local/pgsql/tblspc /home/postgres/tblspc or postgres$ cp -r /usr/local/pgsql/tblspc /home/postgres/tblspc postgres$ rm -rf /usr/local/pgsql/tblspc
[4] pg_tblspc以下のリンクを張り替える
postgres$ cd $PGDATA/pg_tblspc postgres$ rm 24580 postgres$ ln -s /home/postgres/tblspc 24580
[5] PostgreSQLを起動する
postgres$ pg_ctl -D $PGDATA start
以下の関数でテーブルスペースの新しいディレクトリが確認できる。
testdb=# SELECT pg_tablespace_location(24580); pg_tablespace_location -------------------------- /home/postgres/tblspc (1 row)