> Robert Treat <xzilla@users.sourceforge.net> writes:
>> On Thu, 2004-04-08 at 09:49, pgsql@mohawksoft.com wrote:
>>> (2) I would bet that *most* deployments of PostgreSQL only use one
database environment per server, so I'm not even sure that it would be
an
>>> issue for the majority of current or prospective users.
>
>> except that when doing major version upgrades, i find it far better
practice to install multiple versions on the machine whenever possible,
even if you only intend to run a single version.
>
> In any case, you will never get such a proposal past the core
> developers, because we all run multiple PG installs per machine. My
primary development machine currently has six postmasters alive on it
(7.0, 7.1, ..., 7.4 + CVS tip); my alternate machine has five
installations on it, though not all are alive since I've not had reason
to restart them all since last reboot; even the laptop I'm physically
typing on right now has more than one Postgres installation on it. And
practically any time someone allows me access to a machine of theirs to
check out some kind of portability issue, I'll build a test installation
in my guest-account home directory, rather than muck with their live
server.
>
> So, don't bother proposing anything that makes it even slightly harder
to run multiple servers per machine.  It will not happen.  End of
discussion.

I'll just post the README file at the bottom for a reference, but it
PostgreSQL can appear completely unchanged, but with the addition of just
two command line arguments, work "better" in situations where this sort of
functionality is desired, I don't see why people would wish it not to be
included.

If there are issues with coding style, or other finer details, I would be
very much willing to address any issues. Personally, I think the
requirement of using symlinks to synthesize this functionality is a hard
sell to many administrators.




::::::::::

This patch enables PostgreSQL to be far more flexible in
its configuration methodology.

Specifically, It adds two more command line parameters, "-C"
which specifies either the location of the postgres
configuration file or a directory containing the configuration
files, and "-R" which directs PostgreSQL to write its runtime
process ID to a standard file which can be used by control
scripts to control PostgreSQL.

A patched version of PostgreSQL will function as:

--- Configuration file ---
postmaster -C /etc/postgres/postgresql.conf

This will direct the postmaster program to use the
configuration file "/etc/postgres/postgresql.conf"

--- Configuration Directory ---
postmaster -C /etc/postgres

This will direct the postmaster program to search the
directory "/etc/postgres" for the standard configuration
file names: postgresql.conf, pg_hba.conf, and pg_ident.conf.

--- Run-time process ID ---
postmaster -R /var/run/postmaster.pid

This will direct PostgreSQL to write its process ID number
to a file, /var/run/postgresql.conf


--- postgresql.conf  options ---
Within the configuration file there  are five  additional
parameters: include, hba_conf,ident_conf, data_dir, and
runtime_pidfile.

They are used as:
include = '/etc/postgres/debug.conf'
data_dir = '/vol01/postgres'
hba_conf = '/etc/postgres/pg_hba_conf'
ident_conf = '/etc/postgres/pg_ident.conf'
runtime_pidfile = '/var/run/postgresql.conf'


The "-D" option on the command line overrides the "data_dir"
in the configuration file.

The "-R" option on the command line overrides the
"runtime_pidfile" in the configuration file.

If no hba_conf and/or ident_conf setting is specified, the default
$PGDATA/pg_hba.conf and/or $PGDATA/pg_ident.conf will be used.

If the "-C" option specifies a diretcory, pg_hba.conf and pg_ident.conf
files must be in the specified directory.

This patch is intended to move the PostgreSQL configuration out of the
data directory so that it can be modified and backed up as well as answer
some of the issues with deploying PostgreSQL in an FHS (File Hierarchy
Standard) way.

This patch is also useful for running multiple servers with the same
parameters:

postmaster -C /etc/postgres/postgresql.conf -D /VOL01/postgres -p 5432
postmaster -C /etc/postgres/postgresql.conf -D /VOL02/postgres -p 5433

To apply the patch, enter your PostgreSQL source directory, and run:

cat pgec-PGVERSON.patch | patch -p 1



Fri, 9 Apr 2004 22:43:15 -0400 (EDT)
pgsql@mohawksoft.com
Re: PostgreSQL configuration