Search Postgresql Archives

Re: Sequences not moved to new tablespace

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Guillaume Drolet wrote:
>>>> If you want to move a whole database to a different tablespace (the only reason
>>>> I can think of for doing what you are trying to so), use the command
>>>> ALTER DATABASE ... SET TABLESPACE ...

>>> Thanks Laurenz. I tried your suggestion:
>>>
>>> psql -U postgres -c "ALTER DATABASE mydb SET TABLESPACE pg_default;"
>>>
>>> I get this message:
>>> ERROR:  some relations of database "mortalite" are already in tablespace "pg_default"
>>> HINT : You must move them back to the database's default tablespace before using this command.
>>>
>>> But if I do "SHOW default_tablespace;" in mydb, it showed "pg_default" as the default tablespace.
>>>
>>> So I tried changing it back to the tablespace I want to get rid of to subsequently moved everything
>>> back there so that ultimately, it lets me move everything to pg_default:
>>> ALTER DATABASE mydb SET default_tablespace = diamonds;
>>>
>>> And then:
>>> psql -U postgres -c "ALTER DATABASE mydb SET TABLESPACE diamonds;"
>>>
>>> ALTER DATABASE is issued but nothing gets physically moved to diamonds. Why?
>> 
>> I guess the problem is that you already moved a lot of tables around.
>> 
>> Could you connect to the database and try the following:

>> SELECT t.relname, t.reltablespace, sp.spcname
>> FROM pg_class t LEFT JOIN
>>      pg_tablespace sp ON sp.oid = t.reltablespace;

>                          relname                          | reltablespace |  spcname
> ----------------------------------------------------------+---------------+------------
[...]
>  mod09a1_sur_refl_b05_amonth_idx                          |          1663 | pg_default
>  mod44b_cloud_rid_seq                                     |             0 |
>  pg_toast_2619                                            |             0 |
>  pg_type                                                  |             0 |
>  pg_authid_rolname_index                                  |          1664 | pg_global
>  pg_authid_oid_index                                      |          1664 | pg_global
[...]

Like Tom suggested, you should move the tables from "pg_default" back to the database's
default tablespace and then use ALTER DATABASE to move the database tablespace.

Yours,
Laurenz Albe


-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux