Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vEAMF-006XT8-Uh for pgsql-admin@arkaria.postgresql.org; Wed, 29 Oct 2025 17:53:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1vEAMD-002djX-8C for pgsql-admin@arkaria.postgresql.org; Wed, 29 Oct 2025 17:53:12 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1vEAMC-002djP-Qy for pgsql-admin@lists.postgresql.org; Wed, 29 Oct 2025 17:53:11 +0000 Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vEAM9-004vHp-0m for pgsql-admin@lists.postgresql.org; Wed, 29 Oct 2025 17:53:11 +0000 Received: by mail-oi1-x231.google.com with SMTP id 5614622812f47-44dbaff4117so734930b6e.0 for ; Wed, 29 Oct 2025 10:53:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761760387; x=1762365187; darn=lists.postgresql.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=6VuB4mJzaaz0x9u0MUOwGvtR4uMqLIQLWR9RYX7wBjs=; b=mNJLKlVb8bUKuk0BFRFDMlyXij37Q7L6iXb9rLCt7vfMLirvSwfRhrVZDFZDUnwBzU ZSuGxgPAjc689eIHCVAPGf3vhp96mSBYdC/ybL9gNYIFUaFj2Xi9lcollGR5Eyt6jEzb QG2nm/r0iyUVUWn+CCSsKTPuP/Y00Lb7qGRTiZAW4gY++IKY3HxKT4Ug3Ue4hif2mAEK aohl6VTIGUNk34lpYZYX5hnJgy9CBlG34XBe1lT87l6CRHBAIylwUzAL+0x0tUsRqRBi GvjL6jXmthn/Qhh5Ojpw+CThxz7Ku+jAstYObtMCakgcXTqGvPsPPw77eKrtuteQGXzU 3GKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761760387; x=1762365187; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=6VuB4mJzaaz0x9u0MUOwGvtR4uMqLIQLWR9RYX7wBjs=; b=jnx+N+8KlgUq0+hw7Y3puzDU93MJgaLkjTw1ecNF2QYTZQK++XQZdo4Y/43rkv9Q9o DGwtVMtLtf/mo+pd0TlpdkshLHe5RY5JGZiyYx78F9j6G6R8GH41W0PQ+etiJyTVIrTJ QGlkB9BfwFJR6qAw9DrncpJF1vrfzqVRpVskOK1SswAMGzwBXZhbUTI3GNTG5ENqN2Qy IEOizgTn9JmM2T0FCH7S4MtDE5QwTKSQF3Vxdq4ALGRGvc/KJ68Is2YDReiKoDv9Eh2d aQh0k28IrnqqFSDHbCycDmYFMs+4vQxIbXTfoNXZ1+3PYCqW1mDC3mRMOfiIFzO8iSAg BXjg== X-Gm-Message-State: AOJu0Ywrowr6YPZj3NhiDJL6DtobblKK2uIG7x9YeGXegpqpEEGaCA9E GieZut4ry+VIqGTszV6OJWwNgBwyuhQlCPt7ow+0ymOcAcH8TVP9iXULxcan8O/RiP4nRPDVr5e IUGAyKORQ6XDWInU/6WYCbMrkOKtsIfOAQ0ZO X-Gm-Gg: ASbGncuCeQZ4JENfa4W1ko19Ti+PMTxq3uzr7UYY2t9lg/Rg/NDFvJRbkSsRxa+/QHN 15P7Kcg7xOHcvUxy1HO1JUHx000qfWvaqsDh3mP4+Rq0U4o+3a4p9J8Uk+8DawcP4dNnMQMrPG5 pGEyb5o3HfLk9xc2QHAnzNh6Ff22Nh2koKA8FlSNs1Q8qY+MC/5bw7GQpiqebB91u63PC45aSOY 9VTkPJygdBcMeDdvp7tym9v2wXo1sY+nZWc/aYOQ/BLqIB0OhaRGsNdy45SYw== X-Google-Smtp-Source: AGHT+IHujSwR6N7MZTHMb6vNgM/2FTEn0EaXJWiwC48wAAnjD/ZmDCuDuw/qOJSCzl4eon4O87ziGNah+idBDTVAPA8= X-Received: by 2002:a05:6808:6f89:b0:43f:28bb:2f85 with SMTP id 5614622812f47-44f889ebac5mr263834b6e.8.1761760386515; Wed, 29 Oct 2025 10:53:06 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Ron Johnson Date: Wed, 29 Oct 2025 13:52:55 -0400 X-Gm-Features: AWmQ_blvdyeGRkHMuS0Xom-nmvMu3PHg1y10BqFV-Gp3QETvJvJzzObGZF1HDmQ Message-ID: Subject: Re: pg_basebackup --incremental To: Pgsql-admin Content-Type: multipart/alternative; boundary="0000000000000487e006424fcef3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000000487e006424fcef3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I'm certain this is all in the User Guide: $ grep -rh archive $PGDATA/postgresql.conf* archive_mode =3D on #archive_command =3D '/bin/true' archive_command =3D 'pgbackrest --stanza=3Dnfs archive-push %p' Since changing archive_mode requires a restart, but changing archive_command just requires a reload, it's useful to have both of those archive_command lines in your config. Always keep "archive_mode = =3D on" but disable it by setting archive_command to /bin/true (which will be a rare occurrence). On Wed, Oct 29, 2025 at 1:40=E2=80=AFPM Sam Stearns w= rote: > Hi Ron, > > If I may, please. What are the postgres.conf parameters you set > specifically for pgBackRest? > > Thanks, > > Sam > > On Tue, Oct 28, 2025 at 3:21=E2=80=AFPM Sam Stearns = wrote: > >> Thanks, Ron! We'll take another look at pgBackRest. >> >> On Tue, Oct 28, 2025 at 10:52=E2=80=AFAM Ron Johnson >> wrote: >> >>> On Tue, Oct 28, 2025 at 1: 43 PM Sam Stearns >>> wrote: Howdy, We're running version 17. 6. Would anyone be able to poin= t me >>> to, or provide, some sample use cases / scripts / usage to deploy a >>> pg_basebackup full + --incremental >>> ZjQcmQRYFpfptBannerStart >>> This Message Is From an External Sender >>> This message came from outside your organization. >>> >>> ZjQcmQRYFpfptBannerEnd >>> On Tue, Oct 28, 2025 at 1:43=E2=80=AFPM Sam Stearns wrote: >>> >>>> Howdy, >>>> >>>> We're running version 17.6. Would anyone be able to point me to, or >>>> provide, some sample use cases / scripts / usage to deploy a pg_baseba= ckup >>>> full + --incremental strategy as a backup solution, please? >>>> >>> >>> The question confuses me a bit (though maybe because weekly "full", and >>> remainder "incremental" is pretty standard). PgBackRest really is quit= e >>> simple and easy to configure if you back up to a local mount point (eve= n >>> when that mount point is NFS). >>> >>> This is in the "postgres" crontab: >>> 15 01 * * Sun Type=3Dfull; pgbackrest backup --stanza=3Dnfs --type=3D$T= ype &> >>> logs/pgbackrest_$(date +"\%F_\%T")_${Type}.log >>> 15 01 * * 1-6 Type=3Dincr; pgbackrest backup --stanza=3Dnfs --type=3D$T= ype &> >>> logs/pgbackrest_$(date +"\%F_\%T")_${Type}.log >>> >>> And this is my /etc/pgbackrest.conf: >>> [global] >>> repo1-path=3D/Database/backups/pgbackrest >>> repo1-cipher-type=3Daes-256-cbc >>> repo1-cipher-pass=3D >>> repo1-bundle=3Dy >>> repo1-bundle-limit=3D20MiB >>> repo1-bundle-size=3D200MiB >>> [nfs] >>> pg1-path=3D/Database/17/data >>> resume=3Dn >>> start-fast=3Dy >>> stop-auto=3Dy >>> compress-type=3Dzst >>> log-level-console=3Ddetail >>> log-level-file=3Dinfo >>> log-path=3D/var/lib/pgsql/logs/pgbackrest >>> retention-full=3D4 >>> process-max=3D >>> [nfs:archive-push] >>> compress-type=3Dzst >>> >>> -- >>> Death to , and butter sauce. >>> Don't boil me, I'm still alive. >>> lobster! >>> >> >> >> -- >> >> Samuel Stearns >> Team Lead - Database >> c: 971 762 6879 | o: 971 762 6879 | DAT.com >> >> >> >> >> > > -- > > Samuel Stearns > Team Lead - Database > c: 971 762 6879 | o: 971 762 6879 | DAT.com > > > > --=20 Death to , and butter sauce. Don't boil me, I'm still alive. lobster! --0000000000000487e006424fcef3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I'm certain this is all in the User Guide:
<= div>$ grep -rh archive $PGDATA/postgresql.conf*archive_mode =3D on
#archive_command =3D '/bin/true'
archive= _command =3D 'pgbackrest --stanza=3Dnfs archive-push %p'
=
Since changing archive_mode requires a restart, but changing= =C2=A0archive_command just requires a reload, it's useful to have both = of those archive_command lines in your config.=C2=A0 Always keep "arch= ive_mode =3D on" but disable it by setting archive_command to=C2=A0/bi= n/true (which will be a rare=C2=A0occurrence).

