Re: Sequences not moved to new tablespace

From: Guillaume Drolet <droletguillaume(at)gmail(dot)com>
To: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
Cc: PostgreSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Re: Sequences not moved to new tablespace
Date: 2015-02-24 13:06:22
Message-ID: CAOkiyv5VneCtLQnFjbbt_Oj_tAcN0WM_+Zy77DCS2rKGmGkz-g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

2015-02-24 7:07 GMT-05:00 Guillaume Drolet <droletguillaume(at)gmail(dot)com>:

>
>
> 2015-02-23 14:14 GMT-05:00 Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>:
>
> On 02/23/2015 10:08 AM, Guillaume Drolet wrote:
>>
>>> Hello,
>>>
>>> I moved all my tables and indexes from one tablespace to pg_default using
>>>
>>> ALTER TABLE ... SET TABLESPACE pg_default;
>>> ALTER INDEX ... SET TABLESPACE pg_default;
>>>
>>> Some 2500 files were moved to pg_default but 461 files remain in the
>>> tablespace and so I cannot drop it.
>>>
>>> When I query, for example:
>>>
>>> SELECT oid, relname, relkind FROM pg_catalog.pg_class
>>> WHERE oid IN (943602, 2650968, 2650971);
>>>
>>> I see that most of these files are sequences. Why didn't they get moved
>>> and how can I move them to pg_default (and all other remaining files) so
>>> that I can drop the tablespace?
>>>
>>
>> Well round file my previous suggestion. Just tried it and it did not work.
>>
>>
>> Thanks Adrian.
> So, anybody else have some piece of advice on this?
>
>>
>>> Thanks!
>>>
>>
Digging a little more, I found that not only sequences were not moved but
also many tables in pg_catalog are still in my old tablespace. This is
expected since the query in the SQL files I used to move the tables and
indexes had a WHERE clause like this:

SELECT ' ALTER TABLE ' || schemaname || '.' || tablename || ' SET
TABLESPACE pg_default;'
FROM pg_tables
WHERE schemaname NOT IN ('pg_catalog', 'information_schema');

So I tried removing the WHERE clause and running the script again:

psql -U postgres -d mydb < move_tables_to_pg_default.sql | findstr /R
/C:"[ALTER]" | psql -d mydb -U postgres

I got many errors like this one:

ERROR: permission denied: "pg_event_trigger" is a system catalog

If I can't move tables from pg_catalog, how will I be able to drop that
tablespace I don't want to use anymore?

I am thinking that maybe using "ALTER DATABASE mydb SET TABLESPACE
pg_default;" instead would take care of all this, no?

But when I tried it last week, I got a message like: some relations already
in target tablespace...

Any help will be much appreciated.

>>>
>>
>> --
>> Adrian Klaver
>> adrian(dot)klaver(at)aklaver(dot)com
>>
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Vick Khera 2015-02-24 13:35:44 Re: Leap second impact on postgreSQL on June 30 2015
Previous Message Guillaume Drolet 2015-02-24 12:07:10 Re: Sequences not moved to new tablespace