Thread: Question relating to database space and adding partition

Question relating to database space and adding partition

From
"Karthikeyan Sundaram"
Date:
Hi all,

   We are using postgres 8.0.1 on our production and 8.2 on our development.
  The linuix partition is getting full where the database resides.  In few
weeks our partition will ran out of space so the database will also run out
of space. We are added another partition of 300GB.  Now my question is, how
will I point the database to the new partition along with the old one.

   In oracle when we add a datafile, we can tell the location.  I don't know
how to do this in postgres.

   Can somebody help me?

Regards
skarthi

_________________________________________________________________
From predictions to trailers, check out the MSN Entertainment Guide to the
Academy Awards�
http://movies.msn.com/movies/oscars2007/?icid=ncoscartagline1


Re: Question relating to database space and adding partition

From
"Joshua D. Drake"
Date:
Karthikeyan Sundaram wrote:
> Hi all,
>
>   We are using postgres 8.0.1 on our production and 8.2 on our
> development.  The linuix partition is getting full where the database
> resides.  In few weeks our partition will ran out of space so the
> database will also run out of space. We are added another partition of
> 300GB.  Now my question is, how will I point the database to the new
> partition along with the old one.
>
>   In oracle when we add a datafile, we can tell the location.  I don't
> know how to do this in postgres.
>
>   Can somebody help me?


The easiest way would be to create a new tablespace:

http://www.postgresql.org/docs/8.1/static/manage-ag-tablespaces.html

>
> Regards
> skarthi
>
> _________________________________________________________________
> From predictions to trailers, check out the MSN Entertainment Guide to
> the Academy Awards®
> http://movies.msn.com/movies/oscars2007/?icid=ncoscartagline1
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>               http://www.postgresql.org/docs/faq
>


--

      === The PostgreSQL Company: Command Prompt, Inc. ===
Sales/Support: +1.503.667.4564 || 24x7/Emergency: +1.800.492.2240
Providing the most comprehensive  PostgreSQL solutions since 1997
             http://www.commandprompt.com/

Donate to the PostgreSQL Project: http://www.postgresql.org/about/donate
PostgreSQL Replication: http://www.commandprompt.com/products/


how to add a new data partition

From
"Karthikeyan Sundaram"
Date:
Hi all,

  We are using postgres 8.0.1 on our production and 8.2 on our development.
The linuix partition is getting full where the database resides.  In few
weeks our partition will ran out of space so the database will also run out
of space. We have added another HDD of 300GB.  Now my question is, how will
I point the database to the new partition along with the old one. Do I need
to create a symbolic link to the exitisting DB?

   Adding a new tablespace doesn't solve the issue as there are many tables
in the old tablespace.  Is there a way to extend the tablespace to the new
partition like in Oracle.

  Did anybody faced this problem and how did you resolve.  Please share your
thoughts.


Regards
skarthi

_________________________________________________________________
Talk now to your Hotmail contacts with Windows Live Messenger.
http://get.live.com/messenger/overview


Re: how to add a new data partition

From
Andrew Sullivan
Date:
On Tue, Feb 06, 2007 at 01:46:19PM -0800, Karthikeyan Sundaram wrote:
>  We are using postgres 8.0.1 on our production and 8.2 on our development.
> The linuix partition is getting full where the database resides.  In few

Which partition is getting full?

>   Adding a new tablespace doesn't solve the issue as there are many tables
> in the old tablespace.  Is there a way to extend the tablespace to the new
> partition like in Oracle.

Not like in Oracle; Postgres doesn't manage the disk the way Oracle
does.  My suggestion is to use the underlying operating system tools
to do this.  I know you _can_, but I haven't done it recently on
Linux.

A

--
Andrew Sullivan  | ajs@crankycanuck.ca
Everything that happens in the world happens at some place.
        --Jane Jacobs

Re: how to add a new data partition

From
"Phillip Smith"
Date:
One option if you can have the DB offline for a little while:

1) Shutdown Postgres
2) Move your current data directory to the new partition
3) Update your PGDATA variable, and any scripts that reference it to reflect
the new data path. You might also like to symlink the old data dir to the
new one.
4) Restart Postgres. pg_ctl -D /new/path/to/data start

That's worked for me several time before.

Cheers,
-p

