Re: Add pre-existing tablespace to new installation - Mailing list pgsql-admin

From Tino Schwarze
Subject Re: Add pre-existing tablespace to new installation
Date
Msg-id 20090609141710.GC27075@easy2.in-chemnitz.de
Whole thread Raw
In response to Re: Add pre-existing tablespace to new installation  (Roland Hughes <roland@logikalsolutions.com>)
Responses Re: Add pre-existing tablespace to new installation  (Roland Hughes <roland@logikalsolutions.com>)
List pgsql-admin
On Tue, Jun 09, 2009 at 09:10:20AM -0500, Roland Hughes wrote:
> On Tuesday 09 June 2009 08:55:18 am Tino Schwarze wrote:
> > On Tue, Jun 09, 2009 at 07:57:34AM -0500, Roland Hughes wrote:
> > > This has not been the case with 64-bit OpenSuSE.  A fresh re-install of
> > > the OS required I recreate the database from backup.  Postgres would NOT
> > > recognize or salvage the directory on a TB drive containing tablespace.
> >
> > I doubt that. What do you call a "fresh install"? The OpenSUSE packages
> > will not touch your tablespace (in Postgres' home directory,
> > /var/lib/pgsql IIRC) if it already exists.
>
> "Fresh Install" means shiny new root volume.

Ok.

> > If you re-format your root
> > volume, then you loose your data - that's what it is supposed to do.
> > If you added tablespaces (as symlinks or mountpoints within Postgres'
> > data directory), they will become useless after a "fresh install" if you
> > lose your Postgres' data directory during the process.
> >
> > You just need to preserve everything from Postgres' data directory
> > (which shouldn't be much data).
>
> While it shouldn't be much data, it is also non-robust.  With robust
> databases, you can create as many databases as you want in as many places as
> you want.  A "fresh install" means that you only have to "tell" the database
> monitor about those places again.  Everything is still there and usable.

Then just consider the data directory of Postgres to be the root table space.
You may put it wherever you want.

> It's really sad that PostgreSQL doesn't have an ADD TABLESPACE command or the
> functionality built into CREATE TABLESPACE to recognize a tablespace already
> exists and simply recreate the entry for it in the default tablespace.  When
> one creates an entire database in this new tablespace, PostgreSQL should need
> nothing other than to know the tablespace exists as everything else should be
> stored in that tablespace.

I doubt that you can do that with, say, Oracle. A lot of information
(like users and schema) will be stored in the main tablespace - I'm not
100% sure, though (don't know enough of Oracle). So, if you wipe your
main database installation, don't be surprised, that a lot is lost.

Yes, it might be nice and useful to be able to import an tablespace. But
I guess that would require some internal restructuring...

Tino.

--
"What we nourish flourishes." - "Was wir nähren erblüht."

www.lichtkreis-chemnitz.de
www.craniosacralzentrum.de

pgsql-admin by date:

Previous
From: Scott Mead
Date:
Subject: Re: Add pre-existing tablespace to new installation
Next
From: Scott Mead
Date:
Subject: Re: Add pre-existing tablespace to new installation