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