-----Original Message-----
From: pgsql-admin-owner@postgresql.org
[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Karthikeyan Sundaram
Sent: Wednesday, 7 February 2007 08:46
To: pgsql-admin@postgresql.org
Subject: [ADMIN] how to add a new data partition

Hi all,

  We are using postgres 8.0.1 on our production and 8.2 on our development.

The linuix partition is getting full where the database resides.  In few
weeks our partition will ran out of space so the database will also run out
of space. We have added another HDD of 300GB.  Now my question is, how will
I point the database to the new partition along with the old one. Do I need
to create a symbolic link to the exitisting DB?

   Adding a new tablespace doesn't solve the issue as there are many tables
in the old tablespace.  Is there a way to extend the tablespace to the new
partition like in Oracle.

  Did anybody faced this problem and how did you resolve.  Please share your

thoughts.


Regards
skarthi

_________________________________________________________________
Talk now to your Hotmail contacts with Windows Live Messenger.
http://get.live.com/messenger/overview


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org


*******************Confidentiality and Privilege Notice*******************

The material contained in this message is privileged and confidential to
the addressee.  If you are not the addressee indicated in this message or
responsible for delivery of the message to such person, you may not copy
or deliver this message to anyone, and you should destroy it and kindly
notify the sender by reply email.

Information in this message that does not relate to the official business
of Weatherbeeta must be treated as neither given nor endorsed by Weatherbeeta.
Weatherbeeta, its employees, contractors or associates shall not be liable
for direct, indirect or consequential loss arising from transmission of this
message or any attachments

Re: how to add a new data partition

From
"Karthikeyan Sundaram"
Date:
Hi Philip,

   Thanks for the reply.  Our DB grows very fast.  Hence I don't want to
move the exisisting data dir.  If I move my data file to the new partition,
I will face the same issue in another month instead of week.

    My requirement is to keep the old data directory along with the new
partition.

   In Oracle, we can tell the alter database add data file '/new partition'
so the the new partition will take into effect along with the old one.

   Is there a similar way in postgres?


Regards
skarthi


>From: "Phillip Smith" <phillip.smith@weatherbeeta.com.au>
>To: "'Karthikeyan Sundaram'"
><skarthi98@hotmail.com>,<pgsql-admin@postgresql.org>
>Subject: Re: [ADMIN] how to add a new data partition
>Date: Wed, 7 Feb 2007 08:52:06 +1100
>
>One option if you can have the DB offline for a little while:
>
>1) Shutdown Postgres
>2) Move your current data directory to the new partition
>3) Update your PGDATA variable, and any scripts that reference it to
>reflect
>the new data path. You might also like to symlink the old data dir to the
>new one.
>4) Restart Postgres. pg_ctl -D /new/path/to/data start
>
>That's worked for me several time before.
>
>Cheers,
>-p
>
>-----Original Message-----
>From: pgsql-admin-owner@postgresql.org
>[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Karthikeyan Sundaram
>Sent: Wednesday, 7 February 2007 08:46
>To: pgsql-admin@postgresql.org
>Subject: [ADMIN] how to add a new data partition
>
>Hi all,
>
>   We are using postgres 8.0.1 on our production and 8.2 on our
>development.
>
>The linuix partition is getting full where the database resides.  In few
>weeks our partition will ran out of space so the database will also run out
>of space. We have added another HDD of 300GB.  Now my question is, how will
>I point the database to the new partition along with the old one. Do I need
>to create a symbolic link to the exitisting DB?
>
>    Adding a new tablespace doesn't solve the issue as there are many
>tables
>in the old tablespace.  Is there a way to extend the tablespace to the new
>partition like in Oracle.
>
>   Did anybody faced this problem and how did you resolve.  Please share
>your
>
>thoughts.
>
>
>Regards
>skarthi
>
>_________________________________________________________________
>Talk now to your Hotmail contacts with Windows Live Messenger.
>http://get.live.com/messenger/overview
>
>
>---------------------------(end of broadcast)---------------------------
>TIP 4: Have you searched our list archives?
>
>                http://archives.postgresql.org
>
>
>*******************Confidentiality and Privilege Notice*******************
>
>The material contained in this message is privileged and confidential to
>the addressee.  If you are not the addressee indicated in this message or
>responsible for delivery of the message to such person, you may not copy
>or deliver this message to anyone, and you should destroy it and kindly
>notify the sender by reply email.
>
>Information in this message that does not relate to the official business
>of Weatherbeeta must be treated as neither given nor endorsed by
>Weatherbeeta.
>Weatherbeeta, its employees, contractors or associates shall not be liable
>for direct, indirect or consequential loss arising from transmission of
>this
>message or any attachments
>
>---------------------------(end of broadcast)---------------------------
>TIP 5: don't forget to increase your free space map settings

_________________________________________________________________
Valentine�s Day -- Shop for gifts that spell L-O-V-E at MSN Shopping
http://shopping.msn.com/content/shp/?ctId=8323,ptnrid=37,ptnrdata=24095&tcode=wlmtagline


Re: how to add a new data partition

From
Phillip Smith
Date:
AFAIK, Postgres doesn't support anything like this, apart from
table-spaces which you've already indicated aren't appropriate.

Perhaps a LVM group would be appropriate in this situation if you have
the luxury of being able to implement that somehow...

Cheers,
-p


On Tue, 2007-02-06 at 13:55 -0800, Karthikeyan Sundaram wrote:
> Hi Philip,
>
>    Thanks for the reply.  Our DB grows very fast.  Hence I don't want to
> move the exisisting data dir.  If I move my data file to the new partition,
> I will face the same issue in another month instead of week.
>
>     My requirement is to keep the old data directory along with the new
> partition.
>
>    In Oracle, we can tell the alter database add data file '/new partition'
> so the the new partition will take into effect along with the old one.
>
>    Is there a similar way in postgres?
>
>
> Regards
> skarthi
>
>
> >From: "Phillip Smith" <phillip.smith@weatherbeeta.com.au>
> >To: "'Karthikeyan Sundaram'"
> ><skarthi98@hotmail.com>,<pgsql-admin@postgresql.org>
> >Subject: Re: [ADMIN] how to add a new data partition
> >Date: Wed, 7 Feb 2007 08:52:06 +1100
> >
> >One option if you can have the DB offline for a little while:
> >
> >1) Shutdown Postgres
> >2) Move your current data directory to the new partition
> >3) Update your PGDATA variable, and any scripts that reference it to
> >reflect
> >the new data path. You might also like to symlink the old data dir to the
> >new one.
> >4) Restart Postgres. pg_ctl -D /new/path/to/data start
> >
> >That's worked for me several time before.
> >
> >Cheers,
> >-p
> >
> >-----Original Message-----
> >From: pgsql-admin-owner@postgresql.org
> >[mailto:pgsql-admin-owner@postgresql.org] On Behalf Of Karthikeyan Sundaram
> >Sent: Wednesday, 7 February 2007 08:46
> >To: pgsql-admin@postgresql.org
> >Subject: [ADMIN] how to add a new data partition
> >
> >Hi all,
> >
> >   We are using postgres 8.0.1 on our production and 8.2 on our
> >development.
> >
> >The linuix partition is getting full where the database resides.  In few
> >weeks our partition will ran out of space so the database will also run out
> >of space. We have added another HDD of 300GB.  Now my question is, how will
> >I point the database to the new partition along with the old one. Do I need
> >to create a symbolic link to the exitisting DB?
> >
> >    Adding a new tablespace doesn't solve the issue as there are many
> >tables
> >in the old tablespace.  Is there a way to extend the tablespace to the new
> >partition like in Oracle.
> >
> >   Did anybody faced this problem and how did you resolve.  Please share
> >your
> >
> >thoughts.
> >
> >
> >Regards
> >skarthi
> >
> >_________________________________________________________________
> >Talk now to your Hotmail contacts with Windows Live Messenger.
> >http://get.live.com/messenger/overview
> >
> >
> >---------------------------(end of broadcast)---------------------------
> >TIP 4: Have you searched our list archives?
> >
> >                http://archives.postgresql.org
> >
> >
> >*******************Confidentiality and Privilege Notice*******************
> >
> >The material contained in this message is privileged and confidential to
> >the addressee.  If you are not the addressee indicated in this message or
> >responsible for delivery of the message to such person, you may not copy
> >or deliver this message to anyone, and you should destroy it and kindly
> >notify the sender by reply email.
> >
> >Information in this message that does not relate to the official business
> >of Weatherbeeta must be treated as neither given nor endorsed by
> >Weatherbeeta.
> >Weatherbeeta, its employees, contractors or associates shall not be liable
> >for direct, indirect or consequential loss arising from transmission of
> >this
> >message or any attachments
> >
> >---------------------------(end of broadcast)---------------------------
> >TIP 5: don't forget to increase your free space map settings
>
> _________________________________________________________________
> Valentines Day -- Shop for gifts that spell L-O-V-E at MSN Shopping
> http://shopping.msn.com/content/shp/?ctId=8323,ptnrid=37,ptnrdata=24095&tcode=wlmtagline
>
>


