Search Postgresql Archives

Re: A change in the Debian install

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Adrian,



On Thu, 2017-04-06 at 21:24 -0700, Adrian Klaver wrote:
> On 04/06/2017 08:01 PM, rob stone wrote:
> > 
> > 
> > 
> That is the default location and is generally the case in a source 
> install. Package maintainers can and do often put them elsewhere.
> AFAIK 
> the Debian/Ubuntu way using postgresql-common is to put them in 
> /etc/postgresql/version/cluster_name/. So on one of my Ubuntu 16.04 
> installs with Postgres 9.6.2:
> 
> aklaver@arkansas:~$ l /etc/postgresql/9.6/main/
> total 56
> drwxr-xr-x 2 postgres postgres  4096 Feb 11 16:23 ./
> drwxr-xr-x 3 postgres postgres  4096 Feb 11 07:15 ../
> -rw-r--r-- 1 postgres postgres   315 Feb 11 07:15 environment
> -rw-r--r-- 1 postgres postgres   143 Feb 11 07:15 pg_ctl.conf
> -rw-r----- 1 postgres postgres  4642 Feb 11 16:23 pg_hba.conf
> -rw-r----- 1 postgres postgres  1636 Feb 11 07:15 pg_ident.conf
> -rw-r--r-- 1 postgres postgres 22438 Feb 11 16:11 postgresql.conf
> -rw-r--r-- 1 postgres postgres   317 Feb 11 07:15 start.conf
> 
> 
> and PGDATA:
> 
> aklaver@arkansas:~$ sudo ls -al /var/lib/postgresql/9.6/main/
> total 92
> drwx------ 19 postgres postgres 4096 Apr  6 15:54 .
> drwxr-xr-x  3 postgres postgres 4096 Feb 11 07:15 ..
> drwx------  6 postgres postgres 4096 Feb 11 16:06 base
> drwx------  2 postgres postgres 4096 Mar 22 12:22 global
> drwx------  2 postgres postgres 4096 Feb 11 07:15 pg_clog
> drwx------  2 postgres postgres 4096 Feb 11 07:15 pg_commit_ts
> drwx------  2 postgres postgres 4096 Feb 11 07:15 pg_dynshmem
> drwx------  4 postgres postgres 4096 Feb 11 07:15 pg_logical
> drwx------  4 postgres postgres 4096 Feb 11 07:15 pg_multixact 
> drwx------  2 postgres postgres 4096 Mar 22 12:21 pg_notify 
> drwx------  2 postgres postgres 4096 Feb 11 07:15 pg_replslot 
> drwx------  2 postgres postgres 4096 Feb 11 07:15 pg_serial 
> drwx------  2 postgres postgres 4096 Feb 11 07:15 pg_snapshots 
> drwx------  2 postgres postgres 4096 Mar 22 12:21 pg_stat 
> drwx------  2 postgres postgres 4096 Feb 11 07:15 pg_stat_tmp 
> drwx------  2 postgres postgres 4096 Feb 11 07:15 pg_subtrans 
> drwx------  2 postgres postgres 4096 Feb 11 07:15 pg_tblspc 
> drwx------  2 postgres postgres 4096 Feb 11 07:15 pg_twophase 
> -rw-------  1 postgres postgres    4 Feb 11 07:15 PG_VERSION 
> drwx------  3 postgres postgres 4096 Feb 11 07:15 pg_xlog 
> -rw-------  1 postgres postgres   88 Feb 11 07:15
> postgresql.auto.conf 
> -rw-------  1 postgres postgres  133 Mar 22 12:21 postmaster.opts 
> -rw-------  1 postgres postgres  100 Mar 22 12:21 postmaster.pid
> 

> This is why I am trying to figure out if you are using the Debian
> packaging:
> 
> A) What is your PGDATA?
> 
> B) How postgresql.conf got there?
> 
> The reason it is important is that the next update will probably
> land 
> you back in the same situation that started this thread, unless we 
> figure out what is going on.
> 
> Another question:
> 
> Have you ever installed Postgres on this machine using something
> other 
> then the Debian packages?
> 


Everything is done via a bog standard install from Debian repos.

The installation process creates a path containing these files:-

/etc/postgresql/9.5/main# ls -al
total 56
drwxr-xr-x 2 postgres postgres  4096 Jul  7  2016 .
drwxr-xr-x 3 postgres postgres  4096 Feb  3  2016 ..
-rw-r--r-- 1 postgres postgres   315 Feb  3  2016 environment
-rw-r--r-- 1 postgres postgres   143 Feb  3  2016 pg_ctl.conf
-rw-r----- 1 postgres postgres  4641 Feb  3  2016 pg_hba.conf
-rw-r----- 1 postgres postgres  1636 Feb  3  2016 pg_ident.conf
-rw-r--r-- 1 postgres postgres 21869 Feb  3  2016 postgresql.conf
-rw-r--r-- 1 postgres postgres   378 Feb  3  2016 start.conf

I can't show you the 9.6 ones as I removed them but they are on a
backup. However, the number of files is exactly as above.

The binaries are installed in /usr/lib/postgresl/VN/bin

You create a new cluster by running initdb:-

initdb -D /path/to/my/new/cluster

That path has to exist and be empty otherwise initdb throws an error
and exits. It then creates the sub-directories for pg_log, etc. and
drops in the three conf files as defaults.
You need to edit those conf files and set the parameters for your site.
E.g., autovacuum, work memory, etc.

Your PGDATA environment variable has to point to:-
/path/to/my/new/cluster
which means you need to set that up accordingly, depending on the
applications accessing that cluster.

You can create multiple clusters all running from the same set of
binaries.

I'm quite happy with the way in which the Debian packages are set up as
it means you can have multiple clusters and each can have its own
postgresql.conf file.
For example you might have a production database streaming to a slave,
a playpen database where users can try something out before running it
on production and a training database that you restore from a dump file
ate the beginning of each training session, and so forth.

My original post was about the access sequence to the postgresql.conf
file as it changed between 9.6.2-1 and 9.6.2-2 in that it looked first
in the /etc path, found the default and tried to use it. In the past it
always looked first in $PGDATA.
By removing the conf files from the 9.6 /etc path it used the one in
$PGDATA and the cluster started up without any errors and with the
vacuum daemon running. 
So, if you want to have multiple clusters with each one using its own
postgresql.conf, then you have to eliminate those files from the /etc
path, or alter your start-up scripts to use the config_file parameter.
Note that this also applies to the other two conf files.


On two occasions over the years a beta release has been compiled from
source but into the exact same directory structure as the Debian
packages installed from the repo. When the "official" release became
available, it just overwrote those binaries.

I don't know how Postgres is structured on Ubuntu and always assumed it
was identical to Debian.

HTH.

Cheers,
Rob



-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux