1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-12 10:04:14 +02:00
pgbackrest/doc/resource/exe.cache
David Steele dfc14b1934 v2.52: PostgreSQL 17 support
NOTE TO PACKAGERS: The build system for pgBackRest is now meson. The autoconf/make build will not receive any new features and will be removed after a few releases.

Features:

* Add GCS batch delete support. (Reviewed by Reid Thompson.)
* S3 SSE-C encryption support. (Reviewed by Tim Jones. Suggested by Tim Jones.)
* PostgreSQL 17 support. (Reviewed by Stefan Fercot.)

Improvements:

* Allow explicit disabling of optional dependencies in meson builds. (Contributed by Michael Schout. Reviewed by David Steele.)
* Dynamically find python in meson build. (Contributed by Michael Schout. Reviewed by David Steele.)
* Tag pgbackrest build target in meson as installable. (Contributed by Bradford Boyle. Reviewed by David Steele.)

Documentation Improvements:

* Update start/stop documentation to reflect actual functionality. (Reviewed by Stefan Fercot.)
2024-05-27 11:13:16 +10:00

13509 lines
530 KiB
Plaintext

{
"default" : {
"all" : {
"contributing" : [
{
"key" : {
"id" : "contrib",
"image" : "pgbackrest/doc:contrib",
"name" : "pgbackrest-dev",
"option" : "-v /var/run/docker.sock:/var/run/docker.sock -v /home/vagrant/test:/home/vagrant/test",
"os" : "u20",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.10"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo apt-get update"
],
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo apt-get install rsync git devscripts build-essential valgrind lcov autoconf \\",
" autoconf-archive libssl-dev zlib1g-dev libxml2-dev libpq-dev pkg-config \\",
" libxml-checker-perl libyaml-perl libdbd-pg-perl liblz4-dev liblz4-tool \\",
" zstd libzstd-dev bzip2 libbz2-dev libyaml-dev ccache python3-distutils meson"
],
"cmd-extra" : "-y 2>&1",
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"pgbackrest/test/test.pl --clean-only"
],
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"curl -fsSL https://get.docker.com | sudo sh"
],
"cmd-extra" : "2>&1",
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo usermod -aG docker `whoami`"
],
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 666 /var/run/docker.sock"
],
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"pgbackrest/test/test.pl --dry-run"
],
"cmd-extra" : "--no-log-timestamp",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"[0-9]+ tests selected|DRY RUN COMPLETED SUCCESSFULLY"
]
},
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: test begin on x86_64 - log level info",
"P00 INFO: clean autogenerate code",
"P00 INFO: 81 tests selected",
" ",
"P00 INFO: P1-T01/81 - vm=none, module=common, test=error",
" [filtered 78 lines of output]",
"P00 INFO: P1-T80/81 - vm=none, module=performance, test=type",
"P00 INFO: P1-T81/81 - vm=none, module=performance, test=storage",
"P00 INFO: DRY RUN COMPLETED SUCCESSFULLY"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"pgbackrest/test/test.pl --vm-out --module=common --test=wait"
],
"cmd-extra" : "--no-log-timestamp",
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: test begin on x86_64 - log level info",
"P00 INFO: cleanup old data",
"P00 INFO: autogenerate configure",
"P00 INFO: autogenerated version in configure.ac script: no changes",
"P00 INFO: autogenerated configure script: no changes",
"P00 INFO: autogenerate code",
"P00 INFO: build for none (/home/vagrant/test/build/none)",
"P00 INFO: 1 test selected",
" ",
"P00 INFO: P1-T1/1 - vm=none, module=common, test=wait",
" ",
" P00 INFO: test command begin 2.52: [common/wait] --log-level=info --no-log-timestamp --repo-path=/home/vagrant/test/repo --test-path=/home/vagrant/test --vm=none --vm-id=0",
" P00 INFO: test command end: completed successfully",
" run 1 - waitNew(), waitMore, and waitFree()",
" L0018 expect AssertError: assertion 'waitTime <= 999999000' failed",
" ",
" run 1/1 ----- L0021 0ms wait",
" L0025 new wait",
" L0026 check wait time",
" L0027 check sleep time",
" L0028 check sleep prev time",
" L0029 no wait more",
" ",
" run 1/2 ----- L0032 100ms with retries after time expired",
" L0034 new wait",
" L0037 time expired, first retry",
" L0038 time expired, second retry",
" L0039 time expired, retries expired",
" ",
" run 1/3 ----- L0042 200ms wait",
" L0046 new wait = 0.2 sec",
" L0047 check wait time",
" L0048 check sleep time",
" L0049 check sleep prev time",
" L0050 check begin time",
" L0052 first retry",
" L0053 check retry",
" L0055 second retry",
" L0056 check retry",
" L0058 still going because of time",
" L0064 lower range check",
" L0065 upper range check",
" L0067 free wait",
" ",
" run 1/4 ----- L0070 1100ms wait",
" L0074 new wait = 1.1 sec",
" L0075 check wait time",
" L0076 check sleep time",
" L0077 check sleep prev time",
" L0078 check begin time",
" L0084 lower range check",
" L0085 upper range check",
" L0087 free wait",
" ",
" TESTS COMPLETED SUCCESSFULLY",
"",
"P00 INFO: P1-T1/1 - vm=none, module=common, test=wait",
"P00 INFO: tested modules have full coverage",
"P00 INFO: writing C coverage report",
"P00 INFO: TESTS COMPLETED SUCCESSFULLY"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"pgbackrest/test/test.pl --module=postgres"
],
"cmd-extra" : "--no-log-timestamp",
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: test begin on x86_64 - log level info",
"P00 INFO: cleanup old data",
"P00 INFO: autogenerate configure",
"P00 INFO: autogenerated version in configure.ac script: no changes",
"P00 INFO: autogenerated configure script: no changes",
"P00 INFO: autogenerate code",
"P00 INFO: build for none (/home/vagrant/test/build/none)",
"P00 INFO: 2 tests selected",
" ",
"P00 INFO: P1-T1/2 - vm=none, module=postgres, test=client",
"P00 INFO: P1-T2/2 - vm=none, module=postgres, test=interface",
"P00 INFO: tested modules have full coverage",
"P00 INFO: writing C coverage report",
"P00 INFO: TESTS COMPLETED SUCCESSFULLY"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"pgbackrest/test/test.pl --vm-build --vm=u20"
],
"cmd-extra" : "--no-log-timestamp",
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: test begin on x86_64 - log level info",
"P00 INFO: Using cached pgbackrest/test:u20-base-20240425A image (c3fc7cc1956c5eb10995119deed7a21b92dd07a7) ...",
"P00 INFO: Building pgbackrest/test:u20-test image ...",
"P00 INFO: Build Complete"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"pgbackrest/test/test.pl --vm=u20 --module=postgres --test=interface --run=2"
],
"cmd-extra" : "--no-log-timestamp",
"host" : "pgbackrest-dev",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: test begin on x86_64 - log level info",
"P00 INFO: cleanup old data and containers",
"P00 INFO: autogenerate configure",
"P00 INFO: autogenerated version in configure.ac script: no changes",
"P00 INFO: autogenerated configure script: no changes",
"P00 INFO: autogenerate code",
"P00 INFO: clean build for u20 (/home/vagrant/test/build/u20)",
"P00 INFO: 1 test selected",
" ",
"P00 INFO: P1-T1/1 - vm=u20, module=postgres, test=interface, run=2",
"P00 INFO: no code modules had all tests run required for coverage",
"P00 INFO: tested modules have full coverage",
"P00 INFO: writing C coverage report",
"P00 INFO: TESTS COMPLETED SUCCESSFULLY"
]
}
}
],
"user-guide" : [
{
"key" : {
"id" : "azure",
"image" : "mcr.microsoft.com/azure-storage/azurite",
"name" : "azure-server",
"option" : "-v {[host-repo-path]}/doc/resource/fake-cert/azure-server.crt:/root/public.crt:ro -v {[host-repo-path]}/doc/resource/fake-cert/azure-server.key:/root/private.key:ro -e AZURITE_ACCOUNTS='pgbackrest:YXpLZXk='",
"os" : "debian",
"param" : "azurite-blob --blobPort 443 --blobHost 0.0.0.0 --cert=/root/public.crt --key=/root/private.key",
"update-hosts" : false
},
"type" : "host",
"value" : {
"ip" : "172.17.0.2"
}
},
{
"key" : {
"id" : "s3",
"image" : "minio/minio:RELEASE.2023-09-30T07-02-29Z",
"name" : "s3-server",
"option" : "-v {[host-repo-path]}/doc/resource/fake-cert/s3-server.crt:/root/.minio/certs/public.crt:ro -v {[host-repo-path]}/doc/resource/fake-cert/s3-server.key:/root/.minio/certs/private.key:ro -e MINIO_REGION=us-east-1 -e MINIO_DOMAIN=s3.us-east-1.amazonaws.com -e MINIO_BROWSER=off -e MINIO_ACCESS_KEY=accessKey1 -e MINIO_SECRET_KEY=verySecretKey1",
"os" : "debian",
"param" : "server /data --address :443",
"update-hosts" : false
},
"type" : "host",
"value" : {
"ip" : "172.17.0.3"
}
},
{
"key" : {
"id" : "sftp",
"image" : "pgbackrest/doc:debian",
"name" : "sftp-server",
"option" : "-m 512m -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "debian",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.4"
}
},
{
"key" : {
"id" : "build",
"image" : "pgbackrest/doc:debian",
"name" : "build",
"option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "debian",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.5"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /build/pgbackrest-release-2.52"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cp -r /pgbackrest/* /build/pgbackrest-release-2.52"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown -R vagrant /build"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo apt-get update"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo apt-get install python3-distutils meson gcc libpq-dev libssl-dev libxml2-dev \\",
" pkg-config liblz4-dev libzstd-dev libbz2-dev libz-dev libyaml-dev libssh2-1-dev"
],
"cmd-extra" : "-y 2>&1",
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"meson setup /build/pgbackrest /build/pgbackrest-release-2.52"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"ninja -C /build/pgbackrest"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"id" : "pg1",
"image" : "pgbackrest/doc:debian",
"name" : "pg-primary",
"option" : "-m 512m -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "debian",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.6"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo apt-get install postgresql-client libxml2 libssh2-1"
],
"cmd-extra" : "-y 2>&1",
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin"
],
"cmd-extra" : "2>&1",
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 770 /var/log/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/log/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest/conf.d"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo touch /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 640 /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"pgBackRest 2.52 - General help",
"",
"Usage:",
" pgbackrest [options] [command]",
"",
"Commands:",
" annotate Add or modify backup annotation.",
" archive-get Get a WAL segment from the archive.",
" archive-push Push a WAL segment to the archive.",
" backup Backup a database cluster.",
" check Check the configuration.",
" expire Expire backups that exceed retention.",
" help Get help.",
" info Retrieve information about backups.",
" repo-get Get a file from a repository.",
" repo-ls List files in a repository.",
" restore Restore a database cluster.",
" server pgBackRest server.",
" server-ping Ping pgBackRest server.",
" stanza-create Create the required stanza data.",
" stanza-delete Delete a stanza.",
" stanza-upgrade Upgrade a stanza.",
" start Allow pgBackRest processes to run.",
" stop Stop pgBackRest processes from running.",
" verify Verify contents of the repository.",
" version Get version.",
"",
"Use 'pgbackrest help [command]' for more information."
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres /usr/lib/postgresql/15/bin/initdb \\",
" -D /var/lib/postgresql/15/demo -k -A peer"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_createcluster 15 demo"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"Configuring already existing cluster (configuration: /etc/postgresql/15/demo, data: /var/lib/postgresql/15/demo, owner: 102:103)",
"Ver Cluster Port Status Owner Data directory Log file",
"15 demo 5432 down postgres /var/lib/postgresql/15/demo /var/log/postgresql/postgresql-15-demo.log"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cat /root/postgresql.common.conf >> /etc/postgresql/15/demo/postgresql.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/postgresql/15/demo"
}
},
"global" : {
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres bash -c ' \\",
" export PGBACKREST_LOG_PATH=/path/set/by/env && \\",
" pgbackrest --log-level-console=error help backup log-path'"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"current\\: \\/path\\/set\\/by\\/env"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"pgBackRest 2.52 - 'backup' command - 'log-path' option help",
"",
"Path where log files are stored.",
"",
"The log path provides a location for pgBackRest to store log files. Note that",
"if log-level-file=off then no log path is required.",
"",
"current: /path/set/by/env",
"default: /var/log/pgbackrest"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /var/lib/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/lib/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/15/demo/postgresql.conf",
"host" : "pg-primary",
"option" : {
"archive_command" : {
"value" : "'pgbackrest --stanza=demo archive-push %p'"
},
"archive_mode" : {
"value" : "on"
},
"max_wal_senders" : {
"value" : "3"
},
"wal_level" : {
"value" : "replica"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
"archive_mode = on",
"max_wal_senders = 3",
"wal_level = replica"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo restart"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" create or replace function create_test_table(prefix int, scale int, data bool) returns void as \\$\\$ \\",
" declare \\",
" index int; \\",
" begin \\",
" for index in 1 .. scale loop \\",
" execute 'create table test_' || prefix || '_' || index || ' (id int)'; \\",
" \\",
" if data then \\",
" execute 'insert into test_' || prefix || '_' || index || ' values (' || (prefix * index) || ')'; \\",
" end if; \\",
" end loop; \\",
" end \\$\\$ LANGUAGE plpgsql;\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global:archive-push" : {
"compress-level" : {
"value" : "3"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-path=/var/lib/pgbackrest",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-retention-full" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-cipher-pass" : {
"value" : "zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO"
},
"repo1-cipher-type" : {
"value" : "aes-256-cbc"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-create command begin 2.52: --exec-id=385-b7c3d288 --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: stanza-create for stanza 'demo' on repo1",
"P00 INFO: stanza-create command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
" successfully archived to "
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.52: --exec-id=393-258e8875 --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: check repo1 configuration (primary)",
"P00 INFO: check repo1 archive for WAL (primary)",
"P00 INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo/15-1/0000000100000000/000000010000000000000001-ae7454844ef09dd231cac733dc1131a0d748fdba.gz' on repo1",
"P00 INFO: check command end: completed successfully"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"no prior backup exists|full backup size"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: backup command begin 2.52: --exec-id=418-d42a947d --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast",
"P00 WARN: no prior backup exists, incr backup has been changed to full",
"P00 INFO: execute non-exclusive backup start: backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028",
" [filtered 3 lines of output]",
"P00 INFO: check archive for segment(s) 000000010000000000000002:000000010000000000000003",
"P00 INFO: new backup label = 20240527-001151F",
"P00 INFO: full backup size = 21.8MB, file total = 961",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=418-d42a947d --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-001151F"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"diff backup size"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 7 lines of output]",
"P00 INFO: check archive for segment(s) 000000010000000000000004:000000010000000000000005",
"P00 INFO: new backup label = 20240527-001151F_20240527-001155D",
"P00 INFO: diff backup size = 8.3KB, file total = 961",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=442-0b9f30a5 --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"(full|incr|diff) backup"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
" cipher: aes-256-cbc",
"",
" db (current)",
" wal archive min/max (15): 000000010000000000000001/000000010000000000000005",
"",
" full backup: 20240527-001151F",
" timestamp start/stop: 2024-05-27 00:11:51+00 / 2024-05-27 00:11:54+00",
" wal start/stop: 000000010000000000000002 / 000000010000000000000003",
" database size: 21.8MB, database backup size: 21.8MB",
" repo1: backup set size: 2.9MB, backup size: 2.9MB",
"",
" diff backup: 20240527-001151F_20240527-001155D",
" timestamp start/stop: 2024-05-27 00:11:55+00 / 2024-05-27 00:11:57+00",
" wal start/stop: 000000010000000000000004 / 000000010000000000000005",
" database size: 21.8MB, database backup size: 8.3KB",
" repo1: backup set size: 2.9MB, backup size: 448B",
" backup reference list: 20240527-001151F"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres rm /var/lib/postgresql/15/demo/global/pg_control"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo start"
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"could not find the database system"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"Error: /usr/lib/postgresql/15/bin/pg_ctl /usr/lib/postgresql/15/bin/pg_ctl start -D /var/lib/postgresql/15/demo -l /var/log/postgresql/postgresql-15-demo.log -s -o -c config_file=\"/etc/postgresql/15/demo/postgresql.conf\" exited with status 1: ",
"postgres: could not find the database system",
"Expected to find it in the directory \"/var/lib/postgresql/15/demo\",",
"but could not open file \"/var/lib/postgresql/15/demo/global/pg_control\": No such file or directory",
"Examine the log output."
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres find /var/lib/postgresql/15/demo -mindepth 1 -delete"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo restore"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres mkdir -p /var/lib/postgresql/pgbackrest/doc/example"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cp -r /pgbackrest/doc/example/* \\",
" /var/lib/postgresql/pgbackrest/doc/example"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat \\",
" /var/lib/postgresql/pgbackrest/doc/example/pgsql-pgbackrest-info.sql"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"-- An example of monitoring pgBackRest from within PostgreSQL",
"--",
"-- Use copy to export data from the pgBackRest info command into the jsonb",
"-- type so it can be queried directly by PostgreSQL.",
"",
"-- Create monitor schema",
"create schema monitor;",
"",
"-- Get pgBackRest info in JSON format",
"create function monitor.pgbackrest_info()",
" returns jsonb AS $$",
"declare",
" data jsonb;",
"begin",
" -- Create a temp table to hold the JSON data",
" create temp table temp_pgbackrest_data (data text);",
"",
" -- Copy data into the table directly from the pgBackRest info command",
" copy temp_pgbackrest_data (data)",
" from program",
" 'pgbackrest --output=json info' (format text);",
"",
" select replace(temp_pgbackrest_data.data, E'\\n', '\\n')::jsonb",
" into data",
" from temp_pgbackrest_data;",
"",
" drop table temp_pgbackrest_data;",
"",
" return data;",
"end $$ language plpgsql;"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -f \\",
" /var/lib/postgresql/pgbackrest/doc/example/pgsql-pgbackrest-info.sql"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat \\",
" /var/lib/postgresql/pgbackrest/doc/example/pgsql-pgbackrest-query.sql"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"-- Get last successful backup for each stanza",
"--",
"-- Requires the monitor.pgbackrest_info function.",
"with stanza as",
"(",
" select data->'name' as name,",
" data->'backup'->(",
" jsonb_array_length(data->'backup') - 1) as last_backup,",
" data->'archive'->(",
" jsonb_array_length(data->'archive') - 1) as current_archive",
" from jsonb_array_elements(monitor.pgbackrest_info()) as data",
")",
"select name,",
" to_timestamp(",
" (last_backup->'timestamp'->>'stop')::numeric) as last_successful_backup,",
" current_archive->>'max' as last_archived_wal",
" from stanza;"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -f \\",
" /var/lib/postgresql/pgbackrest/doc/example/pgsql-pgbackrest-query.sql"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" name | last_successful_backup | last_archived_wal ",
"--------+------------------------+--------------------------",
" \"demo\" | 2024-05-27 00:11:57+00 | 000000010000000000000005",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo apt-get install jq"
],
"cmd-extra" : "-y 2>&1",
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --output=json --stanza=demo info | \\",
" jq '.[0] | .backup[-1] | .timestamp.stop'"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"1716768717"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --output=json --stanza=demo info | \\",
" jq '.[0] | .archive[-1] | .max'"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"\"000000010000000000000005\""
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-bundle" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres find /var/lib/pgbackrest/backup/demo/latest/ -type f | wc -l"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"5"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-block" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --annotation=source=\"demo backup\" \\",
" --annotation=key=value --type=full backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-001212F"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --set=20240527-001212F info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"annotation"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
" cipher: aes-256-cbc",
"",
" db (current)",
" wal archive min/max (15): 000000020000000000000007/000000020000000000000009",
"",
" full backup: 20240527-001212F",
" timestamp start/stop: 2024-05-27 00:12:12+00 / 2024-05-27 00:12:15+00",
" wal start/stop: 000000020000000000000008 / 000000020000000000000009",
" lsn start/stop: 0/8000028 / 0/9000088",
" database size: 21.8MB, database backup size: 21.8MB",
" repo1: backup size: 2.9MB",
" database list: postgres (5)",
" annotation(s)",
" key: value",
" source: demo backup"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --set=20240527-001212F \\",
" --annotation=key= --annotation=new_key=new_value annotate"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --set=20240527-001212F info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"annotation"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
" cipher: aes-256-cbc",
"",
" db (current)",
" wal archive min/max (15): 000000020000000000000007/000000020000000000000009",
"",
" full backup: 20240527-001212F",
" timestamp start/stop: 2024-05-27 00:12:12+00 / 2024-05-27 00:12:15+00",
" wal start/stop: 000000020000000000000008 / 000000020000000000000009",
" lsn start/stop: 0/8000028 / 0/9000088",
" database size: 21.8MB, database backup size: 21.8MB",
" repo1: backup size: 2.9MB",
" database list: postgres (5)",
" annotation(s)",
" new_key: new_value",
" source: demo backup"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-retention-full" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"archive retention on backup 20240527-001151F|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 973 lines of output]",
"P00 INFO: repo1: remove expired backup 20240527-001208F",
"P00 DETAIL: repo1: 15-1 archive retention on backup 20240527-001212F, start = 000000020000000000000008",
"P00 INFO: repo1: 15-1 remove archive, start = 000000020000000000000007, stop = 000000020000000000000007",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-001216F"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"expire full backup set 20240527-001151F|archive retention on backup 20240527-001216F|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 11 lines of output]",
"P00 INFO: repo1: expire full backup 20240527-001212F",
"P00 INFO: repo1: remove expired backup 20240527-001212F",
"P00 INFO: repo1: 15-1 remove archive, start = 000000020000000000000008, stop = 000000020000000000000009",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-retention-diff" : {
"value" : "1"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=1",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-001220F_20240527-001223D"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"expire diff backup set 20240527-001220F_20240527-001223D"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 10 lines of output]",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=884-03d2fec8 --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=1 --repo1-retention-full=2 --stanza=demo",
"P00 INFO: repo1: expire diff backup set 20240527-001220F_20240527-001223D, 20240527-001220F_20240527-001225I",
"P00 INFO: repo1: remove expired backup 20240527-001220F_20240527-001225I",
"P00 INFO: repo1: remove expired backup 20240527-001220F_20240527-001223D",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-retention-diff" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=2",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-001220F_20240527-001227D"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select pg_create_restore_point('generate WAL'); select pg_switch_wal(); \\",
" select pg_create_restore_point('generate WAL'); select pg_switch_wal();\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"new backup label"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 6 lines of output]",
"P00 INFO: backup stop archive = 000000020000000000000017, lsn = 0/17000100",
"P00 INFO: check archive for segment(s) 000000020000000000000017:000000020000000000000017",
"P00 INFO: new backup label = 20240527-001220F_20240527-001230D",
"P00 INFO: diff backup size = 8.3KB, file total = 961",
"P00 INFO: backup command end: completed successfully",
" [filtered 2 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-001220F_20240527-001230D"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=detail \\",
" --repo1-retention-archive-type=diff --repo1-retention-archive=1 expire"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"archive retention on backup 20240527-001220F_20240527-001227D|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: expire command begin 2.52: --exec-id=959-d03d042e --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-archive=1 --repo1-retention-archive-type=diff --repo1-retention-diff=2 --repo1-retention-full=2 --stanza=demo",
"P00 DETAIL: repo1: 15-1 archive retention on backup 20240527-001216F, start = 00000002000000000000000A, stop = 00000002000000000000000B",
"P00 DETAIL: repo1: 15-1 archive retention on backup 20240527-001220F, start = 00000002000000000000000C, stop = 00000002000000000000000D",
"P00 DETAIL: repo1: 15-1 archive retention on backup 20240527-001220F_20240527-001227D, start = 000000020000000000000012, stop = 000000020000000000000013",
"P00 DETAIL: repo1: 15-1 archive retention on backup 20240527-001220F_20240527-001230D, start = 000000020000000000000017",
"P00 INFO: repo1: 15-1 remove archive, start = 00000002000000000000000E, stop = 000000020000000000000011",
"P00 INFO: repo1: 15-1 remove archive, start = 000000020000000000000014, stop = 000000020000000000000016",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --log-level-console=detail restore"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"demo\\/PG_VERSION - exists and matches backup|remove invalid files|rename global\\/pg_control"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 2 lines of output]",
"P00 DETAIL: check '/var/lib/postgresql/15/demo' exists",
"P00 DETAIL: remove 'global/pg_control' so cluster will not start if restore does not complete",
"P00 INFO: remove invalid files/links/paths from '/var/lib/postgresql/15/demo'",
"P00 DETAIL: remove invalid file '/var/lib/postgresql/15/demo/backup_label.old'",
"P00 DETAIL: remove invalid file '/var/lib/postgresql/15/demo/base/1/pg_internal.init'",
" [filtered 134 lines of output]",
"P01 DETAIL: restore file /var/lib/postgresql/15/demo/base/1/113 - exists and matches backup (bundle 20240527-001220F/1/58424, 8KB, 5.94%) checksum 9c6671806c84144652aa7a1e989bc2cfe3d9bd40",
"P01 DETAIL: restore file /var/lib/postgresql/15/demo/base/1/112 - exists and matches backup (bundle 20240527-001220F/1/58512, 8KB, 5.98%) checksum 9890dd22d170e0de4f4d9404aba2557a33b9909b",
"P01 DETAIL: restore file /var/lib/postgresql/15/demo/PG_VERSION - exists and matches backup (bundle 20240527-001220F/1/58600, 3B, 5.98%) checksum 587b596f04f7db9c2cad3d6b87dd2b3a05de4f35",
"P01 DETAIL: restore file /var/lib/postgresql/15/demo/global/2695 - exists and matches backup (bundle 20240527-001220F/1/58624, 16KB, 6.05%) checksum 843d45d7c839660378249350bae98ab512a70e30",
"P01 DETAIL: restore file /var/lib/postgresql/15/demo/global/2694 - exists and matches backup (bundle 20240527-001220F/1/58832, 16KB, 6.12%) checksum 88e1fb6d0708cf9fa40378bf8a02d167d4f3f7e9",
" [filtered 866 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"create database test1;\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"create database test2;\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"create table test1_table (id int); \\",
" insert into test1_table (id) values (1);\" test1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"CREATE TABLE",
"INSERT 0 1"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"create table test2_table (id int); \\",
" insert into test2_table (id) values (2);\" test2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"CREATE TABLE",
"INSERT 0 1"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -Atc \"select oid from pg_database where datname = 'test1'\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"32768"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres du -sh /var/lib/postgresql/15/demo/base/32768"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"7.3M\t/var/lib/postgresql/15/demo/base/32768"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-001220F_20240527-001238I"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo \\",
" --set=20240527-001220F_20240527-001238I info"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"database list"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 12 lines of output]",
" repo1: backup size: 2.0MB",
" backup reference list: 20240527-001220F, 20240527-001220F_20240527-001230D",
" database list: postgres (5), test1 (32768), test2 (32769)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --db-include=test2 --type=immediate --target-action=promote restore"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select * from test2_table;\" test2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" id ",
"----",
" 2",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select * from test1_table;\" test1"
],
"err-expect" : "2",
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"relation mapping file.*contains invalid data"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"psql: error: connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: FATAL: relation mapping file \"base/32768/pg_filenode.map\" contains invalid data"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres du -sh /var/lib/postgresql/15/demo/base/32768"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"8.0K\t/var/lib/postgresql/15/demo/base/32768"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"drop database test1;\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"DROP DATABASE"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select oid, datname from pg_database order by oid;\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"test2"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" oid | datname ",
"-------+-----------",
" 1 | template1",
" 4 | template0",
" 5 | postgres",
" 32769 | test2",
"(4 rows)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"begin; \\",
" create table important_table (message text); \\",
" insert into important_table values ('Important Data'); \\",
" commit; \\",
" select * from important_table;\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 4 lines of output]",
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -Atc \"select current_timestamp\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"2024-05-27 00:12:49.190751+00"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"begin; \\",
" drop table important_table; \\",
" commit; \\",
" select * from important_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"BEGIN",
"DROP TABLE",
"COMMITERROR: relation \"important_table\" does not exist",
"LINE 1: ...le important_table; commit; select * from important_...",
" ^"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-001220F_20240527-001251I"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"20240527-001220F_20240527-001251I"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 38 lines of output]",
" backup reference list: 20240527-001220F, 20240527-001220F_20240527-001230D",
"",
" incr backup: 20240527-001220F_20240527-001251I",
" timestamp start/stop: 2024-05-27 00:12:51+00 / 2024-05-27 00:12:52+00",
" wal start/stop: 00000004000000000000001A / 00000004000000000000001A",
" [filtered 2 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --set=20240527-001220F_20240527-001251I --target-timeline=current \\",
" --type=time \"--target=2024-05-27 00:12:49.190751+00\" --target-action=promote restore"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-15-demo.log"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo start"
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery ended before configured recovery target was reached"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 13 lines of output]",
"LOG: database system is ready to accept read-only connections",
"LOG: redo done at 0/1A000100 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.01 s",
"FATAL: recovery ended before configured recovery target was reached",
"LOG: startup process (PID 1325) exited with exit code 1",
"LOG: terminating any other active server processes",
" [filtered 3 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --type=time \"--target=2024-05-27 00:12:49.190751+00\" \\",
" --target-action=promote restore"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-15-demo.log"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/lib/postgresql/15/demo/postgresql.auto.conf"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery_target_time"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 9 lines of output]",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:12:54",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"recovery_target_time = '2024-05-27 00:12:49.190751+00'",
"recovery_target_action = 'promote'"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-15-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery stopping before|last completed transaction|starting point-in-time recovery"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 4 lines of output]",
"LOG: database system was interrupted; last known up at 2024-05-27 00:12:38 UTC",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: starting point-in-time recovery to 2024-05-27 00:12:49.190751+00",
"LOG: starting backup recovery with redo LSN 0/19000028, checkpoint LSN 0/19000060, on timeline ID 3",
"LOG: restored log file \"00000004.history\" from archive",
" [filtered 5 lines of output]",
"LOG: database system is ready to accept read-only connections",
"LOG: restored log file \"00000004000000000000001A\" from archive",
"LOG: recovery stopping before commit of transaction 734, time 2024-05-27 00:12:50.481212+00",
"LOG: redo done at 0/19025398 system usage: CPU: user: 0.00 s, system: 0.00 s, elapsed: 0.10 s",
"LOG: last completed transaction was at log time 2024-05-27 00:12:47.91187+00",
"LOG: restored log file \"000000040000000000000019\" from archive",
"FATAL: no pg_hba.conf entry for replication connection from host \"172.17.0.8\", user \"replicator\", no encryption",
" [filtered 5 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stop"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stop command begin 2.52: --exec-id=1447-ad74c292 --log-level-console=info --log-level-stderr=off --no-log-timestamp --stanza=demo",
"P00 INFO: stop command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --repo=1 \\",
" --log-level-console=info stanza-delete"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-delete command begin 2.52: --exec-id=1454-9a0b7d7f --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --repo=1 --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: stanza-delete command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"repo2-azure-account" : {
"value" : "pgbackrest"
},
"repo2-azure-container" : {
"value" : "demo-container"
},
"repo2-azure-key" : {
"value" : "YXpLZXk="
},
"repo2-path" : {
"value" : "/demo-repo"
},
"repo2-retention-full" : {
"value" : "4"
},
"repo2-type" : {
"value" : "azure"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"process-max=4",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=2",
"repo1-retention-full=2",
"repo2-azure-account=pgbackrest",
"repo2-azure-container=demo-container",
"repo2-azure-key=YXpLZXk=",
"repo2-path=/demo-repo",
"repo2-retention-full=4",
"repo2-type=azure",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo \"172.17.0.2 pgbackrest.blob.core.windows.net\" | tee -a /etc/hosts"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --repo=2 repo-create"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-create command begin 2.52: --exec-id=1519-ab9fe3da --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo2-type=azure --stanza=demo",
"P00 INFO: stanza-create for stanza 'demo' on repo1",
"P00 INFO: stanza-create for stanza 'demo' on repo2",
"P00 INFO: stanza-create command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --repo=2 \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"no prior backup exists|full backup size"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: backup command begin 2.52: --exec-id=1527-86384be4 --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --process-max=4 --repo=2 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo2-type=azure --stanza=demo --start-fast",
"P00 WARN: no prior backup exists, incr backup has been changed to full",
"P00 INFO: execute non-exclusive backup start: backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000005000000000000001B, lsn = 0/1B000028",
" [filtered 3 lines of output]",
"P00 INFO: check archive for segment(s) 00000005000000000000001B:00000005000000000000001B",
"P00 INFO: new backup label = 20240527-001304F",
"P00 INFO: full backup size = 29.0MB, file total = 1263",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=1527-86384be4 --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo=2 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo2-type=azure --stanza=demo"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"repo3-path" : {
"value" : "/demo-repo"
},
"repo3-retention-full" : {
"value" : "4"
},
"repo3-s3-bucket" : {
"value" : "demo-bucket"
},
"repo3-s3-endpoint" : {
"value" : "s3.us-east-1.amazonaws.com"
},
"repo3-s3-key" : {
"value" : "accessKey1"
},
"repo3-s3-key-secret" : {
"value" : "verySecretKey1"
},
"repo3-s3-region" : {
"value" : "us-east-1"
},
"repo3-type" : {
"value" : "s3"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"process-max=4",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=2",
"repo1-retention-full=2",
"repo2-azure-account=pgbackrest",
"repo2-azure-container=demo-container",
"repo2-azure-key=YXpLZXk=",
"repo2-path=/demo-repo",
"repo2-retention-full=4",
"repo2-type=azure",
"repo3-path=/demo-repo",
"repo3-retention-full=4",
"repo3-s3-bucket=demo-bucket",
"repo3-s3-endpoint=s3.us-east-1.amazonaws.com",
"repo3-s3-key=accessKey1",
"repo3-s3-key-secret=verySecretKey1",
"repo3-s3-region=us-east-1",
"repo3-type=s3",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo \"172.17.0.3 demo-bucket.s3.us-east-1.amazonaws.com s3.us-east-1.amazonaws.com\" | tee -a /etc/hosts"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --repo=3 repo-create"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 4 lines of output]",
"P00 INFO: stanza 'demo' already exists on repo2 and is valid",
"P00 INFO: stanza-create for stanza 'demo' on repo3",
"P00 INFO: stanza-create command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --repo=3 \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"no prior backup exists|full backup size"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: backup command begin 2.52: --exec-id=1585-94094bc8 --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --process-max=4 --repo=3 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo2-type=azure --repo3-type=s3 --stanza=demo --start-fast",
"P00 WARN: no prior backup exists, incr backup has been changed to full",
"P00 INFO: execute non-exclusive backup start: backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000005000000000000001C, lsn = 0/1C000028",
" [filtered 3 lines of output]",
"P00 INFO: check archive for segment(s) 00000005000000000000001C:00000005000000000000001D",
"P00 INFO: new backup label = 20240527-001314F",
"P00 INFO: full backup size = 29.0MB, file total = 1263",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=1585-94094bc8 --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo=3 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo2-type=azure --repo3-type=s3 --stanza=demo"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"repo4-bundle" : {
"value" : "y"
},
"repo4-path" : {
"value" : "/demo-repo"
},
"repo4-sftp-host" : {
"value" : "sftp-server"
},
"repo4-sftp-host-key-hash-type" : {
"value" : "sha1"
},
"repo4-sftp-host-user" : {
"value" : "pgbackrest"
},
"repo4-sftp-private-key-file" : {
"value" : "/var/lib/postgresql/.ssh/id_rsa_sftp"
},
"repo4-sftp-public-key-file" : {
"value" : "/var/lib/postgresql/.ssh/id_rsa_sftp.pub"
},
"repo4-type" : {
"value" : "sftp"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"process-max=4",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=2",
"repo1-retention-full=2",
"repo2-azure-account=pgbackrest",
"repo2-azure-container=demo-container",
"repo2-azure-key=YXpLZXk=",
"repo2-path=/demo-repo",
"repo2-retention-full=4",
"repo2-type=azure",
"repo3-path=/demo-repo",
"repo3-retention-full=4",
"repo3-s3-bucket=demo-bucket",
"repo3-s3-endpoint=s3.us-east-1.amazonaws.com",
"repo3-s3-key=accessKey1",
"repo3-s3-key-secret=verySecretKey1",
"repo3-s3-region=us-east-1",
"repo3-type=s3",
"repo4-bundle=y",
"repo4-path=/demo-repo",
"repo4-sftp-host=sftp-server",
"repo4-sftp-host-key-hash-type=sha1",
"repo4-sftp-host-user=pgbackrest",
"repo4-sftp-private-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp",
"repo4-sftp-public-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp.pub",
"repo4-type=sftp",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres mkdir -m 750 -p /var/lib/postgresql/.ssh"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres ssh-keygen -f /var/lib/postgresql/.ssh/id_rsa_sftp \\",
" -t rsa -b 4096 -N \"\" -m PEM"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"id -u pgbackrest > /dev/null 2>&1 || adduser --disabled-password --gecos \"\" pgbackrest"
],
"host" : "sftp-server",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mkdir -m 750 -p /demo-repo && chown pgbackrest /demo-repo"
],
"host" : "sftp-server",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest mkdir -m 750 -p /home/pgbackrest/.ssh"
],
"host" : "sftp-server",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"(sudo ssh root@pg-primary cat /var/lib/postgresql/.ssh/id_rsa_sftp.pub) | \\",
" sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys"
],
"host" : "sftp-server",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"ssh-keyscan -H sftp-server >> /var/lib/postgresql/.ssh/known_hosts 2>/dev/null"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "postgres"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 6 lines of output]",
"P00 INFO: stanza 'demo' already exists on repo3 and is valid",
"P00 INFO: stanza-create for stanza 'demo' on repo4",
"P00 INFO: stanza-create command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --repo=4 \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"no prior backup exists|full backup size"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: backup command begin 2.52: --exec-id=1660-9aa2304e --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --process-max=4 --repo=4 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo4-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo4-sftp-host=sftp-server --repo4-sftp-host-key-hash-type=sha1 --repo4-sftp-host-user=pgbackrest --repo4-sftp-private-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp --repo4-sftp-public-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp.pub --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --stanza=demo --start-fast",
"P00 WARN: option 'repo4-retention-full' is not set for 'repo4-retention-full-type=count', the repository may run out of space",
" HINT: to retain full backups indefinitely (without warning), set option 'repo4-retention-full' to the maximum.",
"P00 WARN: no prior backup exists, incr backup has been changed to full",
"P00 INFO: execute non-exclusive backup start: backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000005000000000000001E, lsn = 0/1E000028",
" [filtered 3 lines of output]",
"P00 INFO: check archive for segment(s) 00000005000000000000001E:00000005000000000000001F",
"P00 INFO: new backup label = 20240527-001323F",
"P00 INFO: full backup size = 29.0MB, file total = 1263",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=1660-9aa2304e --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo=4 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo4-sftp-host=sftp-server --repo4-sftp-host-key-hash-type=sha1 --repo4-sftp-host-user=pgbackrest --repo4-sftp-private-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp --repo4-sftp-public-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp.pub --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --stanza=demo",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"repo5-gcs-bucket" : {
"value" : "demo-bucket"
},
"repo5-gcs-key" : {
"value" : "/etc/pgbackrest/gcs-key.json"
},
"repo5-path" : {
"value" : "/demo-repo"
},
"repo5-type" : {
"value" : "gcs"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"process-max=4",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=2",
"repo1-retention-full=2",
"repo2-azure-account=pgbackrest",
"repo2-azure-container=demo-container",
"repo2-azure-key=YXpLZXk=",
"repo2-path=/demo-repo",
"repo2-retention-full=4",
"repo2-type=azure",
"repo3-path=/demo-repo",
"repo3-retention-full=4",
"repo3-s3-bucket=demo-bucket",
"repo3-s3-endpoint=s3.us-east-1.amazonaws.com",
"repo3-s3-key=accessKey1",
"repo3-s3-key-secret=verySecretKey1",
"repo3-s3-region=us-east-1",
"repo3-type=s3",
"repo4-bundle=y",
"repo4-path=/demo-repo",
"repo4-sftp-host=sftp-server",
"repo4-sftp-host-key-hash-type=sha1",
"repo4-sftp-host-user=pgbackrest",
"repo4-sftp-private-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp",
"repo4-sftp-public-key-file=/var/lib/postgresql/.ssh/id_rsa_sftp.pub",
"repo4-type=sftp",
"repo5-gcs-bucket=demo-bucket",
"repo5-gcs-key=/etc/pgbackrest/gcs-key.json",
"repo5-path=/demo-repo",
"repo5-type=gcs",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"id" : "repo1",
"image" : "pgbackrest/doc:debian",
"name" : "repository",
"option" : "-m 512m -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "debian",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.7"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo adduser --disabled-password --gecos \"\" pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo apt-get install postgresql-client libxml2 libssh2-1"
],
"cmd-extra" : "-y 2>&1",
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin"
],
"cmd-extra" : "2>&1",
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 770 /var/log/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown pgbackrest:pgbackrest /var/log/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest/conf.d"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo touch /etc/pgbackrest/pgbackrest.conf"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 640 /etc/pgbackrest/pgbackrest.conf"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown pgbackrest:pgbackrest /etc/pgbackrest/pgbackrest.conf"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /var/lib/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown pgbackrest:pgbackrest /var/lib/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest mkdir -m 750 /home/pgbackrest/.ssh"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest ssh-keygen -f /home/pgbackrest/.ssh/id_rsa \\",
" -t rsa -b 4096 -N \"\""
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres mkdir -m 750 -p /var/lib/postgresql/.ssh"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres ssh-keygen -f /var/lib/postgresql/.ssh/id_rsa \\",
" -t rsa -b 4096 -N \"\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \\",
" echo -n 'command=\"/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }\" ' && \\",
" sudo ssh root@pg-primary cat /var/lib/postgresql/.ssh/id_rsa.pub) | \\",
" sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \\",
" echo -n 'command=\"/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }\" ' && \\",
" sudo ssh root@repository cat /home/pgbackrest/.ssh/id_rsa.pub) | \\",
" sudo -u postgres tee -a /var/lib/postgresql/.ssh/authorized_keys"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest ssh postgres@pg-primary"
],
"cmd-extra" : "-o StrictHostKeyChecking=no",
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres ssh pgbackrest@repository"
],
"cmd-extra" : "-o StrictHostKeyChecking=no",
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"global" : {
"repo1-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[global]",
"repo1-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"demo" : {
"pg1-host" : {
"value" : "pg-primary"
},
"pg1-path" : {
"value" : "/var/lib/postgresql/15/demo"
}
},
"global" : {
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
},
"repo1-retention-full" : {
"value" : "2"
},
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/postgresql/15/demo"
}
},
"global" : {
"log-level-file" : {
"value" : "detail"
},
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
},
"repo1-host" : {
"value" : "repository"
}
}
},
"reset" : true
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"log-level-file=detail",
"repo1-host=repository"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo stanza-create"
],
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo check"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo check"
],
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo backup"
],
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: no prior backup exists, incr backup has been changed to full"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"global" : {
"process-max" : {
"value" : "3"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"process-max=3",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"timestamp start/stop"
]
},
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
" cipher: none",
"",
" db (current)",
" wal archive min/max (15): 000000060000000000000025/000000060000000000000027",
"",
" full backup: 20240527-001354F",
" timestamp start/stop: 2024-05-27 00:13:54+00 / 2024-05-27 00:13:57+00",
" wal start/stop: 000000060000000000000025 / 000000060000000000000025",
" database size: 29.0MB, database backup size: 29.0MB",
" repo1: backup set size: 3.9MB, backup size: 3.9MB",
"",
" full backup: 20240527-001359F",
" timestamp start/stop: 2024-05-27 00:13:59+00 / 2024-05-27 00:14:04+00",
" wal start/stop: 000000060000000000000026 / 000000060000000000000027",
" database size: 29.0MB, database backup size: 29.0MB",
" repo1: backup set size: 3.9MB, backup size: 3.9MB"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo backup"
],
"err-expect" : "56",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"\\: stop file exists for all stanzas"
]
},
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: unable to check pg1: [StopError] raised from remote-0 ssh protocol on 'pg-primary': stop file exists for all stanzas",
"P00 ERROR: [056]: unable to find primary cluster - cannot proceed",
" HINT: are all available clusters in recovery?"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: stop file already exists for all stanzas"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo backup"
],
"err-expect" : "56",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"\\: stop file exists for stanza demo"
]
},
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: unable to check pg1: [StopError] raised from remote-0 ssh protocol on 'pg-primary': stop file exists for stanza demo",
"P00 ERROR: [056]: unable to find primary cluster - cannot proceed",
" HINT: are all available clusters in recovery?"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"id" : "pg2",
"image" : "pgbackrest/doc:debian",
"name" : "pg-standby",
"option" : "-m 512m -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "debian",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.8"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo apt-get install postgresql-client libxml2 libssh2-1"
],
"cmd-extra" : "-y 2>&1",
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin"
],
"cmd-extra" : "2>&1",
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 770 /var/log/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/log/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest/conf.d"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo touch /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 640 /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres mkdir -m 750 -p /var/lib/postgresql/.ssh"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres ssh-keygen -f /var/lib/postgresql/.ssh/id_rsa \\",
" -t rsa -b 4096 -N \"\""
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \\",
" echo -n 'command=\"/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }\" ' && \\",
" sudo ssh root@pg-standby cat /var/lib/postgresql/.ssh/id_rsa.pub) | \\",
" sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \\",
" echo -n 'command=\"/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }\" ' && \\",
" sudo ssh root@repository cat /home/pgbackrest/.ssh/id_rsa.pub) | \\",
" sudo -u postgres tee -a /var/lib/postgresql/.ssh/authorized_keys"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest ssh postgres@pg-standby"
],
"cmd-extra" : "-o StrictHostKeyChecking=no",
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres ssh pgbackrest@repository"
],
"cmd-extra" : "-o StrictHostKeyChecking=no",
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-standby",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/postgresql/15/demo"
}
},
"global" : {
"log-level-file" : {
"value" : "detail"
},
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
},
"repo1-host" : {
"value" : "repository"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"log-level-file=detail",
"repo1-host=repository"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_createcluster 15 demo"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta --type=standby restore"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/lib/postgresql/15/demo/postgresql.auto.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"# Do not edit this file manually!",
"# It will be overwritten by the ALTER SYSTEM command.",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:11:59",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:12:32",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:12:54",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"# Removed by pgBackRest restore on 2024-05-27 00:13:47 # recovery_target_time = '2024-05-27 00:12:49.190751+00'",
"# Removed by pgBackRest restore on 2024-05-27 00:13:47 # recovery_target_action = 'promote'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:13:47",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:14:18",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cat /root/postgresql.common.conf >> /etc/postgresql/15/demo/postgresql.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/postgresql/15/demo/postgresql.conf",
"host" : "pg-standby",
"option" : {
"archive_command" : {
"value" : "'pgbackrest --stanza=demo archive-push %p'"
},
"archive_mode" : {
"value" : "on"
},
"hot_standby" : {
"value" : "on"
},
"max_wal_senders" : {
"value" : "3"
},
"wal_level" : {
"value" : "replica"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
"archive_mode = on",
"hot_standby = on",
"max_wal_senders = 3",
"wal_level = replica"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-15-demo.log"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo start"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-15-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"entering standby mode|database system is ready to accept read only connections"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 3 lines of output]",
"LOG: listening on Unix socket \"/var/run/postgresql/.s.PGSQL.5432\"",
"LOG: database system was interrupted; last known up at 2024-05-27 00:13:59 UTC",
"LOG: entering standby mode",
"LOG: starting backup recovery with redo LSN 0/26000028, checkpoint LSN 0/26000060, on timeline ID 6",
"LOG: restored log file \"00000006.history\" from archive",
" [filtered 6 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" begin; \\",
" create table replicated_table (message text); \\",
" insert into replicated_table values ('Important Data'); \\",
" commit; \\",
" select * from replicated_table\";"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 4 lines of output]",
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select * from replicated_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"replicated_table\" does not exist",
"LINE 1: select * from replicated_table;",
" ^"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select *, current_timestamp from pg_switch_wal()\";"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" pg_switch_wal | current_timestamp ",
"---------------+-------------------------------",
" 0/28019A10 | 2024-05-27 00:14:25.128851+00",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from replicated_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" message | current_timestamp ",
"----------------+-------------------------------",
" Important Data | 2024-05-27 00:14:26.298432+00",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"because this is a standby"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.52: --exec-id=459-f166a274 --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --repo1-host=repository --stanza=demo",
"P00 INFO: check repo1 (standby)",
"P00 INFO: switch wal not performed because this is a standby",
"P00 INFO: check command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" create user replicator password 'jw8s0F4' replication\";"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"CREATE ROLE"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
" \"host replication replicator 172.17.0.8/32 md5\" \\",
" >> /etc/postgresql/15/demo/pg_hba.conf'"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo reload"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-standby",
"option" : {
"demo" : {
"recovery-option" : {
"value" : "primary_conninfo=host=172.17.0.6 port=5432 user=replicator"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator",
"",
"[global]",
"log-level-file=detail",
"repo1-host=repository"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
" \"172.17.0.6:*:replication:replicator:jw8s0F4\" \\",
" >> /var/lib/postgresql/.pgpass'"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres chmod 600 /var/lib/postgresql/.pgpass"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo stop"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta --type=standby restore"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/lib/postgresql/15/demo/postgresql.auto.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"# Do not edit this file manually!",
"# It will be overwritten by the ALTER SYSTEM command.",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:11:59",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:12:32",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:12:54",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"# Removed by pgBackRest restore on 2024-05-27 00:13:47 # recovery_target_time = '2024-05-27 00:12:49.190751+00'",
"# Removed by pgBackRest restore on 2024-05-27 00:13:47 # recovery_target_action = 'promote'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:13:47",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:14:29",
"primary_conninfo = 'host=172.17.0.6 port=5432 user=replicator'",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-15-demo.log"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo start"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-15-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"started streaming WAL from primary"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 13 lines of output]",
"LOG: consistent recovery state reached at 0/27000088",
"LOG: database system is ready to accept read-only connections",
"LOG: started streaming WAL from primary at 0/29000000 on timeline 6"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" begin; \\",
" create table stream_table (message text); \\",
" insert into stream_table values ('Important Data'); \\",
" commit; \\",
" select *, current_timestamp from stream_table\";"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 4 lines of output]",
" message | current_timestamp ",
"----------------+-------------------------------",
" Important Data | 2024-05-27 00:14:35.531194+00",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from stream_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" message | current_timestamp ",
"----------------+-------------------------------",
" Important Data | 2024-05-27 00:14:35.869698+00",
"(1 row)"
]
}
},
{
"key" : {
"id" : "pgalt",
"image" : "pgbackrest/doc:debian",
"name" : "pg-alt",
"option" : "-m 512m -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "debian",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.9"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo apt-get install postgresql-client libxml2 libssh2-1"
],
"cmd-extra" : "-y 2>&1",
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest/src/pgbackrest /usr/bin"
],
"cmd-extra" : "2>&1",
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 770 /var/log/pgbackrest"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/log/pgbackrest"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest/conf.d"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo touch /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 640 /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres mkdir -m 750 -p /var/lib/postgresql/.ssh"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres ssh-keygen -f /var/lib/postgresql/.ssh/id_rsa \\",
" -t rsa -b 4096 -N \"\""
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \\",
" echo -n 'command=\"/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }\" ' && \\",
" sudo ssh root@pg-alt cat /var/lib/postgresql/.ssh/id_rsa.pub) | \\",
" sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"(echo -n 'no-agent-forwarding,no-X11-forwarding,no-port-forwarding,' && \\",
" echo -n 'command=\"/usr/bin/pgbackrest ${SSH_ORIGINAL_COMMAND#* }\" ' && \\",
" sudo ssh root@repository cat /home/pgbackrest/.ssh/id_rsa.pub) | \\",
" sudo -u postgres tee -a /var/lib/postgresql/.ssh/authorized_keys"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest ssh postgres@pg-alt"
],
"cmd-extra" : "-o StrictHostKeyChecking=no",
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres ssh pgbackrest@repository"
],
"cmd-extra" : "-o StrictHostKeyChecking=no",
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-alt",
"option" : {
"demo-alt" : {
"pg1-path" : {
"value" : "/var/lib/postgresql/15/demo"
}
},
"global" : {
"log-level-file" : {
"value" : "detail"
},
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
},
"repo1-host" : {
"value" : "repository"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo-alt]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"log-level-file=detail",
"repo1-host=repository"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"demo-alt" : {
"pg1-host" : {
"value" : "pg-alt"
},
"pg1-path" : {
"value" : "/var/lib/postgresql/15/demo"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[demo-alt]",
"pg1-host=pg-alt",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"process-max=3",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres /usr/lib/postgresql/15/bin/initdb \\",
" -D /var/lib/postgresql/15/demo -k -A peer"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_createcluster 15 demo"
],
"host" : "pg-alt",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"Configuring already existing cluster (configuration: /etc/postgresql/15/demo, data: /var/lib/postgresql/15/demo, owner: 102:103)",
"Ver Cluster Port Status Owner Data directory Log file",
"15 demo 5432 down postgres /var/lib/postgresql/15/demo /var/log/postgresql/postgresql-15-demo.log"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cat /root/postgresql.common.conf >> /etc/postgresql/15/demo/postgresql.conf"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/postgresql/15/demo/postgresql.conf",
"host" : "pg-alt",
"option" : {
"archive_command" : {
"value" : "'pgbackrest --stanza=demo-alt archive-push %p'"
},
"archive_mode" : {
"value" : "on"
},
"max_wal_senders" : {
"value" : "3"
},
"wal_level" : {
"value" : "replica"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo-alt archive-push %p'",
"archive_mode = on",
"max_wal_senders = 3",
"wal_level = replica"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo restart"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo-alt --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-alt",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-create command begin 2.52: --exec-id=359-b68a4769 --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --repo1-host=repository --stanza=demo-alt",
"P00 INFO: stanza-create for stanza 'demo-alt' on repo1",
"P00 INFO: stanza-create command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"check stanza | successfully archived to "
]
},
"host" : "pg-alt",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.52: --exec-id=368-504c990c --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --repo1-host=repository",
"P00 INFO: check stanza 'demo-alt'",
"P00 INFO: check repo1 configuration (primary)",
"P00 INFO: check repo1 archive for WAL (primary)",
"P00 INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo-alt/15-1/0000000100000000/000000010000000000000001-6a8716babe7191537046f22fdede9caa1d3903b4.gz' on repo1",
"P00 INFO: check command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"check stanza | successfully archived to "
]
},
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.52: --exec-id=1198-203ecc92 --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-path=/var/lib/pgbackrest",
"P00 INFO: check stanza 'demo'",
"P00 INFO: check repo1 configuration (primary)",
"P00 INFO: check repo1 archive for WAL (primary)",
"P00 INFO: WAL segment 000000060000000000000029 successfully archived to '/var/lib/pgbackrest/archive/demo/15-1/0000000600000000/000000060000000000000029-9e2305e613cf1d2dcafa273d4609d853637cce21.gz' on repo1",
"P00 INFO: check stanza 'demo-alt'",
"P00 INFO: check repo1 configuration (primary)",
"P00 INFO: check repo1 archive for WAL (primary)",
"P00 INFO: WAL segment 000000010000000000000002 successfully archived to '/var/lib/pgbackrest/archive/demo-alt/15-1/0000000100000000/000000010000000000000002-4790860102dcccfb9484da677f7b3ec0018ef270.gz' on repo1",
"P00 INFO: check command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 750 /var/spool/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/spool/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 750 /var/spool/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/spool/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"archive-async" : {
"value" : "y"
},
"spool-path" : {
"value" : "/var/spool/pgbackrest"
}
},
"global:archive-get" : {
"process-max" : {
"value" : "2"
}
},
"global:archive-push" : {
"process-max" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"archive-async=y",
"log-level-file=detail",
"repo1-host=repository",
"spool-path=/var/spool/pgbackrest",
"",
"[global:archive-get]",
"process-max=2",
"",
"[global:archive-push]",
"process-max=2"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-standby",
"option" : {
"global" : {
"archive-async" : {
"value" : "y"
},
"spool-path" : {
"value" : "/var/spool/pgbackrest"
}
},
"global:archive-get" : {
"process-max" : {
"value" : "2"
}
},
"global:archive-push" : {
"process-max" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/15/demo",
"recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator",
"",
"[global]",
"archive-async=y",
"log-level-file=detail",
"repo1-host=repository",
"spool-path=/var/spool/pgbackrest",
"",
"[global:archive-get]",
"process-max=2",
"",
"[global:archive-push]",
"process-max=2"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"alter user replicator password 'bogus'\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"ALTER ROLE"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo restart"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres rm -f /var/log/pgbackrest/demo-archive-push-async.log"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select pg_create_restore_point('test async push'); select pg_switch_wal(); \\",
" select pg_create_restore_point('test async push'); select pg_switch_wal(); \\",
" select pg_create_restore_point('test async push'); select pg_switch_wal(); \\",
" select pg_create_restore_point('test async push'); select pg_switch_wal(); \\",
" select pg_create_restore_point('test async push'); select pg_switch_wal();\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"WAL segment"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.52: --exec-id=2232-1051b129 --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --repo1-host=repository --stanza=demo",
"P00 INFO: check repo1 configuration (primary)",
"P00 INFO: check repo1 archive for WAL (primary)",
"P00 INFO: WAL segment 00000006000000000000002F successfully archived to '/var/lib/pgbackrest/archive/demo/15-1/0000000600000000/00000006000000000000002F-4467eb538234746215502dace8cbd1877df60e3e.gz' on repo1",
"P00 INFO: check command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/log/pgbackrest/demo-archive-push-async.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
" WAL file\\(s\\) to archive|pushed WAL file \\'0000000"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"-------------------PROCESS START-------------------",
"P00 INFO: archive-push:async command begin 2.52: [/var/lib/postgresql/15/demo/pg_wal] --archive-async --exec-id=2218-2a6fe845 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 2 WAL file(s) to archive: 00000006000000000000002A...00000006000000000000002B",
"P02 DETAIL: pushed WAL file '00000006000000000000002B' to the archive",
"P01 DETAIL: pushed WAL file '00000006000000000000002A' to the archive",
"P00 INFO: archive-push:async command end: completed successfully",
"",
"-------------------PROCESS START-------------------",
"P00 INFO: archive-push:async command begin 2.52: [/var/lib/postgresql/15/demo/pg_wal] --archive-async --exec-id=2238-2fc0bba2 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 4 WAL file(s) to archive: 00000006000000000000002C...00000006000000000000002F",
"P02 DETAIL: pushed WAL file '00000006000000000000002D' to the archive",
"P01 DETAIL: pushed WAL file '00000006000000000000002C' to the archive",
"P02 DETAIL: pushed WAL file '00000006000000000000002E' to the archive"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 5"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/log/pgbackrest/demo-archive-get-async.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"found [0-F]{24} in the .* archive"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"-------------------PROCESS START-------------------",
"P00 INFO: archive-get:async command begin 2.52: [000000060000000000000026, 000000060000000000000027, 000000060000000000000028, 000000060000000000000029, 00000006000000000000002A, 00000006000000000000002B, 00000006000000000000002C, 00000006000000000000002D] --archive-async --exec-id=661-1d27c864 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: get 8 WAL file(s) from archive: 000000060000000000000026...00000006000000000000002D",
"P02 DETAIL: found 000000060000000000000027 in the repo1: 15-1 archive",
"P01 DETAIL: found 000000060000000000000026 in the repo1: 15-1 archive",
"P02 DETAIL: found 000000060000000000000028 in the repo1: 15-1 archive",
"P01 DETAIL: found 000000060000000000000029 in the repo1: 15-1 archive",
"P00 DETAIL: unable to find 00000006000000000000002A in the archive",
"P00 INFO: archive-get:async command end: completed successfully",
" [filtered 14 lines of output]",
"P00 INFO: archive-get:async command begin 2.52: [00000006000000000000002A, 00000006000000000000002B, 00000006000000000000002C, 00000006000000000000002D, 00000006000000000000002E, 00000006000000000000002F, 000000060000000000000030, 000000060000000000000031] --archive-async --exec-id=711-c4d8825b --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/15/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: get 8 WAL file(s) from archive: 00000006000000000000002A...000000060000000000000031",
"P01 DETAIL: found 00000006000000000000002A in the repo1: 15-1 archive",
"P02 DETAIL: found 00000006000000000000002B in the repo1: 15-1 archive",
"P01 DETAIL: found 00000006000000000000002C in the repo1: 15-1 archive",
"P02 DETAIL: found 00000006000000000000002D in the repo1: 15-1 archive",
"P01 DETAIL: found 00000006000000000000002E in the repo1: 15-1 archive",
"P02 DETAIL: found 00000006000000000000002F in the repo1: 15-1 archive",
"P00 DETAIL: unable to find 000000060000000000000030 in the archive",
"P00 INFO: archive-get:async command end: completed successfully",
" [filtered 11 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"alter user replicator password 'jw8s0F4'\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"ALTER ROLE"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"demo" : {
"pg2-host" : {
"value" : "pg-standby"
},
"pg2-path" : {
"value" : "/var/lib/postgresql/15/demo"
}
},
"global" : {
"backup-standby" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-path=/var/lib/postgresql/15/demo",
"pg2-host=pg-standby",
"pg2-path=/var/lib/postgresql/15/demo",
"",
"[demo-alt]",
"pg1-host=pg-alt",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"backup-standby=y",
"process-max=3",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"backup file pg-primary|replay on the standby"
]
},
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 2 lines of output]",
"P00 INFO: execute non-exclusive backup start: backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000060000000000000031, lsn = 0/31000028",
"P00 INFO: wait for replay on the standby to reach 0/31000028",
"P00 INFO: replay on the standby reached 0/31000028",
"P00 INFO: check archive for prior segment 000000060000000000000030",
"P01 DETAIL: backup file pg-primary:/var/lib/postgresql/15/demo/global/pg_control (8KB, 0.53%) checksum 11d7c5ef859f173b0f65341dd0ef4740b5d4129c",
"P01 DETAIL: match file from prior backup pg-primary:/var/lib/postgresql/15/demo/pg_logical/replorigin_checkpoint (8B, 0.53%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532",
"P02 DETAIL: backup file pg-standby:/var/lib/postgresql/15/demo/base/5/1249 (456KB, 31.18%) checksum da07d6e522b4e15858f0049de1de09b16d6ab144",
" [filtered 1276 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 15 demo stop"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres /usr/lib/postgresql/16/bin/initdb \\",
" -D /var/lib/postgresql/16/demo -k -A peer"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_createcluster 16 demo"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sh -c 'cd /var/lib/postgresql && \\",
" /usr/lib/postgresql/16/bin/pg_upgrade \\",
" --old-bindir=/usr/lib/postgresql/15/bin \\",
" --new-bindir=/usr/lib/postgresql/16/bin \\",
" --old-datadir=/var/lib/postgresql/15/demo \\",
" --new-datadir=/var/lib/postgresql/16/demo \\",
" --old-options=\" -c config_file=/etc/postgresql/15/demo/postgresql.conf\" \\",
" --new-options=\" -c config_file=/etc/postgresql/16/demo/postgresql.conf\"'"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Upgrade Complete"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 42 lines of output]",
"Checking for extension updates ok",
"",
"Upgrade Complete",
"----------------",
"Optimizer statistics are not transferred by pg_upgrade.",
" [filtered 3 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cat /root/postgresql.common.conf >> /etc/postgresql/16/demo/postgresql.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/postgresql/16/demo/postgresql.conf",
"host" : "pg-primary",
"option" : {
"archive_command" : {
"value" : "'pgbackrest --stanza=demo archive-push %p'"
},
"archive_mode" : {
"value" : "on"
},
"max_wal_senders" : {
"value" : "3"
},
"wal_level" : {
"value" : "replica"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
"archive_mode = on",
"max_wal_senders = 3",
"wal_level = replica"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/postgresql/16/demo"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/16/demo",
"",
"[global]",
"archive-async=y",
"log-level-file=detail",
"repo1-host=repository",
"spool-path=/var/spool/pgbackrest",
"",
"[global:archive-get]",
"process-max=2",
"",
"[global:archive-push]",
"process-max=2"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-standby",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/postgresql/16/demo"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/16/demo",
"recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator",
"",
"[global]",
"archive-async=y",
"log-level-file=detail",
"repo1-host=repository",
"spool-path=/var/spool/pgbackrest",
"",
"[global:archive-get]",
"process-max=2",
"",
"[global:archive-push]",
"process-max=2"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/postgresql/16/demo"
},
"pg2-path" : {
"value" : "/var/lib/postgresql/16/demo"
}
},
"global" : {
"backup-standby" : {
"value" : "n"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-path=/var/lib/postgresql/16/demo",
"pg2-host=pg-standby",
"pg2-path=/var/lib/postgresql/16/demo",
"",
"[demo-alt]",
"pg1-host=pg-alt",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"backup-standby=n",
"process-max=3",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cp /etc/postgresql/15/demo/pg_hba.conf \\",
" /etc/postgresql/16/demo/pg_hba.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --no-online \\",
" --log-level-console=info stanza-upgrade"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-upgrade command begin 2.52: --exec-id=2640-2293b514 --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --no-online --pg1-path=/var/lib/postgresql/16/demo --repo1-host=repository --stanza=demo",
"P00 INFO: stanza-upgrade for stanza 'demo' on repo1",
"P00 INFO: stanza-upgrade command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 16 demo start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pg_lsclusters"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo check"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_dropcluster 15 demo"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_dropcluster 15 demo"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_createcluster 16 demo"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo check"
],
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: unable to check pg2: [DbConnectError] raised from remote-0 ssh protocol on 'pg-standby': unable to connect to 'dbname='postgres' port=5432': connection to server on socket \"/var/run/postgresql/.s.PGSQL.5432\" failed: No such file or directory",
" \tIs the server running locally and accepting connections on that socket?"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta --type=standby restore"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/postgresql/16/demo/postgresql.conf",
"host" : "pg-standby",
"option" : {
"hot_standby" : {
"value" : "on"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"hot_standby = on"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 16 demo start"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo check"
],
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"global" : {
"backup-standby" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-path=/var/lib/postgresql/16/demo",
"pg2-host=pg-standby",
"pg2-path=/var/lib/postgresql/16/demo",
"",
"[demo-alt]",
"pg1-host=pg-alt",
"pg1-path=/var/lib/postgresql/15/demo",
"",
"[global]",
"backup-standby=y",
"process-max=3",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y"
]
}
}
]
}
},
"{\"os-type\":\"rhel\"}" : {
"all" : {
"user-guide" : [
{
"key" : {
"id" : "azure",
"image" : "mcr.microsoft.com/azure-storage/azurite",
"name" : "azure-server",
"option" : "-v {[host-repo-path]}/doc/resource/fake-cert/azure-server.crt:/root/public.crt:ro -v {[host-repo-path]}/doc/resource/fake-cert/azure-server.key:/root/private.key:ro -e AZURITE_ACCOUNTS='pgbackrest:YXpLZXk='",
"os" : "rhel",
"param" : "azurite-blob --blobPort 443 --blobHost 0.0.0.0 --cert=/root/public.crt --key=/root/private.key",
"update-hosts" : false
},
"type" : "host",
"value" : {
"ip" : "172.17.0.2"
}
},
{
"key" : {
"id" : "s3",
"image" : "minio/minio:RELEASE.2023-09-30T07-02-29Z",
"name" : "s3-server",
"option" : "-v {[host-repo-path]}/doc/resource/fake-cert/s3-server.crt:/root/.minio/certs/public.crt:ro -v {[host-repo-path]}/doc/resource/fake-cert/s3-server.key:/root/.minio/certs/private.key:ro -e MINIO_REGION=us-east-1 -e MINIO_DOMAIN=s3.us-east-1.amazonaws.com -e MINIO_BROWSER=off -e MINIO_ACCESS_KEY=accessKey1 -e MINIO_SECRET_KEY=verySecretKey1",
"os" : "rhel",
"param" : "server /data --address :443",
"update-hosts" : false
},
"type" : "host",
"value" : {
"ip" : "172.17.0.3"
}
},
{
"key" : {
"id" : "sftp",
"image" : "pgbackrest/doc:rhel",
"name" : "sftp-server",
"option" : "-m 512m -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "rhel",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.4"
}
},
{
"key" : {
"id" : "build",
"image" : "pgbackrest/doc:rhel",
"name" : "build",
"option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "rhel",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.5"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /build/pgbackrest-release-2.52"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cp -r /pgbackrest/* /build/pgbackrest-release-2.52"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown -R vagrant /build"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo yum install make gcc postgresql12-devel openssl-devel \\",
" libxml2-devel lz4-devel libzstd-devel bzip2-devel libyaml-devel libssh2-devel"
],
"cmd-extra" : "-y 2>&1",
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cd /build/pgbackrest-release-2.52/src && ./configure && make"
],
"cmd-extra" : "-j 4",
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"id" : "pg1",
"image" : "pgbackrest/doc:rhel",
"name" : "pg-primary",
"option" : "-m 512m -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "rhel",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.6"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo yum install postgresql-libs libssh2"
],
"cmd-extra" : "-y 2>&1",
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest-release-2.52/src/pgbackrest /usr/bin"
],
"cmd-extra" : "2>&1",
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 770 /var/log/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/log/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest/conf.d"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo touch /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 640 /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"pgBackRest 2.52 - General help",
"",
"Usage:",
" pgbackrest [options] [command]",
"",
"Commands:",
" annotate Add or modify backup annotation.",
" archive-get Get a WAL segment from the archive.",
" archive-push Push a WAL segment to the archive.",
" backup Backup a database cluster.",
" check Check the configuration.",
" expire Expire backups that exceed retention.",
" help Get help.",
" info Retrieve information about backups.",
" repo-get Get a file from a repository.",
" repo-ls List files in a repository.",
" restore Restore a database cluster.",
" server pgBackRest server.",
" server-ping Ping pgBackRest server.",
" stanza-create Create the required stanza data.",
" stanza-delete Delete a stanza.",
" stanza-upgrade Upgrade a stanza.",
" start Allow pgBackRest processes to run.",
" stop Stop pgBackRest processes from running.",
" verify Verify contents of the repository.",
" version Get version.",
"",
"Use 'pgbackrest help [command]' for more information."
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres /usr/pgsql-12/bin/initdb \\",
" -D /var/lib/pgsql/12/data -k -A peer"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cat /root/postgresql.common.conf >> /var/lib/pgsql/12/data/postgresql.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"file" : "/var/lib/pgsql/12/data/postgresql.conf",
"host" : "pg-primary",
"option" : {
"log_filename" : {
"value" : "'postgresql.log'"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"log_filename = 'postgresql.log'"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/pgsql/12/data"
}
},
"global" : {
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres bash -c ' \\",
" export PGBACKREST_LOG_PATH=/path/set/by/env && \\",
" pgbackrest --log-level-console=error help backup log-path'"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"current\\: \\/path\\/set\\/by\\/env"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"pgBackRest 2.52 - 'backup' command - 'log-path' option help",
"",
"Path where log files are stored.",
"",
"The log path provides a location for pgBackRest to store log files. Note that",
"if log-level-file=off then no log path is required.",
"",
"current: /path/set/by/env",
"default: /var/log/pgbackrest"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /var/lib/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/lib/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/12/data/postgresql.conf",
"host" : "pg-primary",
"option" : {
"archive_command" : {
"value" : "'pgbackrest --stanza=demo archive-push %p'"
},
"archive_mode" : {
"value" : "on"
},
"max_wal_senders" : {
"value" : "3"
},
"wal_level" : {
"value" : "replica"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
"archive_mode = on",
"log_filename = 'postgresql.log'",
"max_wal_senders = 3",
"wal_level = replica"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl restart postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" create or replace function create_test_table(prefix int, scale int, data bool) returns void as \\$\\$ \\",
" declare \\",
" index int; \\",
" begin \\",
" for index in 1 .. scale loop \\",
" execute 'create table test_' || prefix || '_' || index || ' (id int)'; \\",
" \\",
" if data then \\",
" execute 'insert into test_' || prefix || '_' || index || ' values (' || (prefix * index) || ')'; \\",
" end if; \\",
" end loop; \\",
" end \\$\\$ LANGUAGE plpgsql;\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global:archive-push" : {
"compress-level" : {
"value" : "3"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-path=/var/lib/pgbackrest",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-retention-full" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-cipher-pass" : {
"value" : "zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO"
},
"repo1-cipher-type" : {
"value" : "aes-256-cbc"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-create command begin 2.52: --exec-id=1124-8550570a --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: stanza-create for stanza 'demo' on repo1",
"P00 INFO: stanza-create command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
" successfully archived to "
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.52: --exec-id=1151-49fef788 --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: check repo1 configuration (primary)",
"P00 INFO: check repo1 archive for WAL (primary)",
"P00 INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo/12-1/0000000100000000/000000010000000000000001-572cad774288f7b2182ec728ea7c5c6e57455de3.gz' on repo1",
"P00 INFO: check command end: completed successfully"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"no prior backup exists|full backup size"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: backup command begin 2.52: --exec-id=1221-435b67be --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast",
"P00 WARN: no prior backup exists, incr backup has been changed to full",
"P00 INFO: execute non-exclusive backup start: backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028",
" [filtered 3 lines of output]",
"P00 INFO: check archive for segment(s) 000000010000000000000002:000000010000000000000003",
"P00 INFO: new backup label = 20240527-000426F",
"P00 INFO: full backup size = 23.5MB, file total = 981",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=1221-435b67be --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-000426F"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"diff backup size"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 7 lines of output]",
"P00 INFO: check archive for segment(s) 000000010000000000000004:000000010000000000000005",
"P00 INFO: new backup label = 20240527-000426F_20240527-000430D",
"P00 INFO: diff backup size = 8.8KB, file total = 981",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=1280-3bc07e4c --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"(full|incr|diff) backup"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
" cipher: aes-256-cbc",
"",
" db (current)",
" wal archive min/max (12): 000000010000000000000001/000000010000000000000005",
"",
" full backup: 20240527-000426F",
" timestamp start/stop: 2024-05-27 00:04:26+00 / 2024-05-27 00:04:29+00",
" wal start/stop: 000000010000000000000002 / 000000010000000000000003",
" database size: 23.5MB, database backup size: 23.5MB",
" repo1: backup set size: 2.8MB, backup size: 2.8MB",
"",
" diff backup: 20240527-000426F_20240527-000430D",
" timestamp start/stop: 2024-05-27 00:04:30+00 / 2024-05-27 00:04:32+00",
" wal start/stop: 000000010000000000000004 / 000000010000000000000005",
" database size: 23.5MB, database backup size: 8.8KB",
" repo1: backup set size: 2.8MB, backup size: 704B",
" backup reference list: 20240527-000426F"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres rm /var/lib/pgsql/12/data/global/pg_control"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-12.service"
],
"err-expect" : "1",
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl status postgresql-12.service"
],
"err-expect" : "3",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Failed to start PostgreSQL"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 12 lines of output]",
"May 27 00:04:33 pg-primary systemd[1]: postgresql-12.service: Main process exited, code=exited, status=2/INVALIDARGUMENT",
"May 27 00:04:33 pg-primary systemd[1]: postgresql-12.service: Failed with result 'exit-code'.",
"May 27 00:04:33 pg-primary systemd[1]: Failed to start PostgreSQL 12 database server."
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres find /var/lib/pgsql/12/data -mindepth 1 -delete"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo restore"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres mkdir -p /var/lib/pgsql/pgbackrest/doc/example"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cp -r /pgbackrest/doc/example/* \\",
" /var/lib/pgsql/pgbackrest/doc/example"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat \\",
" /var/lib/pgsql/pgbackrest/doc/example/pgsql-pgbackrest-info.sql"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"-- An example of monitoring pgBackRest from within PostgreSQL",
"--",
"-- Use copy to export data from the pgBackRest info command into the jsonb",
"-- type so it can be queried directly by PostgreSQL.",
"",
"-- Create monitor schema",
"create schema monitor;",
"",
"-- Get pgBackRest info in JSON format",
"create function monitor.pgbackrest_info()",
" returns jsonb AS $$",
"declare",
" data jsonb;",
"begin",
" -- Create a temp table to hold the JSON data",
" create temp table temp_pgbackrest_data (data text);",
"",
" -- Copy data into the table directly from the pgBackRest info command",
" copy temp_pgbackrest_data (data)",
" from program",
" 'pgbackrest --output=json info' (format text);",
"",
" select replace(temp_pgbackrest_data.data, E'\\n', '\\n')::jsonb",
" into data",
" from temp_pgbackrest_data;",
"",
" drop table temp_pgbackrest_data;",
"",
" return data;",
"end $$ language plpgsql;"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -f \\",
" /var/lib/pgsql/pgbackrest/doc/example/pgsql-pgbackrest-info.sql"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat \\",
" /var/lib/pgsql/pgbackrest/doc/example/pgsql-pgbackrest-query.sql"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"-- Get last successful backup for each stanza",
"--",
"-- Requires the monitor.pgbackrest_info function.",
"with stanza as",
"(",
" select data->'name' as name,",
" data->'backup'->(",
" jsonb_array_length(data->'backup') - 1) as last_backup,",
" data->'archive'->(",
" jsonb_array_length(data->'archive') - 1) as current_archive",
" from jsonb_array_elements(monitor.pgbackrest_info()) as data",
")",
"select name,",
" to_timestamp(",
" (last_backup->'timestamp'->>'stop')::numeric) as last_successful_backup,",
" current_archive->>'max' as last_archived_wal",
" from stanza;"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -f \\",
" /var/lib/pgsql/pgbackrest/doc/example/pgsql-pgbackrest-query.sql"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" name | last_successful_backup | last_archived_wal ",
"--------+------------------------+--------------------------",
" \"demo\" | 2024-05-27 00:04:32+00 | 000000010000000000000005",
"(1 row)"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-bundle" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres find /var/lib/pgbackrest/backup/demo/latest/ -type f | wc -l"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"5"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-block" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --annotation=source=\"demo backup\" \\",
" --annotation=key=value --type=full backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-000443F"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --set=20240527-000443F info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"annotation"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
" cipher: aes-256-cbc",
"",
" db (current)",
" wal archive min/max (12): 000000020000000000000007/000000020000000000000009",
"",
" full backup: 20240527-000443F",
" timestamp start/stop: 2024-05-27 00:04:43+00 / 2024-05-27 00:04:46+00",
" wal start/stop: 000000020000000000000008 / 000000020000000000000009",
" lsn start/stop: 0/8000028 / 0/9000050",
" database size: 23.5MB, database backup size: 23.5MB",
" repo1: backup size: 2.8MB",
" database list: postgres (13396)",
" annotation(s)",
" key: value",
" source: demo backup"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --set=20240527-000443F \\",
" --annotation=key= --annotation=new_key=new_value annotate"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --set=20240527-000443F info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"annotation"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
" cipher: aes-256-cbc",
"",
" db (current)",
" wal archive min/max (12): 000000020000000000000007/000000020000000000000009",
"",
" full backup: 20240527-000443F",
" timestamp start/stop: 2024-05-27 00:04:43+00 / 2024-05-27 00:04:46+00",
" wal start/stop: 000000020000000000000008 / 000000020000000000000009",
" lsn start/stop: 0/8000028 / 0/9000050",
" database size: 23.5MB, database backup size: 23.5MB",
" repo1: backup size: 2.8MB",
" database list: postgres (13396)",
" annotation(s)",
" new_key: new_value",
" source: demo backup"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-retention-full" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"archive retention on backup 20240527-000426F|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 993 lines of output]",
"P00 INFO: repo1: remove expired backup 20240527-000439F",
"P00 DETAIL: repo1: 12-1 archive retention on backup 20240527-000443F, start = 000000020000000000000008",
"P00 INFO: repo1: 12-1 remove archive, start = 000000020000000000000007, stop = 000000020000000000000007",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-000448F"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"expire full backup set 20240527-000426F|archive retention on backup 20240527-000448F|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 11 lines of output]",
"P00 INFO: repo1: expire full backup 20240527-000443F",
"P00 INFO: repo1: remove expired backup 20240527-000443F",
"P00 INFO: repo1: 12-1 remove archive, start = 000000020000000000000008, stop = 000000020000000000000009",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-retention-diff" : {
"value" : "1"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=1",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-000451F_20240527-000454D"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"expire diff backup set 20240527-000451F_20240527-000454D"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 10 lines of output]",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=2288-cb1fb1a1 --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=1 --repo1-retention-full=2 --stanza=demo",
"P00 INFO: repo1: expire diff backup set 20240527-000451F_20240527-000454D, 20240527-000451F_20240527-000456I",
"P00 INFO: repo1: remove expired backup 20240527-000451F_20240527-000456I",
"P00 INFO: repo1: remove expired backup 20240527-000451F_20240527-000454D",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"repo1-retention-diff" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=2",
"repo1-retention-full=2",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-000451F_20240527-000459D"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select pg_create_restore_point('generate WAL'); select pg_switch_wal(); \\",
" select pg_create_restore_point('generate WAL'); select pg_switch_wal();\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"new backup label"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 6 lines of output]",
"P00 INFO: backup stop archive = 000000020000000000000017, lsn = 0/17000050",
"P00 INFO: check archive for segment(s) 000000020000000000000016:000000020000000000000017",
"P00 INFO: new backup label = 20240527-000451F_20240527-000502D",
"P00 INFO: diff backup size = 10.8KB, file total = 981",
"P00 INFO: backup command end: completed successfully",
" [filtered 2 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-000451F_20240527-000502D"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=detail \\",
" --repo1-retention-archive-type=diff --repo1-retention-archive=1 expire"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"archive retention on backup 20240527-000451F_20240527-000459D|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: expire command begin 2.52: --exec-id=2477-16c1b80f --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-archive=1 --repo1-retention-archive-type=diff --repo1-retention-diff=2 --repo1-retention-full=2 --stanza=demo",
"P00 DETAIL: repo1: 12-1 archive retention on backup 20240527-000448F, start = 00000002000000000000000A, stop = 00000002000000000000000B",
"P00 DETAIL: repo1: 12-1 archive retention on backup 20240527-000451F, start = 00000002000000000000000D, stop = 00000002000000000000000D",
"P00 DETAIL: repo1: 12-1 archive retention on backup 20240527-000451F_20240527-000459D, start = 000000020000000000000012, stop = 000000020000000000000013",
"P00 DETAIL: repo1: 12-1 archive retention on backup 20240527-000451F_20240527-000502D, start = 000000020000000000000016",
"P00 INFO: repo1: 12-1 remove archive, start = 00000002000000000000000C, stop = 00000002000000000000000C",
"P00 INFO: repo1: 12-1 remove archive, start = 00000002000000000000000E, stop = 000000020000000000000011",
"P00 INFO: repo1: 12-1 remove archive, start = 000000020000000000000014, stop = 000000020000000000000015",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --log-level-console=detail restore"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"demo\\/PG_VERSION - exists and matches backup|remove invalid files|rename global\\/pg_control"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 2 lines of output]",
"P00 DETAIL: check '/var/lib/pgsql/12/data' exists",
"P00 DETAIL: remove 'global/pg_control' so cluster will not start if restore does not complete",
"P00 INFO: remove invalid files/links/paths from '/var/lib/pgsql/12/data'",
"P00 DETAIL: remove invalid file '/var/lib/pgsql/12/data/backup_label.old'",
"P00 DETAIL: remove invalid file '/var/lib/pgsql/12/data/base/13396/pg_internal.init'",
" [filtered 1027 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"create database test1;\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"create database test2;\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"create table test1_table (id int); \\",
" insert into test1_table (id) values (1);\" test1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"INSERT 0 1"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"create table test2_table (id int); \\",
" insert into test2_table (id) values (2);\" test2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"INSERT 0 1"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -Atc \"select oid from pg_database where datname = 'test1'\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"32768"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres du -sh /var/lib/pgsql/12/data/base/32768"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"7.8M\t/var/lib/pgsql/12/data/base/32768"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-000451F_20240527-000508I"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo \\",
" --set=20240527-000451F_20240527-000508I info"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"database list"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 12 lines of output]",
" repo1: backup size: 1.9MB",
" backup reference list: 20240527-000451F, 20240527-000451F_20240527-000502D",
" database list: postgres (13396), test1 (32768), test2 (32769)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --db-include=test2 --type=immediate --target-action=promote restore"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select * from test2_table;\" test2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" id ",
"----",
" 2",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select * from test1_table;\" test1"
],
"err-expect" : "2",
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"relation mapping file.*contains invalid data"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"psql: error: FATAL: relation mapping file \"base/32768/pg_filenode.map\" contains invalid data"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres du -sh /var/lib/pgsql/12/data/base/32768"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"16K\t/var/lib/pgsql/12/data/base/32768"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"drop database test1;\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"DROP DATABASE"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select oid, datname from pg_database order by oid;\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"test2"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" oid | datname ",
"-------+-----------",
" 1 | template1",
" 13395 | template0",
" 13396 | postgres",
" 32769 | test2",
"(4 rows)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"begin; \\",
" create table important_table (message text); \\",
" insert into important_table values ('Important Data'); \\",
" commit; \\",
" select * from important_table;\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -Atc \"select current_timestamp\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"2024-05-27 00:05:17.188695+00"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"begin; \\",
" drop table important_table; \\",
" commit; \\",
" select * from important_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: ...le important_table; commit; select * from important_...",
" ^"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest repo-ls backup/demo --filter=\"(F|D|I)$\" --sort=desc | head -1"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"20240527-000451F_20240527-000519I"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"20240527-000451F_20240527-000519I"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 38 lines of output]",
" backup reference list: 20240527-000451F, 20240527-000451F_20240527-000502D",
"",
" incr backup: 20240527-000451F_20240527-000519I",
" timestamp start/stop: 2024-05-27 00:05:19+00 / 2024-05-27 00:05:20+00",
" wal start/stop: 00000004000000000000001A / 00000004000000000000001A",
" [filtered 2 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --set=20240527-000451F_20240527-000519I --target-timeline=current \\",
" --type=time \"--target=2024-05-27 00:05:17.188695+00\" --target-action=promote restore"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm /var/lib/pgsql/12/data/log/postgresql.log"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: select * from important_table",
" ^"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/12/data/log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"starting point-in-time recovery|consistent recovery state reached"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2024-05-27 00:05:19 UTC",
"LOG: starting point-in-time recovery to 2024-05-27 00:05:17.188695+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"00000004000000000000001A\" from archive",
"LOG: redo starts at 0/1A000028",
"LOG: consistent recovery state reached at 0/1A000100",
"LOG: database system is ready to accept read only connections",
"LOG: redo done at 0/1A000100",
" [filtered 6 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --type=time \"--target=2024-05-27 00:05:17.188695+00\" \\",
" --target-action=promote restore"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm /var/lib/pgsql/12/data/log/postgresql.log"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/12/data/postgresql.auto.conf"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery_target_time"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 9 lines of output]",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:05:25",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"recovery_target_time = '2024-05-27 00:05:17.188695+00'",
"recovery_target_action = 'promote'"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/12/data/log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery stopping before|last completed transaction|starting point-in-time recovery"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2024-05-27 00:05:09 UTC",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: starting point-in-time recovery to 2024-05-27 00:05:17.188695+00",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: restored log file \"000000040000000000000019\" from archive",
" [filtered 3 lines of output]",
"LOG: consistent recovery state reached at 0/19000100",
"LOG: database system is ready to accept read only connections",
"LOG: recovery stopping before commit of transaction 496, time 2024-05-27 00:05:18.529772+00",
"LOG: redo done at 0/1901D128",
"LOG: last completed transaction was at log time 2024-05-27 00:05:15.863693+00",
"LOG: selected new timeline ID: 6",
"LOG: archive recovery complete",
"LOG: database system is ready to accept connections"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stop"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stop command begin 2.52: --exec-id=3829-327fc104 --log-level-console=info --log-level-stderr=off --no-log-timestamp --stanza=demo",
"P00 INFO: stop command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --repo=1 \\",
" --log-level-console=info stanza-delete"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-delete command begin 2.52: --exec-id=3855-f55f9527 --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --repo=1 --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: stanza-delete command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"repo2-azure-account" : {
"value" : "pgbackrest"
},
"repo2-azure-container" : {
"value" : "demo-container"
},
"repo2-azure-key" : {
"value" : "YXpLZXk="
},
"repo2-path" : {
"value" : "/demo-repo"
},
"repo2-retention-full" : {
"value" : "4"
},
"repo2-type" : {
"value" : "azure"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"process-max=4",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=2",
"repo1-retention-full=2",
"repo2-azure-account=pgbackrest",
"repo2-azure-container=demo-container",
"repo2-azure-key=YXpLZXk=",
"repo2-path=/demo-repo",
"repo2-retention-full=4",
"repo2-type=azure",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo \"172.17.0.2 pgbackrest.blob.core.windows.net\" | tee -a /etc/hosts"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --repo=2 repo-create"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-create command begin 2.52: --exec-id=4012-28156641 --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo2-type=azure --stanza=demo",
"P00 INFO: stanza-create for stanza 'demo' on repo1",
"P00 INFO: stanza-create for stanza 'demo' on repo2",
"P00 INFO: stanza-create command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --repo=2 \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"no prior backup exists|full backup size"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: backup command begin 2.52: --exec-id=4039-4e5dfd95 --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --process-max=4 --repo=2 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo2-type=azure --stanza=demo --start-fast",
"P00 WARN: no prior backup exists, incr backup has been changed to full",
"P00 INFO: execute non-exclusive backup start: backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000006000000000000001B, lsn = 0/1B000028",
" [filtered 3 lines of output]",
"P00 INFO: check archive for segment(s) 00000006000000000000001B:00000006000000000000001B",
"P00 INFO: new backup label = 20240527-000532F",
"P00 INFO: full backup size = 31.1MB, file total = 1287",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=4039-4e5dfd95 --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo=2 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo2-type=azure --stanza=demo"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"repo3-path" : {
"value" : "/demo-repo"
},
"repo3-retention-full" : {
"value" : "4"
},
"repo3-s3-bucket" : {
"value" : "demo-bucket"
},
"repo3-s3-endpoint" : {
"value" : "s3.us-east-1.amazonaws.com"
},
"repo3-s3-key" : {
"value" : "accessKey1"
},
"repo3-s3-key-secret" : {
"value" : "verySecretKey1"
},
"repo3-s3-region" : {
"value" : "us-east-1"
},
"repo3-type" : {
"value" : "s3"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"process-max=4",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=2",
"repo1-retention-full=2",
"repo2-azure-account=pgbackrest",
"repo2-azure-container=demo-container",
"repo2-azure-key=YXpLZXk=",
"repo2-path=/demo-repo",
"repo2-retention-full=4",
"repo2-type=azure",
"repo3-path=/demo-repo",
"repo3-retention-full=4",
"repo3-s3-bucket=demo-bucket",
"repo3-s3-endpoint=s3.us-east-1.amazonaws.com",
"repo3-s3-key=accessKey1",
"repo3-s3-key-secret=verySecretKey1",
"repo3-s3-region=us-east-1",
"repo3-type=s3",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo \"172.17.0.3 demo-bucket.s3.us-east-1.amazonaws.com s3.us-east-1.amazonaws.com\" | tee -a /etc/hosts"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --repo=3 repo-create"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 4 lines of output]",
"P00 INFO: stanza 'demo' already exists on repo2 and is valid",
"P00 INFO: stanza-create for stanza 'demo' on repo3",
"P00 INFO: stanza-create command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --repo=3 \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"no prior backup exists|full backup size"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: backup command begin 2.52: --exec-id=4192-26574a45 --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --process-max=4 --repo=3 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo2-type=azure --repo3-type=s3 --stanza=demo --start-fast",
"P00 WARN: no prior backup exists, incr backup has been changed to full",
"P00 INFO: execute non-exclusive backup start: backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000006000000000000001C, lsn = 0/1C000028",
" [filtered 3 lines of output]",
"P00 INFO: check archive for segment(s) 00000006000000000000001C:00000006000000000000001D",
"P00 INFO: new backup label = 20240527-000543F",
"P00 INFO: full backup size = 31.1MB, file total = 1287",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=4192-26574a45 --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo=3 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo2-type=azure --repo3-type=s3 --stanza=demo"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"repo4-bundle" : {
"value" : "y"
},
"repo4-path" : {
"value" : "/demo-repo"
},
"repo4-sftp-host" : {
"value" : "sftp-server"
},
"repo4-sftp-host-key-hash-type" : {
"value" : "sha1"
},
"repo4-sftp-host-user" : {
"value" : "pgbackrest"
},
"repo4-sftp-private-key-file" : {
"value" : "/var/lib/pgsql/.ssh/id_rsa_sftp"
},
"repo4-sftp-public-key-file" : {
"value" : "/var/lib/pgsql/.ssh/id_rsa_sftp.pub"
},
"repo4-type" : {
"value" : "sftp"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"process-max=4",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=2",
"repo1-retention-full=2",
"repo2-azure-account=pgbackrest",
"repo2-azure-container=demo-container",
"repo2-azure-key=YXpLZXk=",
"repo2-path=/demo-repo",
"repo2-retention-full=4",
"repo2-type=azure",
"repo3-path=/demo-repo",
"repo3-retention-full=4",
"repo3-s3-bucket=demo-bucket",
"repo3-s3-endpoint=s3.us-east-1.amazonaws.com",
"repo3-s3-key=accessKey1",
"repo3-s3-key-secret=verySecretKey1",
"repo3-s3-region=us-east-1",
"repo3-type=s3",
"repo4-bundle=y",
"repo4-path=/demo-repo",
"repo4-sftp-host=sftp-server",
"repo4-sftp-host-key-hash-type=sha1",
"repo4-sftp-host-user=pgbackrest",
"repo4-sftp-private-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp",
"repo4-sftp-public-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp.pub",
"repo4-type=sftp",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres mkdir -m 750 -p /var/lib/pgsql/.ssh"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres ssh-keygen -f /var/lib/pgsql/.ssh/id_rsa_sftp \\",
" -t rsa -b 4096 -N \"\" -m PEM"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"id -u pgbackrest > /dev/null 2>&1 || adduser -n pgbackrest"
],
"host" : "sftp-server",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mkdir -m 750 -p /demo-repo && chown pgbackrest /demo-repo"
],
"host" : "sftp-server",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest mkdir -m 750 -p /home/pgbackrest/.ssh"
],
"host" : "sftp-server",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"(sudo ssh root@pg-primary cat /var/lib/pgsql/.ssh/id_rsa_sftp.pub) | \\",
" sudo -u pgbackrest tee -a /home/pgbackrest/.ssh/authorized_keys"
],
"host" : "sftp-server",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"ssh-keyscan -H sftp-server >> /var/lib/pgsql/.ssh/known_hosts 2>/dev/null"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "postgres"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 6 lines of output]",
"P00 INFO: stanza 'demo' already exists on repo3 and is valid",
"P00 INFO: stanza-create for stanza 'demo' on repo4",
"P00 INFO: stanza-create command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --repo=4 \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"no prior backup exists|full backup size"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: backup command begin 2.52: --exec-id=4409-07025786 --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --process-max=4 --repo=4 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-block --repo1-bundle --repo4-bundle --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo4-sftp-host=sftp-server --repo4-sftp-host-key-hash-type=sha1 --repo4-sftp-host-user=pgbackrest --repo4-sftp-private-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp --repo4-sftp-public-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp.pub --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --stanza=demo --start-fast",
"P00 WARN: option 'repo4-retention-full' is not set for 'repo4-retention-full-type=count', the repository may run out of space",
" HINT: to retain full backups indefinitely (without warning), set option 'repo4-retention-full' to the maximum.",
"P00 WARN: no prior backup exists, incr backup has been changed to full",
"P00 INFO: execute non-exclusive backup start: backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000006000000000000001E, lsn = 0/1E000028",
" [filtered 3 lines of output]",
"P00 INFO: check archive for segment(s) 00000006000000000000001E:00000006000000000000001F",
"P00 INFO: new backup label = 20240527-000553F",
"P00 INFO: full backup size = 31.1MB, file total = 1287",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.52: --exec-id=4409-07025786 --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo=4 --repo2-azure-account=<redacted> --repo2-azure-container=demo-container --repo2-azure-key=<redacted> --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo2-retention-full=4 --repo3-retention-full=4 --repo3-s3-bucket=demo-bucket --repo3-s3-endpoint=s3.us-east-1.amazonaws.com --repo3-s3-key=<redacted> --repo3-s3-key-secret=<redacted> --repo3-s3-region=us-east-1 --repo4-sftp-host=sftp-server --repo4-sftp-host-key-hash-type=sha1 --repo4-sftp-host-user=pgbackrest --repo4-sftp-private-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp --repo4-sftp-public-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp.pub --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --stanza=demo",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"repo5-gcs-bucket" : {
"value" : "demo-bucket"
},
"repo5-gcs-key" : {
"value" : "/etc/pgbackrest/gcs-key.json"
},
"repo5-path" : {
"value" : "/demo-repo"
},
"repo5-type" : {
"value" : "gcs"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"process-max=4",
"repo1-block=y",
"repo1-bundle=y",
"repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO",
"repo1-cipher-type=aes-256-cbc",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-diff=2",
"repo1-retention-full=2",
"repo2-azure-account=pgbackrest",
"repo2-azure-container=demo-container",
"repo2-azure-key=YXpLZXk=",
"repo2-path=/demo-repo",
"repo2-retention-full=4",
"repo2-type=azure",
"repo3-path=/demo-repo",
"repo3-retention-full=4",
"repo3-s3-bucket=demo-bucket",
"repo3-s3-endpoint=s3.us-east-1.amazonaws.com",
"repo3-s3-key=accessKey1",
"repo3-s3-key-secret=verySecretKey1",
"repo3-s3-region=us-east-1",
"repo3-type=s3",
"repo4-bundle=y",
"repo4-path=/demo-repo",
"repo4-sftp-host=sftp-server",
"repo4-sftp-host-key-hash-type=sha1",
"repo4-sftp-host-user=pgbackrest",
"repo4-sftp-private-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp",
"repo4-sftp-public-key-file=/var/lib/pgsql/.ssh/id_rsa_sftp.pub",
"repo4-type=sftp",
"repo5-gcs-bucket=demo-bucket",
"repo5-gcs-key=/etc/pgbackrest/gcs-key.json",
"repo5-path=/demo-repo",
"repo5-type=gcs",
"start-fast=y",
"",
"[global:archive-push]",
"compress-level=3"
]
}
},
{
"key" : {
"id" : "repo1",
"image" : "pgbackrest/doc:rhel",
"name" : "repository",
"option" : "-m 512m -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "rhel",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.7"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo groupadd pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo adduser -gpgbackrest -n pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo yum install postgresql-libs libssh2"
],
"cmd-extra" : "-y 2>&1",
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest-release-2.52/src/pgbackrest /usr/bin"
],
"cmd-extra" : "2>&1",
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 770 /var/log/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown pgbackrest:pgbackrest /var/log/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest/conf.d"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo touch /etc/pgbackrest/pgbackrest.conf"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 640 /etc/pgbackrest/pgbackrest.conf"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown pgbackrest:pgbackrest /etc/pgbackrest/pgbackrest.conf"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /var/lib/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown pgbackrest:pgbackrest /var/lib/pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"global" : {
"repo1-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[global]",
"repo1-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"demo" : {
"pg1-host" : {
"value" : "pg-primary"
},
"pg1-host-ca-file" : {
"value" : "/etc/pgbackrest/cert/ca.crt"
},
"pg1-host-cert-file" : {
"value" : "/etc/pgbackrest/cert/client.crt"
},
"pg1-host-key-file" : {
"value" : "/etc/pgbackrest/cert/client.key"
},
"pg1-host-type" : {
"value" : "tls"
},
"pg1-path" : {
"value" : "/var/lib/pgsql/12/data"
}
},
"global" : {
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
},
"repo1-retention-full" : {
"value" : "2"
},
"start-fast" : {
"value" : "y"
},
"tls-server-address" : {
"value" : "*"
},
"tls-server-auth" : {
"value" : "pgbackrest-client=*"
},
"tls-server-ca-file" : {
"value" : "/etc/pgbackrest/cert/ca.crt"
},
"tls-server-cert-file" : {
"value" : "/etc/pgbackrest/cert/server.crt"
},
"tls-server-key-file" : {
"value" : "/etc/pgbackrest/cert/server.key"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg1-host-key-file=/etc/pgbackrest/cert/client.key",
"pg1-host-type=tls",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=*",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/pgsql/12/data"
}
},
"global" : {
"log-level-file" : {
"value" : "detail"
},
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
},
"repo1-host" : {
"value" : "repository"
},
"repo1-host-ca-file" : {
"value" : "/etc/pgbackrest/cert/ca.crt"
},
"repo1-host-cert-file" : {
"value" : "/etc/pgbackrest/cert/client.crt"
},
"repo1-host-key-file" : {
"value" : "/etc/pgbackrest/cert/client.key"
},
"repo1-host-type" : {
"value" : "tls"
},
"tls-server-address" : {
"value" : "*"
},
"tls-server-auth" : {
"value" : "pgbackrest-client=demo"
},
"tls-server-ca-file" : {
"value" : "/etc/pgbackrest/cert/ca.crt"
},
"tls-server-cert-file" : {
"value" : "/etc/pgbackrest/cert/server.crt"
},
"tls-server-key-file" : {
"value" : "/etc/pgbackrest/cert/server.key"
}
}
},
"reset" : true
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"log-level-file=detail",
"repo1-host=repository",
"repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"repo1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"repo1-host-key-file=/etc/pgbackrest/cert/client.key",
"repo1-host-type=tls",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=demo",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mkdir -p -m 770 /etc/pgbackrest/cert && \\",
" cp /pgbackrest/doc/resource/fake-cert/ca.crt \\",
" /etc/pgbackrest/cert/ca.crt && \\",
" \\",
" openssl genrsa -out /etc/pgbackrest/cert/server.key 2048 2>&1 && \\",
" chmod 600 /etc/pgbackrest/cert/server.key && \\",
" openssl req -new -sha256 -nodes -out /etc/pgbackrest/cert/server.csr \\",
" -key /etc/pgbackrest/cert/server.key -subj \"/CN=repository\" 2>&1 && \\",
" openssl x509 -req -in /etc/pgbackrest/cert/server.csr \\",
" -CA /etc/pgbackrest/cert/ca.crt \\",
" -CAkey /pgbackrest/doc/resource/fake-cert/ca.key -CAcreateserial \\",
" -out /etc/pgbackrest/cert/server.crt -days 9 2>&1 && \\",
" \\",
" openssl genrsa -out /etc/pgbackrest/cert/client.key 2048 2>&1 && \\",
" chmod 600 /etc/pgbackrest/cert/client.key && \\",
" openssl req -new -sha256 -nodes -out /etc/pgbackrest/cert/client.csr \\",
" -key /etc/pgbackrest/cert/client.key -subj \"/CN=pgbackrest-client\" 2>&1 && \\",
" openssl x509 -req -in /etc/pgbackrest/cert/client.csr \\",
" -CA /etc/pgbackrest/cert/ca.crt \\",
" -CAkey /pgbackrest/doc/resource/fake-cert/ca.key -CAcreateserial \\",
" -out /etc/pgbackrest/cert/client.crt -days 9 2>&1 && \\",
" \\",
" chown -R pgbackrest /etc/pgbackrest/cert"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo '[Unit]' | tee /etc/systemd/system/pgbackrest.service && \\",
" echo 'Description=pgBackRest Server' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'After=network.target' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'StartLimitIntervalSec=0' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '[Service]' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'Type=simple' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'Restart=always' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'RestartSec=1' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'User=pgbackrest' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStart=/usr/bin/pgbackrest server' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStartPost=/bin/sleep 3' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStartPost=/bin/bash -c \"[ ! -z $MAINPID ]\"' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecReload=/bin/kill -HUP $MAINPID' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '[Install]' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'WantedBy=multi-user.target' | tee -a /etc/systemd/system/pgbackrest.service"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cat /etc/systemd/system/pgbackrest.service"
],
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"[Unit]",
"Description=pgBackRest Server",
"After=network.target",
"StartLimitIntervalSec=0",
"",
"[Service]",
"Type=simple",
"Restart=always",
"RestartSec=1",
"User=pgbackrest",
"ExecStart=/usr/bin/pgbackrest server",
"ExecStartPost=/bin/sleep 3",
"ExecStartPost=/bin/bash -c \"[ ! -z $MAINPID ]\"",
"ExecReload=/bin/kill -HUP $MAINPID",
"",
"[Install]",
"WantedBy=multi-user.target"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl enable pgbackrest"
],
"cmd-extra" : "2>&1",
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start pgbackrest"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mkdir -p -m 770 /etc/pgbackrest/cert && \\",
" cp /pgbackrest/doc/resource/fake-cert/ca.crt \\",
" /etc/pgbackrest/cert/ca.crt && \\",
" \\",
" openssl genrsa -out /etc/pgbackrest/cert/server.key 2048 2>&1 && \\",
" chmod 600 /etc/pgbackrest/cert/server.key && \\",
" openssl req -new -sha256 -nodes -out /etc/pgbackrest/cert/server.csr \\",
" -key /etc/pgbackrest/cert/server.key -subj \"/CN=pg-primary\" 2>&1 && \\",
" openssl x509 -req -in /etc/pgbackrest/cert/server.csr \\",
" -CA /etc/pgbackrest/cert/ca.crt \\",
" -CAkey /pgbackrest/doc/resource/fake-cert/ca.key -CAcreateserial \\",
" -out /etc/pgbackrest/cert/server.crt -days 9 2>&1 && \\",
" \\",
" openssl genrsa -out /etc/pgbackrest/cert/client.key 2048 2>&1 && \\",
" chmod 600 /etc/pgbackrest/cert/client.key && \\",
" openssl req -new -sha256 -nodes -out /etc/pgbackrest/cert/client.csr \\",
" -key /etc/pgbackrest/cert/client.key -subj \"/CN=pgbackrest-client\" 2>&1 && \\",
" openssl x509 -req -in /etc/pgbackrest/cert/client.csr \\",
" -CA /etc/pgbackrest/cert/ca.crt \\",
" -CAkey /pgbackrest/doc/resource/fake-cert/ca.key -CAcreateserial \\",
" -out /etc/pgbackrest/cert/client.crt -days 9 2>&1 && \\",
" \\",
" chown -R postgres /etc/pgbackrest/cert"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo '[Unit]' | tee /etc/systemd/system/pgbackrest.service && \\",
" echo 'Description=pgBackRest Server' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'After=network.target' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'StartLimitIntervalSec=0' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '[Service]' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'Type=simple' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'Restart=always' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'RestartSec=1' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'User=postgres' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStart=/usr/bin/pgbackrest server' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStartPost=/bin/sleep 3' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStartPost=/bin/bash -c \"[ ! -z $MAINPID ]\"' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecReload=/bin/kill -HUP $MAINPID' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '[Install]' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'WantedBy=multi-user.target' | tee -a /etc/systemd/system/pgbackrest.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cat /etc/systemd/system/pgbackrest.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"[Unit]",
"Description=pgBackRest Server",
"After=network.target",
"StartLimitIntervalSec=0",
"",
"[Service]",
"Type=simple",
"Restart=always",
"RestartSec=1",
"User=postgres",
"ExecStart=/usr/bin/pgbackrest server",
"ExecStartPost=/bin/sleep 3",
"ExecStartPost=/bin/bash -c \"[ ! -z $MAINPID ]\"",
"ExecReload=/bin/kill -HUP $MAINPID",
"",
"[Install]",
"WantedBy=multi-user.target"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl enable pgbackrest"
],
"cmd-extra" : "2>&1",
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo stanza-create"
],
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo check"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo check"
],
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo backup"
],
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: no prior backup exists, incr backup has been changed to full"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"global" : {
"process-max" : {
"value" : "3"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg1-host-key-file=/etc/pgbackrest/cert/client.key",
"pg1-host-type=tls",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"process-max=3",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=*",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"timestamp start/stop"
]
},
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
" cipher: none",
"",
" db (current)",
" wal archive min/max (12): 000000070000000000000025/000000070000000000000027",
"",
" full backup: 20240527-000652F",
" timestamp start/stop: 2024-05-27 00:06:52+00 / 2024-05-27 00:06:56+00",
" wal start/stop: 000000070000000000000025 / 000000070000000000000025",
" database size: 31.1MB, database backup size: 31.1MB",
" repo1: backup set size: 3.7MB, backup size: 3.7MB",
"",
" full backup: 20240527-000657F",
" timestamp start/stop: 2024-05-27 00:06:57+00 / 2024-05-27 00:07:01+00",
" wal start/stop: 000000070000000000000026 / 000000070000000000000027",
" database size: 31.1MB, database backup size: 31.1MB",
" repo1: backup set size: 3.7MB, backup size: 3.7MB"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo backup"
],
"err-expect" : "56",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"\\: stop file exists for all stanzas"
]
},
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: unable to check pg1: [StopError] raised from remote-0 tls protocol on 'pg-primary': stop file exists for all stanzas",
"P00 ERROR: [056]: unable to find primary cluster - cannot proceed",
" HINT: are all available clusters in recovery?"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: stop file already exists for all stanzas"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo backup"
],
"err-expect" : "56",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"\\: stop file exists for stanza demo"
]
},
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: unable to check pg1: [StopError] raised from remote-0 tls protocol on 'pg-primary': stop file exists for stanza demo",
"P00 ERROR: [056]: unable to find primary cluster - cannot proceed",
" HINT: are all available clusters in recovery?"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo start"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"id" : "pg2",
"image" : "pgbackrest/doc:rhel",
"name" : "pg-standby",
"option" : "-m 512m -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "rhel",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.8"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo yum install postgresql-libs libssh2"
],
"cmd-extra" : "-y 2>&1",
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest-release-2.52/src/pgbackrest /usr/bin"
],
"cmd-extra" : "2>&1",
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 770 /var/log/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/log/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest/conf.d"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo touch /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 640 /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-standby",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/pgsql/12/data"
}
},
"global" : {
"log-level-file" : {
"value" : "detail"
},
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
},
"repo1-host" : {
"value" : "repository"
},
"repo1-host-ca-file" : {
"value" : "/etc/pgbackrest/cert/ca.crt"
},
"repo1-host-cert-file" : {
"value" : "/etc/pgbackrest/cert/client.crt"
},
"repo1-host-key-file" : {
"value" : "/etc/pgbackrest/cert/client.key"
},
"repo1-host-type" : {
"value" : "tls"
},
"tls-server-address" : {
"value" : "*"
},
"tls-server-auth" : {
"value" : "pgbackrest-client=demo"
},
"tls-server-ca-file" : {
"value" : "/etc/pgbackrest/cert/ca.crt"
},
"tls-server-cert-file" : {
"value" : "/etc/pgbackrest/cert/server.crt"
},
"tls-server-key-file" : {
"value" : "/etc/pgbackrest/cert/server.key"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"log-level-file=detail",
"repo1-host=repository",
"repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"repo1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"repo1-host-key-file=/etc/pgbackrest/cert/client.key",
"repo1-host-type=tls",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=demo",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mkdir -p -m 770 /etc/pgbackrest/cert && \\",
" cp /pgbackrest/doc/resource/fake-cert/ca.crt \\",
" /etc/pgbackrest/cert/ca.crt && \\",
" \\",
" openssl genrsa -out /etc/pgbackrest/cert/server.key 2048 2>&1 && \\",
" chmod 600 /etc/pgbackrest/cert/server.key && \\",
" openssl req -new -sha256 -nodes -out /etc/pgbackrest/cert/server.csr \\",
" -key /etc/pgbackrest/cert/server.key -subj \"/CN=pg-standby\" 2>&1 && \\",
" openssl x509 -req -in /etc/pgbackrest/cert/server.csr \\",
" -CA /etc/pgbackrest/cert/ca.crt \\",
" -CAkey /pgbackrest/doc/resource/fake-cert/ca.key -CAcreateserial \\",
" -out /etc/pgbackrest/cert/server.crt -days 9 2>&1 && \\",
" \\",
" openssl genrsa -out /etc/pgbackrest/cert/client.key 2048 2>&1 && \\",
" chmod 600 /etc/pgbackrest/cert/client.key && \\",
" openssl req -new -sha256 -nodes -out /etc/pgbackrest/cert/client.csr \\",
" -key /etc/pgbackrest/cert/client.key -subj \"/CN=pgbackrest-client\" 2>&1 && \\",
" openssl x509 -req -in /etc/pgbackrest/cert/client.csr \\",
" -CA /etc/pgbackrest/cert/ca.crt \\",
" -CAkey /pgbackrest/doc/resource/fake-cert/ca.key -CAcreateserial \\",
" -out /etc/pgbackrest/cert/client.crt -days 9 2>&1 && \\",
" \\",
" chown -R postgres /etc/pgbackrest/cert"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo '[Unit]' | tee /etc/systemd/system/pgbackrest.service && \\",
" echo 'Description=pgBackRest Server' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'After=network.target' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'StartLimitIntervalSec=0' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '[Service]' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'Type=simple' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'Restart=always' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'RestartSec=1' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'User=postgres' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStart=/usr/bin/pgbackrest server' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStartPost=/bin/sleep 3' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStartPost=/bin/bash -c \"[ ! -z $MAINPID ]\"' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecReload=/bin/kill -HUP $MAINPID' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '[Install]' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'WantedBy=multi-user.target' | tee -a /etc/systemd/system/pgbackrest.service"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cat /etc/systemd/system/pgbackrest.service"
],
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"[Unit]",
"Description=pgBackRest Server",
"After=network.target",
"StartLimitIntervalSec=0",
"",
"[Service]",
"Type=simple",
"Restart=always",
"RestartSec=1",
"User=postgres",
"ExecStart=/usr/bin/pgbackrest server",
"ExecStartPost=/bin/sleep 3",
"ExecStartPost=/bin/bash -c \"[ ! -z $MAINPID ]\"",
"ExecReload=/bin/kill -HUP $MAINPID",
"",
"[Install]",
"WantedBy=multi-user.target"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl enable pgbackrest"
],
"cmd-extra" : "2>&1",
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres mkdir -p -m 700 /var/lib/pgsql/12/data"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=standby restore"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/12/data/postgresql.auto.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"# Do not edit this file manually!",
"# It will be overwritten by the ALTER SYSTEM command.",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:04:34",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:05:04",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:05:25",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"# Removed by pgBackRest restore on 2024-05-27 00:06:48 # recovery_target_time = '2024-05-27 00:05:17.188695+00'",
"# Removed by pgBackRest restore on 2024-05-27 00:06:48 # recovery_target_action = 'promote'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:06:48",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:07:43",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cat /root/postgresql.common.conf >> /var/lib/pgsql/12/data/postgresql.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"file" : "/var/lib/pgsql/12/data/postgresql.conf",
"host" : "pg-standby",
"option" : {
"archive_command" : {
"value" : "'pgbackrest --stanza=demo archive-push %p'"
},
"archive_mode" : {
"value" : "on"
},
"hot_standby" : {
"value" : "on"
},
"log_filename" : {
"value" : "'postgresql.log'"
},
"max_wal_senders" : {
"value" : "3"
},
"wal_level" : {
"value" : "replica"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
"archive_mode = on",
"hot_standby = on",
"log_filename = 'postgresql.log'",
"max_wal_senders = 3",
"wal_level = replica"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm /var/lib/pgsql/12/data/log/postgresql.log"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-12.service"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/12/data/log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"entering standby mode|database system is ready to accept read only connections"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"LOG: database system was interrupted; last known up at 2024-05-27 00:06:57 UTC",
"LOG: entering standby mode",
"LOG: restored log file \"00000007.history\" from archive",
"LOG: restored log file \"000000070000000000000026\" from archive",
"LOG: redo starts at 0/26000028",
"LOG: restored log file \"000000070000000000000027\" from archive",
"LOG: consistent recovery state reached at 0/27000050",
"LOG: database system is ready to accept read only connections"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" begin; \\",
" create table replicated_table (message text); \\",
" insert into replicated_table values ('Important Data'); \\",
" commit; \\",
" select * from replicated_table\";"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select * from replicated_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"replicated_table\" does not exist",
"LINE 1: select * from replicated_table;",
" ^"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"select *, current_timestamp from pg_switch_wal()\";"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" pg_switch_wal | current_timestamp ",
"---------------+-------------------------------",
" 0/28021810 | 2024-05-27 00:07:48.095293+00",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from replicated_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" message | current_timestamp ",
"----------------+-------------------------------",
" Important Data | 2024-05-27 00:07:50.341907+00",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"because this is a standby"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.52: --exec-id=1292-2e4caa2c --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --stanza=demo",
"P00 INFO: check repo1 (standby)",
"P00 INFO: switch wal not performed because this is a standby",
"P00 INFO: check command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" create user replicator password 'jw8s0F4' replication\";"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"CREATE ROLE"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
" \"host replication replicator 172.17.0.8/32 md5\" \\",
" >> /var/lib/pgsql/12/data/pg_hba.conf'"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl reload postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-standby",
"option" : {
"demo" : {
"recovery-option" : {
"value" : "primary_conninfo=host=172.17.0.6 port=5432 user=replicator"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator",
"",
"[global]",
"log-level-file=detail",
"repo1-host=repository",
"repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"repo1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"repo1-host-key-file=/etc/pgbackrest/cert/client.key",
"repo1-host-type=tls",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=demo",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
" \"172.17.0.6:*:replication:replicator:jw8s0F4\" \\",
" >> /var/lib/pgsql/.pgpass'"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres chmod 600 /var/lib/pgsql/.pgpass"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-12.service"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta --type=standby restore"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/12/data/postgresql.auto.conf"
],
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"# Do not edit this file manually!",
"# It will be overwritten by the ALTER SYSTEM command.",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:04:34",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:05:04",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:05:25",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"# Removed by pgBackRest restore on 2024-05-27 00:06:48 # recovery_target_time = '2024-05-27 00:05:17.188695+00'",
"# Removed by pgBackRest restore on 2024-05-27 00:06:48 # recovery_target_action = 'promote'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:06:48",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"",
"# Recovery settings generated by pgBackRest restore on 2024-05-27 00:07:53",
"primary_conninfo = 'host=172.17.0.6 port=5432 user=replicator'",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/12/data/postgresql.conf",
"host" : "pg-standby",
"option" : {
"hot_standby" : {
"value" : "on"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
"archive_mode = on",
"hot_standby = on",
"log_filename = 'postgresql.log'",
"max_wal_senders = 3",
"wal_level = replica"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm /var/lib/pgsql/12/data/log/postgresql.log"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-12.service"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/12/data/log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"started streaming WAL from primary"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 7 lines of output]",
"LOG: database system is ready to accept read only connections",
"LOG: restored log file \"000000070000000000000028\" from archive",
"LOG: started streaming WAL from primary at 0/29000000 on timeline 7"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" begin; \\",
" create table stream_table (message text); \\",
" insert into stream_table values ('Important Data'); \\",
" commit; \\",
" select *, current_timestamp from stream_table\";"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" message | current_timestamp ",
"----------------+-------------------------------",
" Important Data | 2024-05-27 00:07:57.002098+00",
"(1 row)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from stream_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" message | current_timestamp ",
"----------------+-------------------------------",
" Important Data | 2024-05-27 00:07:57.353326+00",
"(1 row)"
]
}
},
{
"key" : {
"id" : "pgalt",
"image" : "pgbackrest/doc:rhel",
"name" : "pg-alt",
"option" : "-m 512m -v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run",
"os" : "rhel",
"update-hosts" : true
},
"type" : "host",
"value" : {
"ip" : "172.17.0.9"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo yum install postgresql-libs libssh2"
],
"cmd-extra" : "-y 2>&1",
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest-release-2.52/src/pgbackrest /usr/bin"
],
"cmd-extra" : "2>&1",
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 770 /var/log/pgbackrest"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/log/pgbackrest"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /etc/pgbackrest/conf.d"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo touch /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chmod 640 /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /etc/pgbackrest/pgbackrest.conf"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-alt",
"option" : {
"demo-alt" : {
"pg1-path" : {
"value" : "/var/lib/pgsql/12/data"
}
},
"global" : {
"log-level-file" : {
"value" : "detail"
},
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
},
"repo1-host" : {
"value" : "repository"
},
"repo1-host-ca-file" : {
"value" : "/etc/pgbackrest/cert/ca.crt"
},
"repo1-host-cert-file" : {
"value" : "/etc/pgbackrest/cert/client.crt"
},
"repo1-host-key-file" : {
"value" : "/etc/pgbackrest/cert/client.key"
},
"repo1-host-type" : {
"value" : "tls"
},
"tls-server-address" : {
"value" : "*"
},
"tls-server-auth" : {
"value" : "pgbackrest-client=demo-alt"
},
"tls-server-ca-file" : {
"value" : "/etc/pgbackrest/cert/ca.crt"
},
"tls-server-cert-file" : {
"value" : "/etc/pgbackrest/cert/server.crt"
},
"tls-server-key-file" : {
"value" : "/etc/pgbackrest/cert/server.key"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo-alt]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"log-level-file=detail",
"repo1-host=repository",
"repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"repo1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"repo1-host-key-file=/etc/pgbackrest/cert/client.key",
"repo1-host-type=tls",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=demo-alt",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"demo-alt" : {
"pg1-host" : {
"value" : "pg-alt"
},
"pg1-host-ca-file" : {
"value" : "/etc/pgbackrest/cert/ca.crt"
},
"pg1-host-cert-file" : {
"value" : "/etc/pgbackrest/cert/client.crt"
},
"pg1-host-key-file" : {
"value" : "/etc/pgbackrest/cert/client.key"
},
"pg1-host-type" : {
"value" : "tls"
},
"pg1-path" : {
"value" : "/var/lib/pgsql/12/data"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg1-host-key-file=/etc/pgbackrest/cert/client.key",
"pg1-host-type=tls",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[demo-alt]",
"pg1-host=pg-alt",
"pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg1-host-key-file=/etc/pgbackrest/cert/client.key",
"pg1-host-type=tls",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"process-max=3",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=*",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mkdir -p -m 770 /etc/pgbackrest/cert && \\",
" cp /pgbackrest/doc/resource/fake-cert/ca.crt \\",
" /etc/pgbackrest/cert/ca.crt && \\",
" \\",
" openssl genrsa -out /etc/pgbackrest/cert/server.key 2048 2>&1 && \\",
" chmod 600 /etc/pgbackrest/cert/server.key && \\",
" openssl req -new -sha256 -nodes -out /etc/pgbackrest/cert/server.csr \\",
" -key /etc/pgbackrest/cert/server.key -subj \"/CN=pg-alt\" 2>&1 && \\",
" openssl x509 -req -in /etc/pgbackrest/cert/server.csr \\",
" -CA /etc/pgbackrest/cert/ca.crt \\",
" -CAkey /pgbackrest/doc/resource/fake-cert/ca.key -CAcreateserial \\",
" -out /etc/pgbackrest/cert/server.crt -days 9 2>&1 && \\",
" \\",
" openssl genrsa -out /etc/pgbackrest/cert/client.key 2048 2>&1 && \\",
" chmod 600 /etc/pgbackrest/cert/client.key && \\",
" openssl req -new -sha256 -nodes -out /etc/pgbackrest/cert/client.csr \\",
" -key /etc/pgbackrest/cert/client.key -subj \"/CN=pgbackrest-client\" 2>&1 && \\",
" openssl x509 -req -in /etc/pgbackrest/cert/client.csr \\",
" -CA /etc/pgbackrest/cert/ca.crt \\",
" -CAkey /pgbackrest/doc/resource/fake-cert/ca.key -CAcreateserial \\",
" -out /etc/pgbackrest/cert/client.crt -days 9 2>&1 && \\",
" \\",
" chown -R postgres /etc/pgbackrest/cert"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo '[Unit]' | tee /etc/systemd/system/pgbackrest.service && \\",
" echo 'Description=pgBackRest Server' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'After=network.target' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'StartLimitIntervalSec=0' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '[Service]' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'Type=simple' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'Restart=always' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'RestartSec=1' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'User=postgres' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStart=/usr/bin/pgbackrest server' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStartPost=/bin/sleep 3' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecStartPost=/bin/bash -c \"[ ! -z $MAINPID ]\"' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'ExecReload=/bin/kill -HUP $MAINPID' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo '[Install]' | tee -a /etc/systemd/system/pgbackrest.service && \\",
" echo 'WantedBy=multi-user.target' | tee -a /etc/systemd/system/pgbackrest.service"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cat /etc/systemd/system/pgbackrest.service"
],
"host" : "pg-alt",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"[Unit]",
"Description=pgBackRest Server",
"After=network.target",
"StartLimitIntervalSec=0",
"",
"[Service]",
"Type=simple",
"Restart=always",
"RestartSec=1",
"User=postgres",
"ExecStart=/usr/bin/pgbackrest server",
"ExecStartPost=/bin/sleep 3",
"ExecStartPost=/bin/bash -c \"[ ! -z $MAINPID ]\"",
"ExecReload=/bin/kill -HUP $MAINPID",
"",
"[Install]",
"WantedBy=multi-user.target"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl enable pgbackrest"
],
"cmd-extra" : "2>&1",
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start pgbackrest"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres /usr/pgsql-12/bin/initdb \\",
" -D /var/lib/pgsql/12/data -k -A peer"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cat /root/postgresql.common.conf >> /var/lib/pgsql/12/data/postgresql.conf"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"file" : "/var/lib/pgsql/12/data/postgresql.conf",
"host" : "pg-alt",
"option" : {
"archive_command" : {
"value" : "'pgbackrest --stanza=demo-alt archive-push %p'"
},
"archive_mode" : {
"value" : "on"
},
"log_filename" : {
"value" : "'postgresql.log'"
},
"max_wal_senders" : {
"value" : "3"
},
"wal_level" : {
"value" : "replica"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo-alt archive-push %p'",
"archive_mode = on",
"log_filename = 'postgresql.log'",
"max_wal_senders = 3",
"wal_level = replica"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl restart postgresql-12.service"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-alt",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo-alt --log-level-console=info stanza-create"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-alt",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-create command begin 2.52: --exec-id=947-bbc659e4 --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --stanza=demo-alt",
"P00 INFO: stanza-create for stanza 'demo-alt' on repo1",
"P00 INFO: stanza-create command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"check stanza | successfully archived to "
]
},
"host" : "pg-alt",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.52: --exec-id=974-5d26f196 --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls",
"P00 INFO: check stanza 'demo-alt'",
"P00 INFO: check repo1 configuration (primary)",
"P00 INFO: check repo1 archive for WAL (primary)",
"P00 INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo-alt/12-1/0000000100000000/000000010000000000000001-63cc8bdb98eee57682d0af5b16314d599c3e3b6c.gz' on repo1",
"P00 INFO: check command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"check stanza | successfully archived to "
]
},
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.52: --exec-id=1321-f40c5676 --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-path=/var/lib/pgbackrest",
"P00 INFO: check stanza 'demo'",
"P00 INFO: check repo1 configuration (primary)",
"P00 INFO: check repo1 archive for WAL (primary)",
"P00 INFO: WAL segment 000000070000000000000029 successfully archived to '/var/lib/pgbackrest/archive/demo/12-1/0000000700000000/000000070000000000000029-87916bee751ebfc4345c6404ea495bc996a3071e.gz' on repo1",
"P00 INFO: check stanza 'demo-alt'",
"P00 INFO: check repo1 configuration (primary)",
"P00 INFO: check repo1 archive for WAL (primary)",
"P00 INFO: WAL segment 000000010000000000000002 successfully archived to '/var/lib/pgbackrest/archive/demo-alt/12-1/0000000100000000/000000010000000000000002-dda9d7f6aafd916afaf72ddc5b978421d0ca63a3.gz' on repo1",
"P00 INFO: check command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 750 /var/spool/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/spool/pgbackrest"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p -m 750 /var/spool/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo chown postgres:postgres /var/spool/pgbackrest"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"archive-async" : {
"value" : "y"
},
"spool-path" : {
"value" : "/var/spool/pgbackrest"
}
},
"global:archive-get" : {
"process-max" : {
"value" : "2"
}
},
"global:archive-push" : {
"process-max" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"archive-async=y",
"log-level-file=detail",
"repo1-host=repository",
"repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"repo1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"repo1-host-key-file=/etc/pgbackrest/cert/client.key",
"repo1-host-type=tls",
"spool-path=/var/spool/pgbackrest",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=demo",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key",
"",
"[global:archive-get]",
"process-max=2",
"",
"[global:archive-push]",
"process-max=2"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-standby",
"option" : {
"global" : {
"archive-async" : {
"value" : "y"
},
"spool-path" : {
"value" : "/var/spool/pgbackrest"
}
},
"global:archive-get" : {
"process-max" : {
"value" : "2"
}
},
"global:archive-push" : {
"process-max" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/12/data",
"recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator",
"",
"[global]",
"archive-async=y",
"log-level-file=detail",
"repo1-host=repository",
"repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"repo1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"repo1-host-key-file=/etc/pgbackrest/cert/client.key",
"repo1-host-type=tls",
"spool-path=/var/spool/pgbackrest",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=demo",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key",
"",
"[global:archive-get]",
"process-max=2",
"",
"[global:archive-push]",
"process-max=2"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"alter user replicator password 'bogus'\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"ALTER ROLE"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl restart postgresql-12.service"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres rm -f /var/log/pgbackrest/demo-archive-push-async.log"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select pg_create_restore_point('test async push'); select pg_switch_wal(); \\",
" select pg_create_restore_point('test async push'); select pg_switch_wal(); \\",
" select pg_create_restore_point('test async push'); select pg_switch_wal(); \\",
" select pg_create_restore_point('test async push'); select pg_switch_wal(); \\",
" select pg_create_restore_point('test async push'); select pg_switch_wal();\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"WAL segment"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.52: --exec-id=5437-0e128737 --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --stanza=demo",
"P00 INFO: check repo1 configuration (primary)",
"P00 INFO: check repo1 archive for WAL (primary)",
"P00 INFO: WAL segment 00000007000000000000002F successfully archived to '/var/lib/pgbackrest/archive/demo/12-1/0000000700000000/00000007000000000000002F-82a3e0ac18a0e3007bf6caff91610582bc650bde.gz' on repo1",
"P00 INFO: check command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/log/pgbackrest/demo-archive-push-async.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
" WAL file\\(s\\) to archive|pushed WAL file \\'0000000"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"-------------------PROCESS START-------------------",
"P00 INFO: archive-push:async command begin 2.52: [/var/lib/pgsql/12/data/pg_wal] --archive-async --exec-id=5405-3e8356d1 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --process-max=2 --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 1 WAL file(s) to archive: 00000007000000000000002A",
"P01 DETAIL: pushed WAL file '00000007000000000000002A' to the archive",
"P00 DETAIL: statistics: {\"socket.client\":{\"total\":1},\"socket.session\":{\"total\":1},\"tls.client\":{\"total\":1},\"tls.session\":{\"total\":1}}",
"P00 INFO: archive-push:async command end: completed successfully",
"",
"-------------------PROCESS START-------------------",
"P00 INFO: archive-push:async command begin 2.52: [/var/lib/pgsql/12/data/pg_wal] --archive-async --exec-id=5439-e355211d --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --process-max=2 --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 4 WAL file(s) to archive: 00000007000000000000002B...00000007000000000000002E",
"P01 DETAIL: pushed WAL file '00000007000000000000002B' to the archive",
"P02 DETAIL: pushed WAL file '00000007000000000000002C' to the archive",
"P01 DETAIL: pushed WAL file '00000007000000000000002D' to the archive",
"P02 DETAIL: pushed WAL file '00000007000000000000002E' to the archive",
"P00 DETAIL: statistics: {\"socket.client\":{\"total\":1},\"socket.session\":{\"total\":1},\"tls.client\":{\"total\":1},\"tls.session\":{\"total\":1}}",
"P00 INFO: archive-push:async command end: completed successfully",
"",
"-------------------PROCESS START-------------------",
"P00 INFO: archive-push:async command begin 2.52: [/var/lib/pgsql/12/data/pg_wal] --archive-async --exec-id=5447-842eac4b --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --process-max=2 --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 1 WAL file(s) to archive: 00000007000000000000002F",
"P01 DETAIL: pushed WAL file '00000007000000000000002F' to the archive",
"P00 DETAIL: statistics: {\"socket.client\":{\"total\":1},\"socket.session\":{\"total\":1},\"tls.client\":{\"total\":1},\"tls.session\":{\"total\":1}}",
"P00 INFO: archive-push:async command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 5"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres cat /var/log/pgbackrest/demo-archive-get-async.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"found [0-F]{24} in the .* archive"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"-------------------PROCESS START-------------------",
"P00 INFO: archive-get:async command begin 2.52: [000000070000000000000026, 000000070000000000000027, 000000070000000000000028, 000000070000000000000029, 00000007000000000000002A, 00000007000000000000002B, 00000007000000000000002C, 00000007000000000000002D] --archive-async --exec-id=1829-41e8ea4b --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --process-max=2 --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: get 8 WAL file(s) from archive: 000000070000000000000026...00000007000000000000002D",
"P01 DETAIL: found 000000070000000000000026 in the repo1: 12-1 archive",
"P02 DETAIL: found 000000070000000000000027 in the repo1: 12-1 archive",
"P01 DETAIL: found 000000070000000000000028 in the repo1: 12-1 archive",
"P02 DETAIL: found 000000070000000000000029 in the repo1: 12-1 archive",
"P00 DETAIL: unable to find 00000007000000000000002A in the archive",
"P00 DETAIL: statistics: {\"socket.client\":{\"total\":1},\"socket.session\":{\"total\":1},\"tls.client\":{\"total\":1},\"tls.session\":{\"total\":1}}",
" [filtered 17 lines of output]",
"P00 INFO: archive-get:async command begin 2.52: [00000007000000000000002A, 00000007000000000000002B, 00000007000000000000002C, 00000007000000000000002D, 00000007000000000000002E, 00000007000000000000002F, 000000070000000000000030, 000000070000000000000031] --archive-async --exec-id=1883-c072908e --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/12/data --process-max=2 --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: get 8 WAL file(s) from archive: 00000007000000000000002A...000000070000000000000031",
"P01 DETAIL: found 00000007000000000000002A in the repo1: 12-1 archive",
"P02 DETAIL: found 00000007000000000000002B in the repo1: 12-1 archive",
"P01 DETAIL: found 00000007000000000000002C in the repo1: 12-1 archive",
"P02 DETAIL: found 00000007000000000000002D in the repo1: 12-1 archive",
"P01 DETAIL: found 00000007000000000000002E in the repo1: 12-1 archive",
"P02 DETAIL: found 00000007000000000000002F in the repo1: 12-1 archive",
"P00 DETAIL: unable to find 000000070000000000000030 in the archive",
"P00 DETAIL: statistics: {\"socket.client\":{\"total\":1},\"socket.session\":{\"total\":1},\"tls.client\":{\"total\":1},\"tls.session\":{\"total\":1}}",
" [filtered 14 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"alter user replicator password 'jw8s0F4'\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"ALTER ROLE"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"demo" : {
"pg2-host" : {
"value" : "pg-standby"
},
"pg2-host-ca-file" : {
"value" : "/etc/pgbackrest/cert/ca.crt"
},
"pg2-host-cert-file" : {
"value" : "/etc/pgbackrest/cert/client.crt"
},
"pg2-host-key-file" : {
"value" : "/etc/pgbackrest/cert/client.key"
},
"pg2-host-type" : {
"value" : "tls"
},
"pg2-path" : {
"value" : "/var/lib/pgsql/12/data"
}
},
"global" : {
"backup-standby" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg1-host-key-file=/etc/pgbackrest/cert/client.key",
"pg1-host-type=tls",
"pg1-path=/var/lib/pgsql/12/data",
"pg2-host=pg-standby",
"pg2-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg2-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg2-host-key-file=/etc/pgbackrest/cert/client.key",
"pg2-host-type=tls",
"pg2-path=/var/lib/pgsql/12/data",
"",
"[demo-alt]",
"pg1-host=pg-alt",
"pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg1-host-key-file=/etc/pgbackrest/cert/client.key",
"pg1-host-type=tls",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"backup-standby=y",
"process-max=3",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=*",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"backup file pg-primary|replay on the standby"
]
},
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 2 lines of output]",
"P00 INFO: execute non-exclusive backup start: backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000070000000000000031, lsn = 0/31000028",
"P00 INFO: wait for replay on the standby to reach 0/31000028",
"P00 INFO: replay on the standby reached 0/31000028",
"P00 INFO: check archive for prior segment 000000070000000000000030",
"P01 DETAIL: backup file pg-primary:/var/lib/pgsql/12/data/global/pg_control (8KB, 0.34%) checksum 1c7efd19cbf84de2f410b4151d52bf31e19f1645",
"P02 DETAIL: backup file pg-standby:/var/lib/pgsql/12/data/base/13396/2608 (456KB, 19.77%) checksum fdf79152d7ad43993fd0e95f3ab99230b5456da9",
"P03 DETAIL: backup file pg-standby:/var/lib/pgsql/12/data/base/13396/1249 (440KB, 38.52%) checksum 80fa69c6255667377f0514d4931db96c0d023b6c",
"P04 DETAIL: backup file pg-standby:/var/lib/pgsql/12/data/base/13396/2674 (344KB, 53.18%) checksum 82b8cc51aae38a0a0b387a92a9bb094029a58456",
"P01 DETAIL: backup file pg-primary:/var/lib/pgsql/12/data/log/postgresql.log (6.1KB, 53.44%) checksum 9d278e8c055faca201c744359fa6e0b5764088b8",
"P01 DETAIL: backup file pg-primary:/var/lib/pgsql/12/data/pg_hba.conf (4.5KB, 53.63%) checksum 65e54ae24bda87b2542351cb16a7fecc7e5aceeb",
"P01 DETAIL: match file from prior backup pg-primary:/var/lib/pgsql/12/data/current_logfiles (26B, 53.63%) checksum 78a9f5c10960f0d91fcd313937469824861795a2",
"P01 DETAIL: match file from prior backup pg-primary:/var/lib/pgsql/12/data/pg_logical/replorigin_checkpoint (8B, 53.63%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532",
" [filtered 1298 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-12.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-12.service"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres /usr/pgsql-13/bin/initdb \\",
" -D /var/lib/pgsql/13/data -k -A peer"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sh -c 'cd /var/lib/pgsql && \\",
" /usr/pgsql-13/bin/pg_upgrade \\",
" --old-bindir=/usr/pgsql-12/bin \\",
" --new-bindir=/usr/pgsql-13/bin \\",
" --old-datadir=/var/lib/pgsql/12/data \\",
" --new-datadir=/var/lib/pgsql/13/data \\",
" --old-options=\" -c config_file=/var/lib/pgsql/12/data/postgresql.conf\" \\",
" --new-options=\" -c config_file=/var/lib/pgsql/13/data/postgresql.conf\"'"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Upgrade Complete"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 66 lines of output]",
"Checking for extension updates ok",
"",
"Upgrade Complete",
"----------------",
"Optimizer statistics are not transferred by pg_upgrade so,",
" [filtered 4 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cat /root/postgresql.common.conf >> /var/lib/pgsql/13/data/postgresql.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"file" : "/var/lib/pgsql/13/data/postgresql.conf",
"host" : "pg-primary",
"option" : {
"archive_command" : {
"value" : "'pgbackrest --stanza=demo archive-push %p'"
},
"archive_mode" : {
"value" : "on"
},
"log_filename" : {
"value" : "'postgresql.log'"
},
"max_wal_senders" : {
"value" : "3"
},
"wal_level" : {
"value" : "replica"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
"archive_mode = on",
"log_filename = 'postgresql.log'",
"max_wal_senders = 3",
"wal_level = replica"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/pgsql/13/data"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/13/data",
"",
"[global]",
"archive-async=y",
"log-level-file=detail",
"repo1-host=repository",
"repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"repo1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"repo1-host-key-file=/etc/pgbackrest/cert/client.key",
"repo1-host-type=tls",
"spool-path=/var/spool/pgbackrest",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=demo",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key",
"",
"[global:archive-get]",
"process-max=2",
"",
"[global:archive-push]",
"process-max=2"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-standby",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/pgsql/13/data"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/13/data",
"recovery-option=primary_conninfo=host=172.17.0.6 port=5432 user=replicator",
"",
"[global]",
"archive-async=y",
"log-level-file=detail",
"repo1-host=repository",
"repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"repo1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"repo1-host-key-file=/etc/pgbackrest/cert/client.key",
"repo1-host-type=tls",
"spool-path=/var/spool/pgbackrest",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=demo",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key",
"",
"[global:archive-get]",
"process-max=2",
"",
"[global:archive-push]",
"process-max=2"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/pgsql/13/data"
},
"pg2-path" : {
"value" : "/var/lib/pgsql/13/data"
}
},
"global" : {
"backup-standby" : {
"value" : "n"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg1-host-key-file=/etc/pgbackrest/cert/client.key",
"pg1-host-type=tls",
"pg1-path=/var/lib/pgsql/13/data",
"pg2-host=pg-standby",
"pg2-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg2-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg2-host-key-file=/etc/pgbackrest/cert/client.key",
"pg2-host-type=tls",
"pg2-path=/var/lib/pgsql/13/data",
"",
"[demo-alt]",
"pg1-host=pg-alt",
"pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg1-host-key-file=/etc/pgbackrest/cert/client.key",
"pg1-host-type=tls",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"backup-standby=n",
"process-max=3",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=*",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cp /var/lib/pgsql/12/data/pg_hba.conf \\",
" /var/lib/pgsql/13/data/pg_hba.conf"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --no-online \\",
" --log-level-console=info stanza-upgrade"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"completed successfully"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: stanza-upgrade command begin 2.52: --exec-id=5938-72f20868 --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --no-online --pg1-path=/var/lib/pgsql/13/data --repo1-host=repository --repo1-host-ca-file=/etc/pgbackrest/cert/ca.crt --repo1-host-cert-file=/etc/pgbackrest/cert/client.crt --repo1-host-key-file=/etc/pgbackrest/cert/client.key --repo1-host-type=tls --stanza=demo",
"P00 INFO: stanza-upgrade for stanza 'demo' on repo1",
"P00 INFO: stanza-upgrade command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-13.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres systemctl status postgresql-13.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo check"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm -rf /var/lib/pgsql/12/data"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm -rf /var/lib/pgsql/12/data"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres mkdir -p -m 700 /usr/pgsql-13/bin"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo check"
],
"host" : "repository",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 WARN: unable to check pg2: [DbConnectError] raised from remote-0 tls protocol on 'pg-standby': unable to connect to 'dbname='postgres' port=5432': could not connect to server: No such file or directory",
" \tIs the server running locally and accepting",
" \tconnections on Unix domain socket \"/run/postgresql/.s.PGSQL.5432\"?"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u pgbackrest pgbackrest --stanza=demo --type=full backup"
],
"host" : "repository",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=standby restore"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/var/lib/pgsql/13/data/postgresql.conf",
"host" : "pg-standby",
"option" : {
"hot_standby" : {
"value" : "on"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"hot_standby = on"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-13.service"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sleep 2"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo check"
],
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"global" : {
"backup-standby" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg1-host-key-file=/etc/pgbackrest/cert/client.key",
"pg1-host-type=tls",
"pg1-path=/var/lib/pgsql/13/data",
"pg2-host=pg-standby",
"pg2-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg2-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg2-host-key-file=/etc/pgbackrest/cert/client.key",
"pg2-host-type=tls",
"pg2-path=/var/lib/pgsql/13/data",
"",
"[demo-alt]",
"pg1-host=pg-alt",
"pg1-host-ca-file=/etc/pgbackrest/cert/ca.crt",
"pg1-host-cert-file=/etc/pgbackrest/cert/client.crt",
"pg1-host-key-file=/etc/pgbackrest/cert/client.key",
"pg1-host-type=tls",
"pg1-path=/var/lib/pgsql/12/data",
"",
"[global]",
"backup-standby=y",
"process-max=3",
"repo1-path=/var/lib/pgbackrest",
"repo1-retention-full=2",
"start-fast=y",
"tls-server-address=*",
"tls-server-auth=pgbackrest-client=*",
"tls-server-ca-file=/etc/pgbackrest/cert/ca.crt",
"tls-server-cert-file=/etc/pgbackrest/cert/server.crt",
"tls-server-key-file=/etc/pgbackrest/cert/server.key"
]
}
}
]
}
}
}