*******************Confidentiality and Privilege Notice*******************

The material contained in this message is privileged and confidential to
the addressee.  If you are not the addressee indicated in this message or
responsible for delivery of the message to such person, you may not copy
or deliver this message to anyone, and you should destroy it and kindly
notify the sender by reply email.

Information in this message that does not relate to the official business
of Weatherbeeta must be treated as neither given nor endorsed by Weatherbeeta.
Weatherbeeta, its employees, contractors or associates shall not be liable
for direct, indirect or consequential loss arising from transmission of this
message or any attachments

Re: how to add a new data partition

From
Tom Lane
Date:
Phillip Smith <phillip.smith@weatherbeeta.com.au> writes:
> Perhaps a LVM group would be appropriate in this situation if you have
> the luxury of being able to implement that somehow...

Indeed, the existence of LVM and similar tools is exactly why we don't
deem it pressing to come up with Oracle-like tablespace management.
If you want a tablespace to span multiple physical volumes, use LVM.
The Postgres project tries to avoid re-inventing perfectly good wheels ...

            regards, tom lane

Re: how to add a new data partition

From
Scott Marlowe
Date:
On Tue, 2007-02-06 at 15:46, Karthikeyan Sundaram wrote:
> Hi all,
>
>   We are using postgres 8.0.1 on our production and 8.2 on our development.
> The linuix partition is getting full where the database resides.  In few
> weeks our partition will ran out of space so the database will also run out
> of space. We have added another HDD of 300GB.  Now my question is, how will
> I point the database to the new partition along with the old one. Do I need
> to create a symbolic link to the exitisting DB?
>
>    Adding a new tablespace doesn't solve the issue as there are many tables
> in the old tablespace.  Is there a way to extend the tablespace to the new
> partition like in Oracle.

