Re: is it safe to drop 25 tb schema with cascade option?

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Julie Nishimura <juliezain(at)hotmail(dot)com>, "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>, pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: is it safe to drop 25 tb schema with cascade option?
Date: 2019-09-19 19:38:55
Message-ID: 71b7be3f-6f7f-cce4-ce76-87febd8295b0@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 9/19/19 12:06 PM, Julie Nishimura wrote:
> Hello, we've recently inherited large Greenplum system (master with
> standby and 8 segment nodes), which is running old version of GP:
>
> 20190919:15:22:01:122002 gpstate:hitw-mck-gp1-mdw-1:gpadmin-[INFO]:-
> Greenplum initsystem version   = 4.3.4.0 build 1
> 20190919:15:22:01:122002 gpstate:hitw-mck-gp1-mdw-1:gpadmin-[INFO]:-
> Greenplum current version      = PostgreSQL 8.2.15 (Greenplum
>  Database 4.3.8.1 build 1) on x86_64-unknown-linux-gnu, compiled by GCC
> gcc (GCC) 4.4.2 compiled on Apr 20 2016 08:08:56
> 20190919:15:22:01:122002 gpstate:hitw-mck-gp1-mdw-1:gpadmin-[INFO]:-
> Postgres version               = 8.2.15
>
> If I scan logs, for the last 6 months I see the following warning after
> every transaction:
> 04 UTC,0,con9059926,cmd1,seg-1,,,,sx1,"WARNING","01000","database
> ""my_db_name"" must be vacuumed within 1607900488 transactions",,"To
> avoid a database shutdown, execute a full-database VACUUM in
> ""my_db_name"".",,,,"set client_encoding to 'SQL_ASCII'",0,,"varsup.c",109,
>
> The database "my_db_name" is 32 TB. According to the crontab logs, we
> run VACUUM on pg_catalog every day (while the system is online). Should
> I try to run VACUUM FULL on pg_catalog first, or I need to run VACUUM on
> the entire "my_db_name"? I am not sure what I should try first.

The vacuum warning is about transaction id wrap around:

https://www.postgresql.org/docs/8.2/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND

You will need to vacuum more then just pg_catalog. You will need to do
what the message says, vacuum the entire database.

>
> For the full picture: the largest schema on "my_db_name" was "temp", it
> was consuming about 25 tb. So what we did - we renamed this schema to
> "temp_orig", and created brand new schema "temp" (to make drop objects
> from temp_orig easier and isolated). However, I was hesitating to drop
> the entire schema that big in one transaction, and started dropping
> tables from "temp_orig", however, there are millions of objects in that
> schema, and as a result, number of "drop table" transactions are very
> high. How safe is it to run "DROPSCHEMAtemp_orig CASCADE" if the schema
> is almost 25 tb?

Not sure.

>
> We are running out of space very quickly. we have only 5% left on a device
>
> Last time when we dropped millions of objects from that old schema, we
> were able to free up some space, but this time around even though I am
> running a lot of "drop tables", the space temporarily goes down
> (according to df -h), then it goes back again, even faster than I am
> freeing it up. Which makes me believe the system catalog is bloated now.

Probably due to all the other operations hitting the database.

Have you tried vacuuming the system catalogs?

>
> Any advice is appreciated.
>
> Thanks a lot!
>

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

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Julie Nishimura 2019-09-19 21:24:57 Re: is it safe to drop 25 tb schema with cascade option?
Previous Message Julie Nishimura 2019-09-19 19:06:15 is it safe to drop 25 tb schema with cascade option?