I would like to create multiple databases, each with its own disk location.

I have followed the instructions in the Administrator's Guide and have a 
couple of questions.

1. Since the pg_ctl -D option only appears to take a single location, should 
this be set to the location of the template1 database created as part of the 
Postgres installation, or, do I have to somehow specify the location of each 
of my databases in alternate locations when starting Postgres ?

2. As user postgres, I shut down the server, defined the following 
environment variable:
PGDATA_ALTERNATE=/home/alternate/pgsql/data
and ran initlocation:
initlocation PGDATA_ALTERNATE
note: /home/alternate/pgsql/data is writeable by postgres

So far so good.

Now, the problem: Per the Administrator's guide, the environment variable 
needs to be defined before the backend is started.

I am using the startup script from the contrib/start-scripts/linux directory 
of PostgreSQL source (v. 7.1.3), so I define an environment variable within 
this file, prior to the command to start the server --- let's say it is 
defined as :
PGDATA_ALTERNATE="/home/alternate/pgsql/data"

After starting the server using the script, I switch to user postgres, and I 
issue the following command to create a  database at the alternate location:

createdb -D 'PGDATA_ALTERNATE'

I get the following error:
ERROR:  Postmaster environment variable 'PGDATA_ALTERNATE' not set
createdb: database creation failed

I assumed this environment variable was defined as I put it in the startup 
script (just below the line PGDATA="/usr/local/data/pgsql"). Even if I define 
the PGDATA_ALTERNATE explicitly in the shell, and then run the createdb 
command above, I get the same error.

Any ideas ?

Thanks
Charlie






---------------------------(end of broadcast)---------------------------
TIP 4: Don't 'kill -9' the postmaster

Reply via email to