So,

alter table ... set tablespace new_tablespace

doesn't work for you in this circumstance?

Re: how to add a new data partition

From
"Karthikeyan Sundaram"
Date:
Hi Scott,

   Thanks for replying.  The tablespace is not the main problem here.  I
want the data files to grow in the new partition along with the old linux
partition.

   Let me put like this.

    We have a linux partition of 120GB called as
/local/postgres/database/Data/< followed by all files>

     This /local partition is 95 % used.

     So we are adding one more partition called /local1 which is
approximately 250 GB.  Now I want to inform postgres that after /local
partiion is 100 %, I want to utilize the /local1 so that the database can
grow significantly.  In other words, the data file created and maintained by
postgres will grow in the /local1 partition.

    How to do this in postgres?

    I don't want to compare with Oracle.  But in Oracle, when we create the
DB

    we will tell alter database add data file
'/local/postgres/database/data'
    then if /local partition is full, we can add another data file  such as
    alter database <db Name> add data file '/local1/data2'

    Is there a similar way or equivalent way to do in postgres?

Regards
skarthi



>From: Scott Marlowe <smarlowe@g2switchworks.com>
>To: Karthikeyan Sundaram <skarthi98@hotmail.com>
>CC: pgsql-admin@postgresql.org
>Subject: Re: [ADMIN] how to add a new data partition
>Date: Tue, 06 Feb 2007 17:17:15 -0600
>
>On Tue, 2007-02-06 at 15:46, Karthikeyan Sundaram wrote:
> > Hi all,
> >
> >   We are using postgres 8.0.1 on our production and 8.2 on our
>development.
> > The linuix partition is getting full where the database resides.  In few
> > weeks our partition will ran out of space so the database will also run
>out
> > of space. We have added another HDD of 300GB.  Now my question is, how
>will
> > I point the database to the new partition along with the old one. Do I
>need
> > to create a symbolic link to the exitisting DB?
> >
> >    Adding a new tablespace doesn't solve the issue as there are many
>tables
> > in the old tablespace.  Is there a way to extend the tablespace to the
>new
> > partition like in Oracle.
>
>So,
>
>alter table ... set tablespace new_tablespace
>
>doesn't work for you in this circumstance?
>
>---------------------------(end of broadcast)---------------------------
>TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match

_________________________________________________________________
Invite your Hotmail contacts to join your friends list with Windows Live
Spaces

http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?href=http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us


Re: how to add a new data partition

From
Phillip Smith
Date:
No - As Tom Lane said: Why reinvent LVM?
-p


