Preferred Installation/Data Directories

Started by Rich Shepardalmost 19 years ago6 messagesgeneral
Jump to latest
#1Rich Shepard
rshepard@appl-ecosys.com

Seems to me that the preferred filesystem for postgres has varied over the
years from /var/lib/ to /usr/local/ and back again. When I upgraded from
7.4.3 to 8.1.4 the move was from /usr/local/ to /var/lib/. Now, as I prepare
to upgrade and migrate data from 8.1.4 to 8.2.4, I see that the docs all
refer to an installation in /usr/local/.

Is there a preference? Does it matter? On my system /usr/local/ is 20
times the size of /var/, so it makes more sense to store data where there's
more room.

Rich

--
Richard B. Shepard, Ph.D. | The Environmental Permitting
Applied Ecosystem Services, Inc. | Accelerator(TM)
<http://www.appl-ecosys.com&gt; Voice: 503-667-4517 Fax: 503-667-8863

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Rich Shepard (#1)
Re: Preferred Installation/Data Directories

Rich Shepard <rshepard@appl-ecosys.com> writes:

Seems to me that the preferred filesystem for postgres has varied over the
years from /var/lib/ to /usr/local/ and back again.

No, it hasn't. The PG code itself doesn't make any assumptions about
the location of $PGDATA AFAIR, but there are a large number of
packagings that assume specific places like /var/lib/pgsql/. If you've
changed platforms or changed between installing from source and
installing a prebuilt package, you might notice some variability.
In any case you're certainly welcome to put $PGDATA anywhere you want.

[ Thinks for a bit ... ] Note that "packaging" might extend further
than meets the eye. For instance, if you want to move $PGDATA on a
recent Red Hat system, you need to tweak not only the initscript but
the SELinux policy, which by default will constrain the postmaster to
write only under /var/lib/pgsql/.

regards, tom lane

#3Rich Shepard
rshepard@appl-ecosys.com
In reply to: Tom Lane (#2)
Re: Preferred Installation/Data Directories

On Fri, 27 Apr 2007, Tom Lane wrote:

No, it hasn't. The PG code itself doesn't make any assumptions about the
location of $PGDATA AFAIR, but there are a large number of packagings that
assume specific places like /var/lib/pgsql/. If you've changed platforms
or changed between installing from source and installing a prebuilt
package, you might notice some variability. In any case you're certainly
welcome to put $PGDATA anywhere you want.

Thanks, Tom. That does clear up what I've seen over the years. The
executables go in /usr/bin/ (at least they do with Slackware), but $PGDATA
is what I've seen changed between building from source and installing
packages.

[ Thinks for a bit ... ] Note that "packaging" might extend further than
meets the eye. For instance, if you want to move $PGDATA on a recent Red
Hat system, you need to tweak not only the initscript but the SELinux
policy, which by default will constrain the postmaster to write only under
/var/lib/pgsql/.

I see in postgresql.SlackBuild where the data directories are specified.
I'll change that from /var/lib/pgsql/data to /usr/local/pgsql/data and
rebuild the package.

Very much appreciated,

Rich

--
Richard B. Shepard, Ph.D. | The Environmental Permitting
Applied Ecosystem Services, Inc. | Accelerator(TM)
<http://www.appl-ecosys.com&gt; Voice: 503-667-4517 Fax: 503-667-8863

#4Ron Johnson
ron.l.johnson@cox.net
In reply to: Rich Shepard (#3)
Re: Preferred Installation/Data Directories

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 04/27/07 09:50, Rich Shepard wrote:
[snip]

I see in postgresql.SlackBuild where the data directories are specified.
I'll change that from /var/lib/pgsql/data to /usr/local/pgsql/data and
rebuild the package.

(Explicitly noting that this is a serious question, not an attempt
to start a flame war.)

Why put "active" data under /usr? Ever since user data was moved to
/home, /usr has only had system stuff in it. Or is that still a
viable BSDism?

- --
Ron Johnson, Jr.
Jefferson LA USA

Give a man a fish, and he eats for a day.
Hit him with a fish, and he goes away for good!

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFGMjmRS9HxQb37XmcRAhAHAJ9Z0s8BOmQuaXTR6QsGXz+NISQvqACeN9g1
Hww/Z37CCfiqhDsHxuvpzaA=
=0nk1
-----END PGP SIGNATURE-----

#5Rich Shepard
rshepard@appl-ecosys.com
In reply to: Ron Johnson (#4)
Re: Preferred Installation/Data Directories

On Fri, 27 Apr 2007, Ron Johnson wrote:

Why put "active" data under /usr? Ever since user data was moved to home,
/usr has only had system stuff in it. Or is that still a viable BSDism?

Good question, Ron! But, in a multiuser system with many users of the
database, in whose /home directory will you put the data?

Since /usr/local, /opt, and similar filesystems are for local interest
stuff, they make ideal data storage areas. Neither is affected by
distribution upgrades so the data are safe there.

Rich

--
Richard B. Shepard, Ph.D. | The Environmental Permitting
Applied Ecosystem Services, Inc. | Accelerator(TM)
<http://www.appl-ecosys.com&gt; Voice: 503-667-4517 Fax: 503-667-8863

#6Russ Brown
pickscrape@gmail.com
In reply to: Rich Shepard (#5)
Re: Preferred Installation/Data Directories

Rich Shepard wrote:

On Fri, 27 Apr 2007, Ron Johnson wrote:

Why put "active" data under /usr? Ever since user data was moved to
home,
/usr has only had system stuff in it. Or is that still a viable BSDism?

Good question, Ron! But, in a multiuser system with many users of the
database, in whose /home directory will you put the data?

Since /usr/local, /opt, and similar filesystems are for local interest
stuff, they make ideal data storage areas. Neither is affected by
distribution upgrades so the data are safe there.

According to the FHS (http://www.pathname.com/fhs/pub/fhs-2.3.html):

"/usr is shareable, read-only data. That means that /usr should be
shareable between various FHS-compliant hosts and must not be written
to. Any information that is host-specific or varies with time is stored
elsewhere."

"/var contains variable data files. This includes spool directories and
files, administrative and logging data, and transient and temporary files."

This suggests that var is a 'better' place for the database files from
this perspective, since /usr should be mountable read-only when not
doing system administration.

Interestingly, I just noticed that the FHS also specifies a different
top-level directory that I'd never heard of before that could be even
more suitable (again, in this perspective):

"/srv contains site-specific data which is served by this system."

Show quoted text

Rich