Newbie cannot create tablespace

Lists: pgsql-general
From: Richard Sickler <richard(dot)sickler(at)avagotech(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Newbie cannot create tablespace
Date: 2009-11-09 22:12:49
Message-ID: f2b12cc10911091412k25bf20a5oc50eeed67d7e5a82@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

Hi List,

I'm trying to create a tablespace using the following command copied
from pg_dumpall,

CREATE TABLESPACE test OWNER postgres LOCATION 'd:/prodb';

I receive the following message

ERROR: directory "d:/proddb" is not empty

a \db yields

List of tablespaces
Name | Owner | Location
----------------------------------------------
pg_default postgres
pg_global postgres
(2 rows)

More background.
I had a Postgres 8.3.7 database at d:/prodb at one time. It was working fine.
I decided to blow 8.3.7 it away and install 8.4.1. (I'm running on
windows Server 2008 and I was getting shared memory errors).

After running the 8.4.1 one step installer , I used mklink /d to make
links replacing pg_log, pg_clog, and pg_xlog in d:/proddb, to
correspondingly named folders on c:\postgres, (worked fine on 8.3.7).
I used pg_dumpall on my test system with the intent of using pgsql -f
db.out as a way to load the 8.4.1 database.

But, I can't get pass the first step in the restore - namely the
CREATE TABLESPACE command above.

Any help would be appreciated. Thank you.

Rich


From: Scott Marlowe <scott(dot)marlowe(at)gmail(dot)com>
To: Richard Sickler <richard(dot)sickler(at)avagotech(dot)com>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Newbie cannot create tablespace
Date: 2009-11-10 02:18:58
Message-ID: dcc563d10911091818p10537ca4s8a0841a43f528f8e@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-general

On Mon, Nov 9, 2009 at 3:12 PM, Richard Sickler
<richard(dot)sickler(at)avagotech(dot)com> wrote:
> Hi List,
>
> I'm trying to create a tablespace using the following command copied
> from pg_dumpall,
>
> CREATE TABLESPACE test OWNER postgres LOCATION 'd:/prodb';
>
> I receive the following message
>
> ERROR:  directory "d:/proddb" is not empty
>
> a \db yields
>
> List of tablespaces
> Name        |   Owner      |     Location
> ----------------------------------------------
> pg_default    postgres
> pg_global     postgres
> (2 rows)
>
> More background.
> I had a Postgres 8.3.7 database at d:/prodb at one time.  It was working fine.
> I decided to blow 8.3.7 it away and install 8.4.1.  (I'm running on
> windows Server 2008 and I was getting shared memory errors).
>
> After running the 8.4.1 one step installer , I used mklink /d to make
> links replacing pg_log, pg_clog, and pg_xlog in d:/proddb, to
> correspondingly named folders on c:\postgres, (worked fine on 8.3.7).
> I used pg_dumpall on my test system with the intent of using pgsql -f
> db.out as a way to load the 8.4.1 database.
>
> But, I can't get pass the first step in the restore - namely the
> CREATE TABLESPACE command above.

A tablespace directory must be empty to create tablespace on it. Just
make a subdir like d:\proddb\tbspc and create tablespace on that.