Lists: | pgsql-admin |
---|
From: | Nilesh Govindarajan <lists(at)itech7(dot)com> |
---|---|
To: | pgsql-admin(at)postgresql(dot)org |
Subject: | Execute VACUUM FULL when DB touches a specific size ? |
Date: | 2010-04-05 02:21:40 |
Message-ID: | 4BB94934.3050709@itech7.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-admin |
Hi,
I wish to execute VACUUM FULL when DB touches a specific size. How to do
it ?
I'm aware about the caveats of VACUUM FULL.
--
Nilesh Govindarajan
Site & Server Administrator
www.itech7.com
मेरा भारत महान !
मम भारत: महत्तम भवतु !
From: | Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com> |
---|---|
To: | Nilesh Govindarajan <lists(at)itech7(dot)com> |
Cc: | pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Execute VACUUM FULL when DB touches a specific size ? |
Date: | 2010-04-05 03:24:50 |
Message-ID: | j2idcc563d11004042024w10c18f0etb2738c62290a663b@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-admin |
On Sun, Apr 4, 2010 at 8:21 PM, Nilesh Govindarajan <lists(at)itech7(dot)com> wrote:
> Hi,
>
> I wish to execute VACUUM FULL when DB touches a specific size. How to do it
> ?
>
> I'm aware about the caveats of VACUUM FULL.
>
Write a bash script that cds to the data dir and runs du -s, grabs the
value, and if it's over a certain size then run vacuum full.
From: | Nilesh Govindarajan <lists(at)itech7(dot)com> |
---|---|
To: | Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com> |
Cc: | pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Execute VACUUM FULL when DB touches a specific size ? |
Date: | 2010-04-05 04:08:45 |
Message-ID: | 4BB9624D.7010600@itech7.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-admin |
On 04/05/10 08:54, Scott Marlowe wrote:
> On Sun, Apr 4, 2010 at 8:21 PM, Nilesh Govindarajan<lists(at)itech7(dot)com> wrote:
>> Hi,
>>
>> I wish to execute VACUUM FULL when DB touches a specific size. How to do it
>> ?
>>
>> I'm aware about the caveats of VACUUM FULL.
>>
>
> Write a bash script that cds to the data dir and runs du -s, grabs the
> value, and if it's over a certain size then run vacuum full.
That's what I was thinking to do, but how do I distinguish between the
databases ? The datadir/base seems have directories whose names are numbers.
--
Nilesh Govindarajan
Site & Server Administrator
www.itech7.com
मेरा भारत महान !
मम भारत: महत्तम भवतु !
From: | Vibhor Kumar <vibhor(dot)aim(at)gmail(dot)com> |
---|---|
To: | Nilesh Govindarajan <lists(at)itech7(dot)com> |
Cc: | Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com>, pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Execute VACUUM FULL when DB touches a specific size ? |
Date: | 2010-04-05 06:06:10 |
Message-ID: | F9EC77F8-98C6-4492-9182-BB16E2E075CC@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-admin |
> That's what I was thinking to do, but how do I distinguish between the databases ? The datadir/base seems have directories whose names are numbers.
Use pg_database_size function to get the size of DB.
You can create a plpgsql function, which you can schedule using pgagent
Or
If you are writing Bash script capture the return value of pg_database_size function, in some variable and perform vacuum.
Thanks & Regards,
Vibhor Kumar (PCP & OCP)
ITIL V3 Cerftified.
On 05-Apr-2010, at 9:38 AM, Nilesh Govindarajan wrote:
> On 04/05/10 08:54, Scott Marlowe wrote:
>> On Sun, Apr 4, 2010 at 8:21 PM, Nilesh Govindarajan<lists(at)itech7(dot)com> wrote:
>>> Hi,
>>>
>>> I wish to execute VACUUM FULL when DB touches a specific size. How to do it
>>> ?
>>>
>>> I'm aware about the caveats of VACUUM FULL.
>>>
>>
>> Write a bash script that cds to the data dir and runs du -s, grabs the
>> value, and if it's over a certain size then run vacuum full.
>
>
>
> --
> Nilesh Govindarajan
> Site & Server Administrator
> www.itech7.com
> मेरा भारत महान !
> मम भारत: महत्तम भवतु !
>
> --
> Sent via pgsql-admin mailing list (pgsql-admin(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-admin
From: | Guillaume Lelarge <guillaume(at)lelarge(dot)info> |
---|---|
To: | Nilesh Govindarajan <lists(at)itech7(dot)com> |
Cc: | Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com>, pgsql-admin(at)postgresql(dot)org |
Subject: | Re: Execute VACUUM FULL when DB touches a specific size ? |
Date: | 2010-04-05 06:29:15 |
Message-ID: | 4BB9833B.3080005@lelarge.info |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-admin |
Le 05/04/2010 06:08, Nilesh Govindarajan a écrit :
> On 04/05/10 08:54, Scott Marlowe wrote:
>> On Sun, Apr 4, 2010 at 8:21 PM, Nilesh Govindarajan<lists(at)itech7(dot)com>
>> wrote:
>>> Hi,
>>>
>>> I wish to execute VACUUM FULL when DB touches a specific size. How to
>>> do it
>>> ?
>>>
>>> I'm aware about the caveats of VACUUM FULL.
>>>
>>
>> Write a bash script that cds to the data dir and runs du -s, grabs the
>> value, and if it's over a certain size then run vacuum full.
>
> That's what I was thinking to do, but how do I distinguish between the
> databases ? The datadir/base seems have directories whose names are
> numbers.
>
You can find the number with a simple query (SELECT oid FROM pg_database
WHERE datname='your database name') or with the oid2name contrib module.
But that's not the real issue. If you have objects of this database in
other tablespaces, "du -sh" on datadir/base/<oid> won't count them. You
should better use this query:
SELECT pg_database_size('your database name')
to get the total size of your database.
--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com