Subject: Re: Linked directory or explicit reference

From: Ron Johnson <[email-masked]>
Date: Tue, 30 Apr 2024 20:31:45 -0400

On Tue, Apr 30, 2024 at 7:00 PM Senor Cervesa <[email-masked]>
wrote:

> Hi All;
>
> When doing an initial install of PostgreSQL on RHEL 7 or 8 derived OS via
> rpm, what are pros, cons and recommendations of these 2 procedures for
> utilizing a second disk?
>
> Secondary SSD or RAID mounted at /disk2.
>
> Option #1
>
>    1. install the rpm which creates basic user and home
>    2. Create symlink /var/lib/pgsql/15/data --> /disk2/data
>    3. initdb with no special options
>
> Or Option #2
>
>    1. install the rpm which creates basic user and home
>    2. initdb with --pgdata=/disk2/data
>    Probably using included 'postgresql-12-setup' script
>
> I also link /var/lib/pgsql/data  --> ../15/data so automation can
> reference postgresql.conf without knowing version (legacy stuff).
>

In my experience,The PgBackRest restore feature does not like symlinks.

> The install is automated with a bash script which handles several options
> including whether there is a second disk for DB. Scripting the install with
> or without the second disk is straight forward but I'm concerned with
> either scenario causing unforeseen differences.
>
> I don't think there's a benefit to using tablespace here but I have no
> experience with it. The systemd service is configured with a dependency on
> the disk mount so I don't think there are different risks for starting
> postgres with missing data directory.
>
> I've run postgres in both scenarios and not had any issues. I'm interested
> in comments from others on their experience using these or other options.
>
Is the mount point just "/disk2" when using "--pgdata=/disk2/data"?  I've
gotten "directory not empty" errors when the mount point is
"/Database/x.y/data".

---

From: Senor Cervesa <[email-masked]>
Date: Wed, 1 May 2024 21:50:31 -0700

On 4/30/2024 17:31, Ron Johnson wrote:
> On Tue, Apr 30, 2024 at 7:00 PM Senor Cervesa 
> <[email-masked]> wrote:
>
>     Hi All;
>
>     When doing an initial install of PostgreSQL on RHEL 7 or 8 derived
>     OS via rpm, what are pros, cons and recommendations of these 2
>     procedures for utilizing a second disk?
>
I hadn't considered that and it's the kind of experience feedback I'm 
looking for. It won't be an issue for me though.
>
>     The install is automated with a bash script which handles several
>     options including whether there is a second disk for DB. Scripting
>     the install with or without the second disk is straight forward
>     but I'm concerned with either scenario causing unforeseen differences.
>
>     I don't think there's a benefit to using tablespace here but I
>     have no experience with it. The systemd service is configured with
>     a dependency on the disk mount so I don't think there are
>     different risks for starting postgres with missing data directory.
>
>     I've run postgres in both scenarios and not had any issues. I'm
>     interested in comments from others on their experience using these
>     or other options.
>
> Is the mount point just "/disk2" when using "--pgdata=/disk2/data"?  
> I've gotten "directory not empty" errors when the mount point is 
> "/Database/x.y/data".
>
When linked, it looks like:

[root@test110 pgsql]# ll /var/lib/pgsql/15/data
lrwxrwxrwx. 1 root root 12 May  1 05:21 /var/lib/pgsql/15/data -> 
/disk2/data/

I'm not sure what would trigger "directory not empty". When running 
initdb there is nothing under data. I could see a problem with a symlink 
throwing that message as a catchall though. I haven't run across any 
problems yet.

Thank you Ron Johnson for the feedback.

---

From: Ron Johnson <[email-masked]>
Date: Thu, 2 May 2024 05:24:47 -0400

On Thu, May 2, 2024 at 12:50 AM Senor Cervesa <[email-masked]>
wrote:
[snip]

>  I'm not sure what would trigger "directory not empty".

The lost+found directory.