On Tue, 2007-02-06 at 16:09 -0800, Karthikeyan Sundaram wrote:
> Hi Scott,
>
>    Thanks for replying.  The tablespace is not the main problem here.  I
> want the data files to grow in the new partition along with the old linux
> partition.
>
>    Let me put like this.
>
>     We have a linux partition of 120GB called as
> /local/postgres/database/Data/< followed by all files>
>
>      This /local partition is 95 % used.
>
>      So we are adding one more partition called /local1 which is
> approximately 250 GB.  Now I want to inform postgres that after /local
> partiion is 100 %, I want to utilize the /local1 so that the database can
> grow significantly.  In other words, the data file created and maintained by
> postgres will grow in the /local1 partition.
>
>     How to do this in postgres?
>
>     I don't want to compare with Oracle.  But in Oracle, when we create the
> DB
>
>     we will tell alter database add data file
> '/local/postgres/database/data'
>     then if /local partition is full, we can add another data file  such as
>     alter database <db Name> add data file '/local1/data2'
>
>     Is there a similar way or equivalent way to do in postgres?
>
> Regards
> skarthi
>
>
>
> >From: Scott Marlowe <smarlowe@g2switchworks.com>
> >To: Karthikeyan Sundaram <skarthi98@hotmail.com>
> >CC: pgsql-admin@postgresql.org
> >Subject: Re: [ADMIN] how to add a new data partition
> >Date: Tue, 06 Feb 2007 17:17:15 -0600
> >
> >On Tue, 2007-02-06 at 15:46, Karthikeyan Sundaram wrote:
> > > Hi all,
> > >
> > >   We are using postgres 8.0.1 on our production and 8.2 on our
> >development.
> > > The linuix partition is getting full where the database resides.  In few
> > > weeks our partition will ran out of space so the database will also run
> >out
> > > of space. We have added another HDD of 300GB.  Now my question is, how
> >will
> > > I point the database to the new partition along with the old one. Do I
> >need
> > > to create a symbolic link to the exitisting DB?
> > >
> > >    Adding a new tablespace doesn't solve the issue as there are many
> >tables
> > > in the old tablespace.  Is there a way to extend the tablespace to the
> >new
> > > partition like in Oracle.
> >
> >So,
> >
> >alter table ... set tablespace new_tablespace
> >
> >doesn't work for you in this circumstance?
> >
> >---------------------------(end of broadcast)---------------------------
> >TIP 9: In versions below 8.0, the planner will ignore your desire to
> >        choose an index scan if your joining column's datatypes do not
> >        match
>
> _________________________________________________________________
> Invite your Hotmail contacts to join your friends list with Windows Live
> Spaces
>
http://clk.atdmt.com/MSN/go/msnnkwsp0070000001msn/direct/01/?href=http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friends.aspx&mkt=en-us
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: Have you checked our extensive FAQ?
>
>                http://www.postgresql.org/docs/faq
>


*******************Confidentiality and Privilege Notice*******************

The material contained in this message is privileged and confidential to
the addressee.  If you are not the addressee indicated in this message or
responsible for delivery of the message to such person, you may not copy
or deliver this message to anyone, and you should destroy it and kindly
notify the sender by reply email.

Information in this message that does not relate to the official business
of Weatherbeeta must be treated as neither given nor endorsed by Weatherbeeta.
Weatherbeeta, its employees, contractors or associates shall not be liable
for direct, indirect or consequential loss arising from transmission of this
message or any attachments

Re: how to add a new data partition

From
Shane Ambler
Date:
Karthikeyan Sundaram wrote:
> Hi Scott,
>
>   Thanks for replying.  The tablespace is not the main problem here.  I
> want the data files to grow in the new partition along with the old
> linux partition.
>
>   Let me put like this.
>
>    We have a linux partition of 120GB called as
> /local/postgres/database/Data/< followed by all files>
>
>     This /local partition is 95 % used.
>
>     So we are adding one more partition called /local1 which is
> approximately 250 GB.  Now I want to inform postgres that after /local
> partiion is 100 %, I want to utilize the /local1 so that the database
> can grow significantly.  In other words, the data file created and
> maintained by postgres will grow in the /local1 partition.

The closest I would think is partitioning - data matching certain
criteria can be in one tablespace and other data in another tablespace.
This won't be just once this disk is full use another - you would say
something like table1's rows with id<2000000 on this disk and
id>=2000000 on another.
If your data is that large you may want to look into the benefit's it
can offer even if you do use lvm.

http://www.postgresql.org/docs/current/interactive/ddl-partitioning.html




--

Shane Ambler
pgSQL@007Marketing.com

Get Sheeky @ http://Sheeky.Biz