On Wed, Oct 29, 2025 at 1:40=E2=80=AFPM Sam Stearns &l= t;sam.stearns@dat.com> wrote:=
Hi Ron,

I= f I may, please.=C2=A0 What are the postgres.conf parameters you set specif= ically for pgBackRest?

Thanks,

Sam


On Tue, Oct 28, 2025 at 1:=E2=80=8A43 PM Sam Stearns <sam.=E2=80=8Astear= ns@=E2=80=8Adat.=E2=80=8Acom> wrote: Howdy, We're running version 17= .=E2=80=8A6. Would anyone be able to point me to, or provide, some sample u= se cases / scripts / usage to deploy a pg_basebackup full + --incremental
ZjQcmQRYFpfptBannerStart
This Message Is From an External Sender
This message came from outside your organization.
=C2=A0
ZjQcmQRYFpfptBannerEnd
On Tue, Oct 28, 2025 at 1:43=E2=80=AFPM S= am Stearns <sam= .stearns@dat.com> wrote:
Howdy,

We're running version=C2=A017.6.=C2=A0 Would=C2=A0any= one be able to point me to, or provide, some sample use cases / scripts / u= sage to deploy a pg_basebackup full=C2=A0+ --incremental strategy as a back= up solution, please?

The question confuses me a bit (though maybe because weekly "fu= ll", and remainder "incremental" is pretty standard).=C2=A0 = PgBackRest really is quite simple and easy to configure if you back up to a= local mount point (even when that mount point is NFS).

