[root@krishna data]# yum list pgbackrest*

Loaded plugins: langpacks, ulninfo

Available Packages

pgbackrest.x86_64                                                            2.40-1.rhel7                                                  pgdg-common

pgbackrest-debuginfo.x86_64                                                  2.40-1.rhel7                                                  pgdg-common

[root@krishna data]# yum install pgbackrest.x86_64

 

[root@krishna data]# vi /etc/pgbackrest.conf

     [global]

repo1-path=/var/lib/pgbackrest

 

[pearl]

pg1-path=/var/lib/pgsql/13/data

 

CHECK IF POSTGRES IS RUNNING

 

[root@krishna data]# vi /etc/pgbackrest.conf

[root@krishna data]# ps -ef|grep post

root      1499     1  0 17:00 ?        00:00:00 /usr/libexec/postfix/master -w

postfix   1500  1499  0 17:00 ?        00:00:00 pickup -l -t unix -u

postfix   1501  1499  0 17:00 ?        00:00:00 qmgr -l -t unix -u

postgres  4540     1  0 17:16 ?        00:00:00 /usr/pgsql-13/bin/postmaster -D /var/lib/pgsql/13/data/

 

[root@krishna data]# cd /var/lib/pgsql/13/data

[root@krishna data]# vi postgresql.conf

      wal_level = logical

archive_mode = on

archive_command = ‘pgbackrest –stanza=pearl archive-push %p’

max_wal_sender=6

 

-bash-4.2$ /usr/pgsql-13/bin/pg_ctl -D /var/lib/pgsql/13/data/ restart

 

-bash-4.2$ pgbackrest –stanza=pearl –log-level-console=info stanza-create

2022-09-15 17:32:01.366 P00   INFO: stanza-create command begin 2.40: –exec-id=5650-7a82ffab –log-level-console=info –pg1-path=/var/lib/pgsql/13/data –repo1-path=/var/lib/pgbackrest –stanza=pearl

2022-09-15 17:32:01.976 P00   INFO: stanza-create for stanza ‘pearl’ on repo1

2022-09-15 17:32:02.070 P00   INFO: stanza-create command end: completed successfully (705ms)

 

-bash-4.2$ pgbackrest –stanza=pearl –log-level-console=info check

2022-09-15 17:33:38.647 P00   INFO: check command begin 2.40: –exec-id=5749-7129dc7a –log-level-console=info –pg1-path=/var/lib/pgsql/13/data –repo1-path=/var/lib/pgbackrest –stanza=pearl

2022-09-15 17:33:39.256 P00   INFO: check repo1 configuration (primary)

2022-09-15 17:33:39.468 P00   INFO: check repo1 archive for WAL (primary)

2022-09-15 17:33:39.881 P00   INFO: WAL segment 000000010000000000000001 successfully archived to ‘/var/lib/pgbackrest/archive/pearl/13-1/0000000100000000/000000010000000000000001-90c3cfb00f3cdb504985c93f1010b10c72e12e61.gz’ on repo1

2022-09-15 17:33:39.881 P00   INFO: check command end: completed successfully (1235ms)

 

-bash-4.2$ pgbackrest –stanza=pearl –type=full –log-level-stderr=info backup

INFO: backup command begin 2.40: –exec-id=5876-5b294bf5 –log-level-stderr=info –pg1-path=/var/lib/pgsql/13/data –repo1-path=/var/lib/pgbackrest –stanza=pearl –type=full

WARN: option ‘repo1-retention-full’ is not set for ‘repo1-retention-full-type=count’, the repository may run out of space

      HINT: to retain full backups indefinitely (without warning), set option ‘repo1-retention-full’ to the maximum.

INFO: execute non-exclusive pg_start_backup(): backup begins after the next regular checkpoint completes

INFO: backup start archive = 000000010000000000000003, lsn = 0/3000060

INFO: check archive for prior segment 000000010000000000000002

INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive

INFO: backup stop archive = 000000010000000000000003, lsn = 0/3000138

INFO: check archive for segment(s) 000000010000000000000003:000000010000000000000003

INFO: new backup label = 20220915-173551F

INFO: full backup size = 23.9MB, file total = 936

INFO: backup command end: completed successfully (7565ms)

INFO: expire command begin 2.40: –exec-id=5876-5b294bf5 –log-level-stderr=info –repo1-path=/var/lib/pgbackrest –stanza=pearl

INFO: option ‘repo1-retention-archive’ is not set – archive logs will not be expired

INFO: expire command end: completed successfully (21ms)

 

[root@krishna ~]# vi /etc/pgbackrest.conf

   [global]

repo1-path=/var/lib/pgbackrest

 

[pearl]

pg1-path=/var/lib/pgsql/13/restore

 

Before restoring check if the “restore” directory is available in the path “pg1-path=/var/lib/pgsql/13/restore”.

If not available we need to create 

[root@krishna ~]# mkdir /var/lib/pgsql/13/restore

[root@krishna ~]# chmod 700 /var/lib/pgsql/13/restore

[root@krishna ~]# chown -R postgres. /var/lib/pgsql/13/restore

 

-bash-4.2$ pgbackrest –stanza=pearl –log-level-stderr=info restore

Now we can change the port number in the restored cluster and run it as a new cluster

-bash-4.2$ vi postgresql.conf

           Port=5434

-bash-4.2$ /usr/pgsql-13/bin/pg_ctl -D /var/lib/pgsql/13/restore/ start

waiting for server to start….2022-09-15 17:48:53.243 IST [6735] LOG:  redirecting log output to logging collector process

2022-09-15 17:48:53.243 IST [6735] HINT:  Future log output will appear in directory “log”.

 done

server started

-bash-4.2$ psql -p 5434

psql (13.8)

Type “help” for help.

postgres=# show port;

 port 

——

 5434

(1 row)