This is in the "postgres" crontab:
15 01 * * Sun Type=3Dfull; pgbackrest backup --stanza=3Dnfs --ty= pe=3D$Type &> logs/pgbackrest_$(date +"\%F_\%T")_${Type}.l= og
15 01 * * 1-6 Type=3Dincr; pgbackrest backup --stanza=3Dnfs --type=3D= $Type &> logs/pgbackrest_$(date +"\%F_\%T")_${Type}.log

And this is my /etc/pgbackrest.conf:
[global]
repo1-path=3D/Database/backups/p= gbackrest
repo1-cipher-type=3Daes-256-cbc
repo1-cipher-pass=3D<red= acted>
repo1-bundle=3Dy
repo1-bundle-limit=3D20MiB
repo1-bundle= -size=3D200MiB
[nfs]
pg1-path=3D/Database/17/data
resume=3Dn
st= art-fast=3Dy
stop-auto=3Dy
compress-type=3Dzst
log-level-console= =3Ddetail
log-level-file=3Dinfo
log-path=3D/var/lib/pgsql/logs/pgback= rest
retention-full=3D4
process-max=3D<nproc * 3/4>
[nfs:arc= hive-push]
compress-type=3Dzst

--
Death to <Redacted>, and butter sauce.
Do= n't boil me, I'm still alive.
<Redacted> lobster= !


--

Samuel Stearns
Team Lead - Databas= e
c: 971 76= 2 6879 = | o: 97= 1 762 6879 | D= AT.com




--

Samuel Stearns
Team Lead - Database
= c: 971 762 687= 9 | o: 971 762= 6879 |= DAT.co= m

=




--
Death to <Redacted>, and butter sauce.Don't boil me, I'm still alive.
<Redacted> lobs= ter!
--0000000000000487e006424fcef3--