You've already forked pgbackrest
mirror of
https://github.com/pgbackrest/pgbackrest.git
synced 2026-04-24 20:55:52 +02:00
d50cfa9ee0
IMPORTANT NOTE: The minimum values for the repo-storage-upload-chunk-size option have increased. They now represent the minimum allowed by the vendors. Bug Fixes: * Fix deadlock due to logging in signal handler. (Fixed by Maxim Michkov. Reviewed by David Steele.) Features: * HTTP support for S3, GCS, and Azure. (Contributed by Will Morland. Reviewed by David Steele.) * Allow expiration of oldest full backup regardless of current retention. (Contributed by Stefan Fercot. Reviewed by David Steele. Suggested by Ron Johnson.) * Support for Azure managed identities. (Contributed by Moiz Ibrar, Matthew Mols. Reviewed by David Steele.) * Experimental support for S3 EKS pod identity. (Contributed by Pierre BOUTELOUP. Reviewed by David Steele.) * Allow configuration of TLS cipher suites. (Contributed by Gunnar "Nick" Bluth. Reviewed by David Steele.) * Allow process priority to be set. (Reviewed by Douglas J Hunley.) Improvements: * Allow dots in S3 bucket names when using path-style URIs. (Contributed by Joakim Hindersson. Reviewed by David Steele.) * Require TLS >= 1.2 unless verification is disabled. (Reviewed by Douglas J Hunley, Gunnar "Nick" Bluth.) * Dynamically size S3/GCS/Azure chunks for large uploads. (Reviewed by Douglas J Hunley. Suggested by Timothée Peignier.) * Optimize S3/GCS/Azure chunk size for small files. (Reviewed by Douglas J Hunley.) * Remove support for PostgreSQL 9.5. (Reviewed by Douglas J Hunley.) * Improve logging of default for options with an unresolved dependency. (Reviewed by Stefan Fercot.) Documentation Improvements: * Remove explicit max_wal_senders/wal_level configuration from user guide. (Suggested by Jamie Nguyen.) * Clarify that bundling is useful for filesystems with large block sizes. (Suggested by Ron Johnson.)
13781 lines
540 KiB
Plaintext
13781 lines
540 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" : "u22",
|
|
"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 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: 83 tests selected",
|
|
" ",
|
|
"P00 INFO: P1-T01/83 - vm=none, module=common, test=error",
|
|
" [filtered 80 lines of output]",
|
|
"P00 INFO: P1-T82/83 - vm=none, module=performance, test=type",
|
|
"P00 INFO: P1-T83/83 - 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 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.58.0: [common/wait] --log-level=info --no-log-timestamp --repo-path=/home/vagrant/test/repo --scale=1 --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",
|
|
" ",
|
|
" run 1/5 ----- L0090 waitRemainder()",
|
|
" L0092 new wait = 500ms",
|
|
" L0093 check initial wait remainder",
|
|
" L0094 check initial wait remainder",
|
|
" L0098 check updated wait remainder",
|
|
" L0099 check updated wait remainder",
|
|
" ",
|
|
" TESTS COMPLETED SUCCESSFULLY",
|
|
"",
|
|
"P00 INFO: P1-T1/1 - vm=none, module=common, test=wait",
|
|
"P00 INFO: tested modules have full coverage",
|
|
"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 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: TESTS COMPLETED SUCCESSFULLY"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"pgbackrest/test/test.pl --vm-build --vm=u22"
|
|
],
|
|
"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:u22-base-x86_64-20260119A image (8ee008aecbcf21b205116969db4000838c989a4a) ...",
|
|
"P00 INFO: Building pgbackrest/test:u22-test-x86_64 image ...",
|
|
"P00 INFO: Build Complete"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"pgbackrest/test/test.pl --vm=u22 --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 code",
|
|
"P00 INFO: clean build for u22 (/home/vagrant/test/build/u22)",
|
|
"P00 INFO: 1 test selected",
|
|
" ",
|
|
"P00 INFO: P1-T1/1 - vm=u22, module=postgres, test=interface, run=2",
|
|
"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 --skipApiVersionCheck",
|
|
"update-hosts" : false
|
|
},
|
|
"type" : "host",
|
|
"value" : {
|
|
"ip" : "172.17.0.2"
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"id" : "s3",
|
|
"image" : "minio/minio",
|
|
"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",
|
|
"os" : "debian",
|
|
"update-hosts" : true
|
|
},
|
|
"type" : "host",
|
|
"value" : {
|
|
"ip" : "172.17.0.4"
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"id" : "build",
|
|
"image" : "pgbackrest/doc:debian",
|
|
"name" : "build",
|
|
"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.58.0"
|
|
],
|
|
"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.58.0"
|
|
],
|
|
"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.58.0"
|
|
],
|
|
"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",
|
|
"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.58.0 - 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 a repository",
|
|
" version get version",
|
|
"",
|
|
"Use 'pgbackrest help [command]' for more information."
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"Configuring already existing cluster (configuration: /etc/postgresql/16/demo, data: /var/lib/postgresql/16/demo, owner: 102:103)",
|
|
"Ver Cluster Port Status Owner Data directory Log file",
|
|
"16 demo 5432 down postgres /var/lib/postgresql/16/demo /var/log/postgresql/postgresql-16-demo.log"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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/pgbackrest/pgbackrest.conf",
|
|
"host" : "pg-primary",
|
|
"option" : {
|
|
"demo" : {
|
|
"pg1-path" : {
|
|
"value" : "/var/lib/postgresql/16/demo"
|
|
}
|
|
},
|
|
"global" : {
|
|
"log-timestamp" : {
|
|
"value" : "n"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo]",
|
|
"pg1-path=/var/lib/postgresql/16/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.58.0 - '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/16/demo",
|
|
"",
|
|
"[global]",
|
|
"repo1-path=/var/lib/pgbackrest"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-postgresql",
|
|
"value" : {
|
|
"config" : [
|
|
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
|
|
"archive_mode = on"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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/16/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/16/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/16/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.58.0: --exec-id=1060-8b7025bb --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/16/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.58.0: --exec-id=1069-d864650d --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/16/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/16-1/0000000100000000/000000010000000000000001-b2bbfb2253a998ecb763348c553b8d2c8a31ca0b.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/16/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.58.0: --exec-id=1097-1bd2b5f6 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/16/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 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 = 20260119-092813F",
|
|
"P00 INFO: full backup size = 22MB, file total = 963",
|
|
"P00 INFO: backup command end: completed successfully",
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=1097-1bd2b5f6 --log-level-console=info --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" : [
|
|
"20260119-092813F"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 = 20260119-092813F_20260119-092815D",
|
|
"P00 INFO: diff backup size = 8.3KB, file total = 963",
|
|
"P00 INFO: backup command end: completed successfully",
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=1124-89578f42 --log-level-console=info --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 (16): 000000010000000000000001/000000010000000000000005",
|
|
"",
|
|
" full backup: 20260119-092813F",
|
|
" timestamp start/stop: 2026-01-19 09:28:13+00 / 2026-01-19 09:28:15+00",
|
|
" wal start/stop: 000000010000000000000002 / 000000010000000000000003",
|
|
" database size: 22MB, database backup size: 22MB",
|
|
" repo1: backup set size: 2.9MB, backup size: 2.9MB",
|
|
"",
|
|
" diff backup: 20260119-092813F_20260119-092815D",
|
|
" timestamp start/stop: 2026-01-19 09:28:15+00 / 2026-01-19 09:28:16+00",
|
|
" wal start/stop: 000000010000000000000004 / 000000010000000000000005",
|
|
" database size: 22MB, database backup size: 8.3KB",
|
|
" repo1: backup set size: 2.9MB, backup size: 448B",
|
|
" backup reference total: 1 full"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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/16/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 16 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/16/bin/pg_ctl /usr/lib/postgresql/16/bin/pg_ctl start -D /var/lib/postgresql/16/demo -l /var/log/postgresql/postgresql-16-demo.log -s -o -c config_file=\"/etc/postgresql/16/demo/postgresql.conf\" exited with status 1: ",
|
|
"postgres: could not find the database system",
|
|
"Expected to find it in the directory \"/var/lib/postgresql/16/demo\",",
|
|
"but could not open file \"/var/lib/postgresql/16/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/16/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 16 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\" | 2026-01-19 09:28:16+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" : [
|
|
"1768814896"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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/16/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/16/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" : [
|
|
"20260119-092829F"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo --set=20260119-092829F 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 (16): 000000020000000000000007/000000020000000000000009",
|
|
"",
|
|
" full backup: 20260119-092829F",
|
|
" timestamp start/stop: 2026-01-19 09:28:29+00 / 2026-01-19 09:28:30+00",
|
|
" wal start/stop: 000000020000000000000008 / 000000020000000000000009",
|
|
" lsn start/stop: 0/8000028 / 0/9000050",
|
|
" database size: 22MB, database backup size: 22MB",
|
|
" 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=20260119-092829F \\",
|
|
" --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=20260119-092829F 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 (16): 000000020000000000000007/000000020000000000000009",
|
|
"",
|
|
" full backup: 20260119-092829F",
|
|
" timestamp start/stop: 2026-01-19 09:28:29+00 / 2026-01-19 09:28:30+00",
|
|
" wal start/stop: 000000020000000000000008 / 000000020000000000000009",
|
|
" lsn start/stop: 0/8000028 / 0/9000050",
|
|
" database size: 22MB, database backup size: 22MB",
|
|
" 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/16/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 20260119-092813F|remove archive"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
" [filtered 975 lines of output]",
|
|
"P00 INFO: repo1: remove expired backup 20260119-092827F",
|
|
"P00 DETAIL: repo1: 16-1 archive retention on backup 20260119-092829F, start = 000000020000000000000008",
|
|
"P00 INFO: repo1: 16-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" : [
|
|
"20260119-092831F"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 20260119-092813F|archive retention on backup 20260119-092831F|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 20260119-092829F",
|
|
"P00 INFO: repo1: remove expired backup 20260119-092829F",
|
|
"P00 INFO: repo1: 16-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/16/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" : [
|
|
"20260119-092833F_20260119-092835D"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 20260119-092833F_20260119-092835D"
|
|
]
|
|
},
|
|
"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.58.0: --exec-id=1601-86e69e59 --log-level-console=info --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 20260119-092833F_20260119-092835D, 20260119-092833F_20260119-092836I",
|
|
"P00 INFO: repo1: remove expired backup 20260119-092833F_20260119-092836I",
|
|
"P00 INFO: repo1: remove expired backup 20260119-092833F_20260119-092835D",
|
|
"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/16/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" : [
|
|
"20260119-092833F_20260119-092837D"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 = 20260119-092833F_20260119-092839D",
|
|
"P00 INFO: diff backup size = 8.3KB, file total = 963",
|
|
"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" : [
|
|
"20260119-092833F_20260119-092839D"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 20260119-092833F_20260119-092837D|remove archive"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=1685-5edd5b29 --log-level-console=detail --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: 16-1 archive retention on backup 20260119-092831F, start = 00000002000000000000000A, stop = 00000002000000000000000B",
|
|
"P00 DETAIL: repo1: 16-1 archive retention on backup 20260119-092833F, start = 00000002000000000000000C, stop = 00000002000000000000000D",
|
|
"P00 DETAIL: repo1: 16-1 archive retention on backup 20260119-092833F_20260119-092837D, start = 000000020000000000000012, stop = 000000020000000000000013",
|
|
"P00 DETAIL: repo1: 16-1 archive retention on backup 20260119-092833F_20260119-092839D, start = 000000020000000000000016",
|
|
"P00 INFO: repo1: 16-1 remove archive, start = 00000002000000000000000E, stop = 000000020000000000000011",
|
|
"P00 INFO: repo1: 16-1 remove archive, start = 000000020000000000000014, stop = 000000020000000000000015",
|
|
"P00 INFO: expire command end: completed successfully"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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/16/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/16/demo'",
|
|
"P00 DETAIL: remove invalid file '/var/lib/postgresql/16/demo/backup_label.old'",
|
|
"P00 DETAIL: remove invalid file '/var/lib/postgresql/16/demo/base/1/pg_internal.init'",
|
|
" [filtered 769 lines of output]",
|
|
"P01 DETAIL: restore file /var/lib/postgresql/16/demo/base/1/113 - exists and matches backup (bundle 20260119-092833F/1/2736168, 8KB, 88.04%) checksum 9bbd4f25b106d88a2c938f5c0d57c390e7ca9d63",
|
|
"P01 DETAIL: restore file /var/lib/postgresql/16/demo/base/1/112 - exists and matches backup (bundle 20260119-092833F/1/2736256, 8KB, 88.08%) checksum 482d3ba07134400f1f78d634db79caf025cbd7a5",
|
|
"P01 DETAIL: restore file /var/lib/postgresql/16/demo/PG_VERSION - exists and matches backup (bundle 20260119-092833F/1/2736344, 3B, 88.08%) checksum 3596ea087bfdaf52380eae441077572ed289d657",
|
|
"P01 DETAIL: restore file /var/lib/postgresql/16/demo/base/5/2608_fsm - exists and matches backup (bundle 20260119-092833F/1/2736368, 24KB, 88.18%) checksum cd30d4d0be58b99bf5929fb2c3afc2550f710741",
|
|
"P01 DETAIL: restore file /var/lib/postgresql/16/demo/postgresql.auto.conf - exists and matches backup (bundle 20260119-092833F/1/2736608, 229B, 88.18%) checksum abe90322c61a48f660b6b471e0bc12fc9aa21780",
|
|
" [filtered 232 lines of output]"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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/16/demo/base/32768"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"7.4M\t/var/lib/postgresql/16/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" : [
|
|
"20260119-092833F_20260119-092846I"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo \\",
|
|
" --set=20260119-092833F_20260119-092846I 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: 2MB",
|
|
" backup reference list: 20260119-092833F, 20260119-092833F_20260119-092839D",
|
|
" database list: postgres (5), test1 (32768), test2 (32769)"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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 16 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/16/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/16/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" : [
|
|
"2026-01-19 09:28:56.893848+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" : [
|
|
"20260119-092833F_20260119-092858I"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest info"
|
|
],
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
"20260119-092833F_20260119-092858I"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
" [filtered 38 lines of output]",
|
|
" backup reference total: 1 full, 1 diff",
|
|
"",
|
|
" incr backup: 20260119-092833F_20260119-092858I",
|
|
" timestamp start/stop: 2026-01-19 09:28:58+00 / 2026-01-19 09:28:59+00",
|
|
" wal start/stop: 00000004000000000000001A / 00000004000000000000001A",
|
|
" [filtered 2 lines of output]"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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=20260119-092833F_20260119-092858I --target-timeline=current \\",
|
|
" --type=time \"--target=2026-01-19 09:28:56.893848+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-16-demo.log"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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.02 s",
|
|
"FATAL: recovery ended before configured recovery target was reached",
|
|
"LOG: startup process (PID 2087) 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=2026-01-19 09:28:56.893848+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-16-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/16/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 2026-01-19 09:29:01",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"recovery_target_time = '2026-01-19 09:28:56.893848+00'",
|
|
"recovery_target_action = 'promote'"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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-16-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 2026-01-19 09:28:46 UTC",
|
|
"LOG: restored log file \"00000004.history\" from archive",
|
|
"LOG: starting point-in-time recovery to 2026-01-19 09:28:56.893848+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 740, time 2026-01-19 09:28:58.178129+00",
|
|
"LOG: redo done at 0/19026050 system usage: CPU: user: 0.00 s, system: 0.01 s, elapsed: 0.08 s",
|
|
"LOG: last completed transaction was at log time 2026-01-19 09:28:55.619384+00",
|
|
"LOG: restored log file \"000000040000000000000019\" from archive",
|
|
"LOG: selected new timeline ID: 5",
|
|
" [filtered 5 lines of output]"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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.58.0: --exec-id=2218-8ca4f1b4 --log-level-console=info --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.58.0: --exec-id=2226-48f6922d --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/16/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 16 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" : {
|
|
"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/16/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",
|
|
"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 bash -c 'export AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1;az storage container create -n demo-container \\",
|
|
" --connection-string \"DefaultEndpointsProtocol=https;AccountName=pgbackrest;AccountKey=YXpLZXk=\" \\",
|
|
" 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 --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.58.0: --exec-id=2308-b4d7b69d --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/16/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.58.0: --exec-id=2317-4e42a3a2 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/16/demo --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 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 = 20260119-092914F",
|
|
"P00 INFO: full backup size = 29.2MB, file total = 1265",
|
|
"P00 INFO: backup command end: completed successfully",
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=2317-4e42a3a2 --log-level-console=info --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" : {
|
|
"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/16/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",
|
|
"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" : [
|
|
"mc --insecure alias set s3 https://127.0.0.1 accessKey1 verySecretKey1"
|
|
],
|
|
"host" : "s3-server",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : "root"
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"mc --insecure mb --with-versioning s3/demo-bucket"
|
|
],
|
|
"host" : "s3-server",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : "root"
|
|
},
|
|
"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.58.0: --exec-id=2369-53f55626 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/16/demo --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 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 = 20260119-092920F",
|
|
"P00 INFO: full backup size = 29.2MB, file total = 1265",
|
|
"P00 INFO: backup command end: completed successfully",
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=2369-53f55626 --log-level-console=info --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" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres psql -Atc \"select date_trunc('seconds', current_timestamp)\""
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"2026-01-19 09:29:25+00"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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/16/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.58.0: --exec-id=2456-cb9d7447 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/16/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 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 = 20260119-092928F",
|
|
"P00 INFO: full backup size = 29.2MB, file total = 1265",
|
|
"P00 INFO: backup command end: completed successfully",
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=2456-cb9d7447 --log-level-console=info --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" : {
|
|
"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/16/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" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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 stop"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"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 pgbackrest --stanza=demo --repo=3 stanza-delete"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo --repo=3 info"
|
|
],
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
"missing stanza data"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"stanza: demo",
|
|
" status: error (missing stanza data)",
|
|
" cipher: none"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"mc ls --versions s3/demo-bucket/demo-repo/backup/demo/backup.info"
|
|
],
|
|
"cmd-extra" : "--insecure",
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
"backup\\.info$"
|
|
]
|
|
},
|
|
"host" : "s3-server",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : "root"
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"[2026-01-19 09:29:33 UTC] 0B STANDARD e60f13be-eb40-4101-a5f4-a733ec515b72 v3 DEL backup.info",
|
|
"[2026-01-19 09:29:25 UTC] 1.0KiB STANDARD 6c12779b-6620-4c0d-b185-9d4a73fa76e3 v2 PUT backup.info",
|
|
"[2026-01-19 09:29:20 UTC] 372B STANDARD cd7d190f-8734-4fd7-a188-cfab6ed47edc v1 PUT backup.info",
|
|
"[2026-01-19 09:29:33 UTC] 0B STANDARD 90efc3d6-9b35-424a-bc43-63ec11104bba v3 DEL backup.info.copy",
|
|
"[2026-01-19 09:29:25 UTC] 1.0KiB STANDARD a1929d2f-d190-4b23-b528-234df9f367cc v2 PUT backup.info.copy"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo --repo=3 \\",
|
|
" --repo-target-time=\"2026-01-19 09:29:25+00\" info"
|
|
],
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
"full backup"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
" [filtered 5 lines of output]",
|
|
" wal archive min/max (16): 00000005000000000000001C/00000005000000000000001D",
|
|
"",
|
|
" full backup: 20260119-092920F",
|
|
" timestamp start/stop: 2026-01-19 09:29:20+00 / 2026-01-19 09:29:25+00",
|
|
" wal start/stop: 00000005000000000000001C / 00000005000000000000001D",
|
|
" repo3: backup set size: 3.9MB, backup size: 3.9MB"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo --repo=3 --delta \\",
|
|
" --repo-target-time=\"2026-01-19 09:29:25+00\" --log-level-console=info restore"
|
|
],
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
" restore backup set "
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"P00 INFO: restore command begin 2.58.0: --delta --exec-id=2539-eda692fe --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/postgresql/16/demo --process-max=4 --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 --repo5-gcs-bucket=demo-bucket --repo5-gcs-key=<redacted> --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo5-path=/demo-repo --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 --repo-target-time=\"2026-01-19 09:29:25+00\" --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --repo5-type=gcs --stanza=demo",
|
|
"P00 INFO: repo3: restore backup set 20260119-092920F, recovery will start at 2026-01-19 09:29:20",
|
|
"P00 INFO: remove invalid files/links/paths from '/var/lib/postgresql/16/demo'",
|
|
"P00 INFO: write updated /var/lib/postgresql/16/demo/postgresql.auto.conf",
|
|
" [filtered 2 lines of output]"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 demo start"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"id" : "repo1",
|
|
"image" : "pgbackrest/doc:debian",
|
|
"name" : "repository",
|
|
"option" : "-m 512m",
|
|
"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/16/demo"
|
|
}
|
|
},
|
|
"global" : {
|
|
"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/16/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/16/demo"
|
|
}
|
|
},
|
|
"global" : {
|
|
"log-level-file" : {
|
|
"value" : "detail"
|
|
},
|
|
"log-timestamp" : {
|
|
"value" : "n"
|
|
},
|
|
"repo1-host" : {
|
|
"value" : "repository"
|
|
}
|
|
}
|
|
},
|
|
"reset" : true
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo]",
|
|
"pg1-path=/var/lib/postgresql/16/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 16 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 16 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/16/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 (16): 000000070000000000000023/000000070000000000000025",
|
|
"",
|
|
" full backup: 20260119-093003F",
|
|
" timestamp start/stop: 2026-01-19 09:30:03+00 / 2026-01-19 09:30:06+00",
|
|
" wal start/stop: 000000070000000000000023 / 000000070000000000000023",
|
|
" database size: 29.2MB, database backup size: 29.2MB",
|
|
" repo1: backup set size: 3.9MB, backup size: 3.9MB",
|
|
"",
|
|
" full backup: 20260119-093007F",
|
|
" timestamp start/stop: 2026-01-19 09:30:07+00 / 2026-01-19 09:30:11+00",
|
|
" wal start/stop: 000000070000000000000024 / 000000070000000000000025",
|
|
" database size: 29.2MB, database backup size: 29.2MB",
|
|
" 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",
|
|
"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/16/demo"
|
|
}
|
|
},
|
|
"global" : {
|
|
"log-level-file" : {
|
|
"value" : "detail"
|
|
},
|
|
"log-timestamp" : {
|
|
"value" : "n"
|
|
},
|
|
"repo1-host" : {
|
|
"value" : "repository"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo]",
|
|
"pg1-path=/var/lib/postgresql/16/demo",
|
|
"",
|
|
"[global]",
|
|
"log-level-file=detail",
|
|
"repo1-host=repository"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 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/16/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 2026-01-19 09:28:18",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:28:41",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:29:01",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"# Removed by pgBackRest restore on 2026-01-19 09:29:35 # recovery_target_time = '2026-01-19 09:28:56.893848+00'",
|
|
"# Removed by pgBackRest restore on 2026-01-19 09:29:35 # recovery_target_action = 'promote'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:29:35",
|
|
"restore_command = 'pgbackrest --repo=3 --repo-target-time=\"2026-01-19 09:29:25+00\" --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:29:57",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:30:25",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"cat /root/postgresql.common.conf >> /etc/postgresql/16/demo/postgresql.conf"
|
|
],
|
|
"host" : "pg-standby",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : "root"
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"file" : "/etc/postgresql/16/demo/postgresql.conf",
|
|
"host" : "pg-standby",
|
|
"option" : {
|
|
"archive_command" : {
|
|
"value" : "'pgbackrest --stanza=demo archive-push %p'"
|
|
},
|
|
"archive_mode" : {
|
|
"value" : "on"
|
|
},
|
|
"hot_standby" : {
|
|
"value" : "on"
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-postgresql",
|
|
"value" : {
|
|
"config" : [
|
|
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
|
|
"archive_mode = on",
|
|
"hot_standby = on"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo rm /var/log/postgresql/postgresql-16-demo.log"
|
|
],
|
|
"host" : "pg-standby",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"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 cat /var/log/postgresql/postgresql-16-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 2026-01-19 09:30:07 UTC",
|
|
"LOG: entering standby mode",
|
|
"LOG: starting backup recovery with redo LSN 0/24000028, checkpoint LSN 0/24000060, on timeline ID 7",
|
|
"LOG: restored log file \"00000007.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/2601A870 | 2026-01-19 09:30:32.338412+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 | 2026-01-19 09:30:33.80566+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.58.0: --exec-id=1159-e47628bc --log-level-console=info --log-level-file=detail --no-log-timestamp --pg1-path=/var/lib/postgresql/16/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/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 pg_ctlcluster 16 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/16/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 16 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/16/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 2026-01-19 09:28:18",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:28:41",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:29:01",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"# Removed by pgBackRest restore on 2026-01-19 09:29:35 # recovery_target_time = '2026-01-19 09:28:56.893848+00'",
|
|
"# Removed by pgBackRest restore on 2026-01-19 09:29:35 # recovery_target_action = 'promote'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:29:35",
|
|
"restore_command = 'pgbackrest --repo=3 --repo-target-time=\"2026-01-19 09:29:25+00\" --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:29:57",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:30:36",
|
|
"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-16-demo.log"
|
|
],
|
|
"host" : "pg-standby",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"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 cat /var/log/postgresql/postgresql-16-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/25000050",
|
|
"LOG: database system is ready to accept read-only connections",
|
|
"LOG: started streaming WAL from primary at 0/27000000 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" : [
|
|
" [filtered 4 lines of output]",
|
|
" message | current_timestamp ",
|
|
"----------------+-------------------------------",
|
|
" Important Data | 2026-01-19 09:30:43.211099+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 | 2026-01-19 09:30:43.388694+00",
|
|
"(1 row)"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"id" : "pgalt",
|
|
"image" : "pgbackrest/doc:debian",
|
|
"name" : "pg-alt",
|
|
"option" : "-m 512m",
|
|
"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/16/demo"
|
|
}
|
|
},
|
|
"global" : {
|
|
"log-level-file" : {
|
|
"value" : "detail"
|
|
},
|
|
"log-timestamp" : {
|
|
"value" : "n"
|
|
},
|
|
"repo1-host" : {
|
|
"value" : "repository"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo-alt]",
|
|
"pg1-path=/var/lib/postgresql/16/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/16/demo"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo]",
|
|
"pg1-host=pg-primary",
|
|
"pg1-path=/var/lib/postgresql/16/demo",
|
|
"",
|
|
"[demo-alt]",
|
|
"pg1-host=pg-alt",
|
|
"pg1-path=/var/lib/postgresql/16/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/16/bin/initdb \\",
|
|
" -D /var/lib/postgresql/16/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 16 demo"
|
|
],
|
|
"host" : "pg-alt",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"Configuring already existing cluster (configuration: /etc/postgresql/16/demo, data: /var/lib/postgresql/16/demo, owner: 102:103)",
|
|
"Ver Cluster Port Status Owner Data directory Log file",
|
|
"16 demo 5432 down postgres /var/lib/postgresql/16/demo /var/log/postgresql/postgresql-16-demo.log"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"cat /root/postgresql.common.conf >> /etc/postgresql/16/demo/postgresql.conf"
|
|
],
|
|
"host" : "pg-alt",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : "root"
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"file" : "/etc/postgresql/16/demo/postgresql.conf",
|
|
"host" : "pg-alt",
|
|
"option" : {
|
|
"archive_command" : {
|
|
"value" : "'pgbackrest --stanza=demo-alt archive-push %p'"
|
|
},
|
|
"archive_mode" : {
|
|
"value" : "on"
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-postgresql",
|
|
"value" : {
|
|
"config" : [
|
|
"archive_command = 'pgbackrest --stanza=demo-alt archive-push %p'",
|
|
"archive_mode = on"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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.58.0: --exec-id=1027-863103d1 --log-level-console=info --log-level-file=detail --no-log-timestamp --pg1-path=/var/lib/postgresql/16/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.58.0: --exec-id=1037-dcb84d90 --log-level-console=info --log-level-file=detail --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/16-1/0000000100000000/000000010000000000000001-d581f9c024aa57fd11caaf7b1d0142d6eb7e6c98.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.58.0: --exec-id=1919-952717d9 --log-level-console=info --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 000000070000000000000027 successfully archived to '/var/lib/pgbackrest/archive/demo/16-1/0000000700000000/000000070000000000000027-943c372700ab056ed6f01bd2fe5cc4b05f22be52.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/16-1/0000000100000000/000000010000000000000002-74201c5f0512a2313d44b325bc97b774ada813e2.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/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" : {
|
|
"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/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" : {
|
|
"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 16 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.58.0: --exec-id=3183-d3ffb6cd --log-level-console=info --log-level-file=detail --no-log-timestamp --pg1-path=/var/lib/postgresql/16/demo --repo1-host=repository --stanza=demo",
|
|
"P00 INFO: check repo1 configuration (primary)",
|
|
"P00 INFO: check repo1 archive for WAL (primary)",
|
|
"P00 INFO: WAL segment 00000007000000000000002D successfully archived to '/var/lib/pgbackrest/archive/demo/16-1/0000000700000000/00000007000000000000002D-b22834a2d3306ded7a39c8982af40c38d01d1595.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.58.0: [/var/lib/postgresql/16/demo/pg_wal] --archive-async --exec-id=3169-08eec32e --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/16/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
|
|
"P00 INFO: push 1 WAL file(s) to archive: 000000070000000000000028",
|
|
"P01 DETAIL: pushed WAL file '000000070000000000000028' to the archive",
|
|
"P00 INFO: archive-push:async command end: completed successfully",
|
|
"",
|
|
"-------------------PROCESS START-------------------",
|
|
"P00 INFO: archive-push:async command begin 2.58.0: [/var/lib/postgresql/16/demo/pg_wal] --archive-async --exec-id=3187-9a196906 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/16/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
|
|
"P00 INFO: push 5 WAL file(s) to archive: 000000070000000000000029...00000007000000000000002D",
|
|
"P02 DETAIL: pushed WAL file '00000007000000000000002A' to the archive",
|
|
"P01 DETAIL: pushed WAL file '000000070000000000000029' to the archive",
|
|
"P01 DETAIL: pushed WAL file '00000007000000000000002C' to the archive",
|
|
"P02 DETAIL: pushed WAL file '00000007000000000000002B' to the archive",
|
|
"P01 DETAIL: pushed WAL file '00000007000000000000002D' to the archive",
|
|
"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.58.0: [000000070000000000000024, 000000070000000000000025, 000000070000000000000026, 000000070000000000000027, 000000070000000000000028, 000000070000000000000029, 00000007000000000000002A, 00000007000000000000002B] --archive-async --exec-id=1380-8760a6e0 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/16/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
|
|
"P00 INFO: get 8 WAL file(s) from archive: 000000070000000000000024...00000007000000000000002B",
|
|
"P01 DETAIL: found 000000070000000000000024 in the repo1: 16-1 archive",
|
|
"P02 DETAIL: found 000000070000000000000025 in the repo1: 16-1 archive",
|
|
"P01 DETAIL: found 000000070000000000000026 in the repo1: 16-1 archive",
|
|
"P02 DETAIL: found 000000070000000000000027 in the repo1: 16-1 archive",
|
|
"P00 DETAIL: unable to find 000000070000000000000028 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.58.0: [000000070000000000000028, 000000070000000000000029, 00000007000000000000002A, 00000007000000000000002B, 00000007000000000000002C, 00000007000000000000002D, 00000007000000000000002E, 00000007000000000000002F] --archive-async --exec-id=1431-a78c4f0a --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/16/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
|
|
"P00 INFO: get 8 WAL file(s) from archive: 000000070000000000000028...00000007000000000000002F",
|
|
"P02 DETAIL: found 000000070000000000000029 in the repo1: 16-1 archive",
|
|
"P01 DETAIL: found 000000070000000000000028 in the repo1: 16-1 archive",
|
|
"P02 DETAIL: found 00000007000000000000002A in the repo1: 16-1 archive",
|
|
"P01 DETAIL: found 00000007000000000000002B in the repo1: 16-1 archive",
|
|
"P02 DETAIL: found 00000007000000000000002C in the repo1: 16-1 archive",
|
|
"P01 DETAIL: found 00000007000000000000002D in the repo1: 16-1 archive",
|
|
"P00 DETAIL: unable to find 00000007000000000000002E 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/16/demo"
|
|
}
|
|
},
|
|
"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/16/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 backup start: backup begins after the requested immediate checkpoint completes",
|
|
"P00 INFO: backup start archive = 00000007000000000000002F, lsn = 0/2F000028",
|
|
"P00 INFO: wait for replay on the standby to reach 0/2F000028",
|
|
"P00 INFO: replay on the standby reached 0/2F000028",
|
|
"P00 INFO: check archive for prior segment 00000007000000000000002E",
|
|
"P01 DETAIL: backup file pg-primary:/var/lib/postgresql/16/demo/global/pg_control (8KB, 0.53%) checksum c9b694b7e3af23be6834c24b23bb1a43d8fb22f4",
|
|
"P01 DETAIL: match file from prior backup pg-primary:/var/lib/postgresql/16/demo/pg_logical/replorigin_checkpoint (8B, 0.53%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532",
|
|
"P02 DETAIL: backup file pg-standby:/var/lib/postgresql/16/demo/base/5/1249 (464KB, 31.38%) checksum c32e73e05783bcad1a0107e7b5462117b2906d5e",
|
|
" [filtered 1278 lines of output]"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 demo stop"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_ctlcluster 16 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/17/bin/initdb \\",
|
|
" -D /var/lib/postgresql/17/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 17 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/17/bin/pg_upgrade \\",
|
|
" --old-bindir=/usr/lib/postgresql/16/bin \\",
|
|
" --new-bindir=/usr/lib/postgresql/17/bin \\",
|
|
" --old-datadir=/var/lib/postgresql/16/demo \\",
|
|
" --new-datadir=/var/lib/postgresql/17/demo \\",
|
|
" --old-options=\" -c config_file=/etc/postgresql/16/demo/postgresql.conf\" \\",
|
|
" --new-options=\" -c config_file=/etc/postgresql/17/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 41 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/17/demo/postgresql.conf"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : "root"
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"file" : "/etc/postgresql/17/demo/postgresql.conf",
|
|
"host" : "pg-primary",
|
|
"option" : {
|
|
"archive_command" : {
|
|
"value" : "'pgbackrest --stanza=demo archive-push %p'"
|
|
},
|
|
"archive_mode" : {
|
|
"value" : "on"
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-postgresql",
|
|
"value" : {
|
|
"config" : [
|
|
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
|
|
"archive_mode = on"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"file" : "/etc/pgbackrest/pgbackrest.conf",
|
|
"host" : "pg-primary",
|
|
"option" : {
|
|
"demo" : {
|
|
"pg1-path" : {
|
|
"value" : "/var/lib/postgresql/17/demo"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo]",
|
|
"pg1-path=/var/lib/postgresql/17/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/17/demo"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo]",
|
|
"pg1-path=/var/lib/postgresql/17/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/17/demo"
|
|
},
|
|
"pg2-path" : {
|
|
"value" : "/var/lib/postgresql/17/demo"
|
|
}
|
|
},
|
|
"global" : {
|
|
"backup-standby" : {
|
|
"value" : "n"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo]",
|
|
"pg1-host=pg-primary",
|
|
"pg1-path=/var/lib/postgresql/17/demo",
|
|
"pg2-host=pg-standby",
|
|
"pg2-path=/var/lib/postgresql/17/demo",
|
|
"",
|
|
"[demo-alt]",
|
|
"pg1-host=pg-alt",
|
|
"pg1-path=/var/lib/postgresql/16/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/16/demo/pg_hba.conf \\",
|
|
" /etc/postgresql/17/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.58.0: --exec-id=3590-c2882bfe --log-level-console=info --log-level-file=detail --no-log-timestamp --no-online --pg1-path=/var/lib/postgresql/17/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 17 demo start"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo 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 16 demo"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_dropcluster 16 demo"
|
|
],
|
|
"host" : "pg-standby",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo pg_createcluster 17 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/17/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 17 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/17/demo",
|
|
"pg2-host=pg-standby",
|
|
"pg2-path=/var/lib/postgresql/17/demo",
|
|
"",
|
|
"[demo-alt]",
|
|
"pg1-host=pg-alt",
|
|
"pg1-path=/var/lib/postgresql/16/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 --skipApiVersionCheck",
|
|
"update-hosts" : false
|
|
},
|
|
"type" : "host",
|
|
"value" : {
|
|
"ip" : "172.17.0.2"
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"id" : "s3",
|
|
"image" : "minio/minio",
|
|
"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",
|
|
"os" : "rhel",
|
|
"update-hosts" : true
|
|
},
|
|
"type" : "host",
|
|
"value" : {
|
|
"ip" : "172.17.0.4"
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"id" : "build",
|
|
"image" : "pgbackrest/doc:rhel",
|
|
"name" : "build",
|
|
"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.58.0"
|
|
],
|
|
"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.58.0"
|
|
],
|
|
"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 meson gcc postgresql13-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" : [
|
|
"meson setup /build/pgbackrest /build/pgbackrest-release-2.58.0"
|
|
],
|
|
"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:rhel",
|
|
"name" : "pg-primary",
|
|
"option" : "-m 512m",
|
|
"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/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.58.0 - 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 a repository",
|
|
" version get version",
|
|
"",
|
|
"Use 'pgbackrest help [command]' for more information."
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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" : [
|
|
"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" : {
|
|
"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/13/data"
|
|
}
|
|
},
|
|
"global" : {
|
|
"log-timestamp" : {
|
|
"value" : "n"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo]",
|
|
"pg1-path=/var/lib/pgsql/13/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.58.0 - '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/13/data",
|
|
"",
|
|
"[global]",
|
|
"repo1-path=/var/lib/pgbackrest"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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"
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-postgresql",
|
|
"value" : {
|
|
"config" : [
|
|
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
|
|
"archive_mode = on",
|
|
"log_filename = 'postgresql.log'"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl restart 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 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/13/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/13/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/13/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.58.0: --exec-id=1001-c0a11b26 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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.58.0: --exec-id=1029-7fad2b46 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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/13-1/0000000100000000/000000010000000000000001-7f6faa2bdee862515d964b0dac87805c5f762965.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/13/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.58.0: --exec-id=1102-82fc2007 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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 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 = 20260119-092100F",
|
|
"P00 INFO: full backup size = 23.2MB, file total = 936",
|
|
"P00 INFO: backup command end: completed successfully",
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=1102-82fc2007 --log-level-console=info --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" : [
|
|
"20260119-092100F"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 = 20260119-092100F_20260119-092102D",
|
|
"P00 INFO: diff backup size = 9.1KB, file total = 936",
|
|
"P00 INFO: backup command end: completed successfully",
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=1163-a7659621 --log-level-console=info --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 (13): 000000010000000000000001/000000010000000000000005",
|
|
"",
|
|
" full backup: 20260119-092100F",
|
|
" timestamp start/stop: 2026-01-19 09:21:00+00 / 2026-01-19 09:21:02+00",
|
|
" wal start/stop: 000000010000000000000002 / 000000010000000000000003",
|
|
" database size: 23.2MB, database backup size: 23.2MB",
|
|
" repo1: backup set size: 2.9MB, backup size: 2.9MB",
|
|
"",
|
|
" diff backup: 20260119-092100F_20260119-092102D",
|
|
" timestamp start/stop: 2026-01-19 09:21:02+00 / 2026-01-19 09:21:03+00",
|
|
" wal start/stop: 000000010000000000000004 / 000000010000000000000005",
|
|
" database size: 23.2MB, database backup size: 9.1KB",
|
|
" repo1: backup set size: 2.9MB, backup size: 880B",
|
|
" backup reference total: 1 full"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl stop 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 rm /var/lib/pgsql/13/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-13.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-13.service"
|
|
],
|
|
"err-expect" : "3",
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
"failed"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"postgresql-13.service - PostgreSQL 13 database server",
|
|
" Loaded: loaded (/usr/lib/systemd/system/postgresql-13.service, disabled)",
|
|
" Active: failed (failed)"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres find /var/lib/pgsql/13/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-13.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\" | 2026-01-19 09:21:03+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/13/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/13/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" : [
|
|
"20260119-092115F"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo --set=20260119-092115F 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 (13): 000000020000000000000007/000000020000000000000009",
|
|
"",
|
|
" full backup: 20260119-092115F",
|
|
" timestamp start/stop: 2026-01-19 09:21:15+00 / 2026-01-19 09:21:16+00",
|
|
" wal start/stop: 000000020000000000000008 / 000000020000000000000009",
|
|
" lsn start/stop: 0/8000028 / 0/9000050",
|
|
" database size: 23.2MB, database backup size: 23.2MB",
|
|
" repo1: backup size: 2.9MB",
|
|
" database list: postgres (13383)",
|
|
" annotation(s)",
|
|
" key: value",
|
|
" source: demo backup"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo --set=20260119-092115F \\",
|
|
" --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=20260119-092115F 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 (13): 000000020000000000000007/000000020000000000000009",
|
|
"",
|
|
" full backup: 20260119-092115F",
|
|
" timestamp start/stop: 2026-01-19 09:21:15+00 / 2026-01-19 09:21:16+00",
|
|
" wal start/stop: 000000020000000000000008 / 000000020000000000000009",
|
|
" lsn start/stop: 0/8000028 / 0/9000050",
|
|
" database size: 23.2MB, database backup size: 23.2MB",
|
|
" repo1: backup size: 2.9MB",
|
|
" database list: postgres (13383)",
|
|
" 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/13/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 20260119-092100F|remove archive"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
" [filtered 948 lines of output]",
|
|
"P00 INFO: repo1: remove expired backup 20260119-092113F",
|
|
"P00 DETAIL: repo1: 13-1 archive retention on backup 20260119-092115F, start = 000000020000000000000008",
|
|
"P00 INFO: repo1: 13-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" : [
|
|
"20260119-092118F"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 20260119-092100F|archive retention on backup 20260119-092118F|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 20260119-092115F",
|
|
"P00 INFO: repo1: remove expired backup 20260119-092115F",
|
|
"P00 INFO: repo1: 13-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/13/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" : [
|
|
"20260119-092120F_20260119-092122D"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 20260119-092120F_20260119-092122D"
|
|
]
|
|
},
|
|
"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.58.0: --exec-id=2196-f736765b --log-level-console=info --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 20260119-092120F_20260119-092122D, 20260119-092120F_20260119-092123I",
|
|
"P00 INFO: repo1: remove expired backup 20260119-092120F_20260119-092123I",
|
|
"P00 INFO: repo1: remove expired backup 20260119-092120F_20260119-092122D",
|
|
"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/13/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" : [
|
|
"20260119-092120F_20260119-092124D"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 = 20260119-092120F_20260119-092126D",
|
|
"P00 INFO: diff backup size = 11.6KB, file total = 936",
|
|
"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" : [
|
|
"20260119-092120F_20260119-092126D"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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 20260119-092120F_20260119-092124D|remove archive"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=2392-b81327e6 --log-level-console=detail --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: 13-1 archive retention on backup 20260119-092118F, start = 00000002000000000000000A, stop = 00000002000000000000000B",
|
|
"P00 DETAIL: repo1: 13-1 archive retention on backup 20260119-092120F, start = 00000002000000000000000C, stop = 00000002000000000000000D",
|
|
"P00 DETAIL: repo1: 13-1 archive retention on backup 20260119-092120F_20260119-092124D, start = 000000020000000000000012, stop = 000000020000000000000013",
|
|
"P00 DETAIL: repo1: 13-1 archive retention on backup 20260119-092120F_20260119-092126D, start = 000000020000000000000016",
|
|
"P00 INFO: repo1: 13-1 remove archive, start = 00000002000000000000000E, stop = 000000020000000000000011",
|
|
"P00 INFO: repo1: 13-1 remove archive, start = 000000020000000000000014, stop = 000000020000000000000015",
|
|
"P00 INFO: expire command end: completed successfully"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl stop 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 --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/13/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/13/data'",
|
|
"P00 DETAIL: remove invalid file '/var/lib/pgsql/13/data/backup_label.old'",
|
|
"P00 DETAIL: remove invalid file '/var/lib/pgsql/13/data/base/13383/pg_internal.init'",
|
|
" [filtered 981 lines of output]"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl start 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 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/13/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/13/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" : [
|
|
"20260119-092120F_20260119-092135I"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo \\",
|
|
" --set=20260119-092120F_20260119-092135I 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: 20260119-092120F, 20260119-092120F_20260119-092126D",
|
|
" database list: postgres (13383), test1 (32768), test2 (32769)"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl stop 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 --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-13.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: connection to server on socket \"/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/pgsql/13/data/base/32768"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"8.0K\t/var/lib/pgsql/13/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",
|
|
" 13382 | template0",
|
|
" 13383 | 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" : [
|
|
"2026-01-19 09:21:46.275227+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" : [
|
|
"20260119-092120F_20260119-092147I"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest info"
|
|
],
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
"20260119-092120F_20260119-092147I"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
" [filtered 38 lines of output]",
|
|
" backup reference total: 1 full, 1 diff",
|
|
"",
|
|
" incr backup: 20260119-092120F_20260119-092147I",
|
|
" timestamp start/stop: 2026-01-19 09:21:47+00 / 2026-01-19 09:21:48+00",
|
|
" wal start/stop: 00000004000000000000001A / 00000004000000000000001A",
|
|
" [filtered 2 lines of output]"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl stop 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 --delta \\",
|
|
" --set=20260119-092120F_20260119-092147I --target-timeline=current \\",
|
|
" --type=time \"--target=2026-01-19 09:21:46.275227+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/13/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-13.service"
|
|
],
|
|
"err-expect" : "1",
|
|
"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/13/data/log/postgresql.log"
|
|
],
|
|
"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 11 lines of output]",
|
|
"LOG: database system is ready to accept read only connections",
|
|
"LOG: redo done at 0/1A000100",
|
|
"FATAL: recovery ended before configured recovery target was reached",
|
|
"LOG: startup process (PID 3390) exited with exit code 1",
|
|
"LOG: terminating any other active server processes"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
|
|
" --type=time \"--target=2026-01-19 09:21:46.275227+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/13/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/13/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 2026-01-19 09:21:53",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"recovery_target_time = '2026-01-19 09:21:46.275227+00'",
|
|
"recovery_target_action = 'promote'"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl start 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 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/13/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" : [
|
|
" [filtered 5 lines of output]",
|
|
"LOG: database system was interrupted; last known up at 2026-01-19 09:21:35 UTC",
|
|
"LOG: restored log file \"00000004.history\" from archive",
|
|
"LOG: starting point-in-time recovery to 2026-01-19 09:21:46.275227+00",
|
|
"LOG: restored log file \"00000004.history\" from archive",
|
|
"LOG: restored log file \"000000040000000000000019\" from archive",
|
|
" [filtered 2 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 495, time 2026-01-19 09:21:47.553454+00",
|
|
"LOG: redo done at 0/1901E348",
|
|
"LOG: last completed transaction was at log time 2026-01-19 09:21:44.998203+00",
|
|
"LOG: selected new timeline ID: 5",
|
|
"LOG: archive recovery complete",
|
|
"LOG: database system is ready to accept connections"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl stop 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 --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.58.0: --exec-id=3691-ad85dcc9 --log-level-console=info --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.58.0: --exec-id=3718-4fafd9b4 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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-13.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" : {
|
|
"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/13/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",
|
|
"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 bash -c 'export AZURE_CLI_DISABLE_CONNECTION_VERIFICATION=1;az storage container create -n demo-container \\",
|
|
" --connection-string \"DefaultEndpointsProtocol=https;AccountName=pgbackrest;AccountKey=YXpLZXk=\" \\",
|
|
" 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 --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.58.0: --exec-id=3889-dc76115c --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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.58.0: --exec-id=3917-455d2c05 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/13/data --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 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 = 20260119-092208F",
|
|
"P00 INFO: full backup size = 30.8MB, file total = 1229",
|
|
"P00 INFO: backup command end: completed successfully",
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=3917-455d2c05 --log-level-console=info --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" : {
|
|
"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/13/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",
|
|
"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" : [
|
|
"mc --insecure alias set s3 https://127.0.0.1 accessKey1 verySecretKey1"
|
|
],
|
|
"host" : "s3-server",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : "root"
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"mc --insecure mb --with-versioning s3/demo-bucket"
|
|
],
|
|
"host" : "s3-server",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : "root"
|
|
},
|
|
"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.58.0: --exec-id=4045-563092b9 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/13/data --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 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 = 20260119-092215F",
|
|
"P00 INFO: full backup size = 30.8MB, file total = 1229",
|
|
"P00 INFO: backup command end: completed successfully",
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=4045-563092b9 --log-level-console=info --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" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres psql -Atc \"select date_trunc('seconds', current_timestamp)\""
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"2026-01-19 09:22:20+00"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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/13/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.58.0: --exec-id=4286-e118cc78 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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 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 = 20260119-092223F",
|
|
"P00 INFO: full backup size = 30.8MB, file total = 1229",
|
|
"P00 INFO: backup command end: completed successfully",
|
|
"P00 INFO: expire command begin 2.58.0: --exec-id=4286-e118cc78 --log-level-console=info --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" : {
|
|
"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/13/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" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl stop 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 stop"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"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 pgbackrest --stanza=demo --repo=3 stanza-delete"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo --repo=3 info"
|
|
],
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
"missing stanza data"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"stanza: demo",
|
|
" status: error (missing stanza data)",
|
|
" cipher: none"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"mc ls --versions s3/demo-bucket/demo-repo/backup/demo/backup.info"
|
|
],
|
|
"cmd-extra" : "--insecure",
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
"backup\\.info$"
|
|
]
|
|
},
|
|
"host" : "s3-server",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : "root"
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"[2026-01-19 09:22:30 UTC] 0B STANDARD 7933eae9-2226-4dc3-aa14-02cc52e0fb4f v3 DEL backup.info",
|
|
"[2026-01-19 09:22:20 UTC] 1.0KiB STANDARD 78f325bc-a340-4c8b-b423-8409b3a1cc91 v2 PUT backup.info",
|
|
"[2026-01-19 09:22:15 UTC] 372B STANDARD 6e6603b7-b30b-4aab-a3ef-42f95184034a v1 PUT backup.info",
|
|
"[2026-01-19 09:22:30 UTC] 0B STANDARD fa5ded47-c1e2-4672-b5d9-2874e4841d91 v3 DEL backup.info.copy",
|
|
"[2026-01-19 09:22:20 UTC] 1.0KiB STANDARD 69453b85-7d97-4e61-81d0-d8a3ad6cfea6 v2 PUT backup.info.copy"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo --repo=3 \\",
|
|
" --repo-target-time=\"2026-01-19 09:22:20+00\" info"
|
|
],
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
"full backup"
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
" [filtered 5 lines of output]",
|
|
" wal archive min/max (13): 00000005000000000000001C/00000005000000000000001D",
|
|
"",
|
|
" full backup: 20260119-092215F",
|
|
" timestamp start/stop: 2026-01-19 09:22:15+00 / 2026-01-19 09:22:20+00",
|
|
" wal start/stop: 00000005000000000000001C / 00000005000000000000001D",
|
|
" repo3: backup set size: 3.8MB, backup size: 3.8MB"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo -u postgres pgbackrest --stanza=demo --repo=3 --delta \\",
|
|
" --repo-target-time=\"2026-01-19 09:22:20+00\" --log-level-console=info restore"
|
|
],
|
|
"highlight" : {
|
|
"filter" : true,
|
|
"filter-context" : 2,
|
|
"list" : [
|
|
" restore backup set "
|
|
]
|
|
},
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe",
|
|
"value" : {
|
|
"output" : [
|
|
"P00 INFO: restore command begin 2.58.0: --delta --exec-id=4527-3f625708 --log-level-console=info --no-log-timestamp --pg1-path=/var/lib/pgsql/13/data --process-max=4 --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 --repo5-gcs-bucket=demo-bucket --repo5-gcs-key=<redacted> --repo1-path=/var/lib/pgbackrest --repo2-path=/demo-repo --repo3-path=/demo-repo --repo4-path=/demo-repo --repo5-path=/demo-repo --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 --repo-target-time=\"2026-01-19 09:22:20+00\" --repo2-type=azure --repo3-type=s3 --repo4-type=sftp --repo5-type=gcs --stanza=demo",
|
|
"P00 INFO: repo3: restore backup set 20260119-092215F, recovery will start at 2026-01-19 09:22:15",
|
|
"P00 INFO: remove invalid files/links/paths from '/var/lib/pgsql/13/data'",
|
|
"P00 INFO: write updated /var/lib/pgsql/13/data/postgresql.auto.conf",
|
|
" [filtered 2 lines of output]"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl start postgresql-13.service"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"id" : "repo1",
|
|
"image" : "pgbackrest/doc:rhel",
|
|
"name" : "repository",
|
|
"option" : "-m 512m",
|
|
"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/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/13/data"
|
|
}
|
|
},
|
|
"global" : {
|
|
"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/13/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/13/data"
|
|
}
|
|
},
|
|
"global" : {
|
|
"log-level-file" : {
|
|
"value" : "detail"
|
|
},
|
|
"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/13/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-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 --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-13.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/13/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 (13): 000000070000000000000023/000000070000000000000025",
|
|
"",
|
|
" full backup: 20260119-092306F",
|
|
" timestamp start/stop: 2026-01-19 09:23:06+00 / 2026-01-19 09:23:08+00",
|
|
" wal start/stop: 000000070000000000000023 / 000000070000000000000023",
|
|
" database size: 30.8MB, database backup size: 30.8MB",
|
|
" repo1: backup set size: 3.8MB, backup size: 3.8MB",
|
|
"",
|
|
" full backup: 20260119-092309F",
|
|
" timestamp start/stop: 2026-01-19 09:23:09+00 / 2026-01-19 09:23:11+00",
|
|
" wal start/stop: 000000070000000000000024 / 000000070000000000000025",
|
|
" database size: 30.8MB, database backup size: 30.8MB",
|
|
" repo1: backup set size: 3.8MB, backup size: 3.8MB"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"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",
|
|
"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/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/13/data"
|
|
}
|
|
},
|
|
"global" : {
|
|
"log-level-file" : {
|
|
"value" : "detail"
|
|
},
|
|
"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/13/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/13/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/13/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 2026-01-19 09:21:08",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:21:29",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:21:53",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"# Removed by pgBackRest restore on 2026-01-19 09:22:32 # recovery_target_time = '2026-01-19 09:21:46.275227+00'",
|
|
"# Removed by pgBackRest restore on 2026-01-19 09:22:32 # recovery_target_action = 'promote'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:22:32",
|
|
"restore_command = 'pgbackrest --repo=3 --repo-target-time=\"2026-01-19 09:22:20+00\" --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:23:01",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:23:27",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"cat /root/postgresql.common.conf >> /var/lib/pgsql/13/data/postgresql.conf"
|
|
],
|
|
"host" : "pg-standby",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : "root"
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"file" : "/var/lib/pgsql/13/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'"
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-postgresql",
|
|
"value" : {
|
|
"config" : [
|
|
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
|
|
"archive_mode = on",
|
|
"hot_standby = on",
|
|
"log_filename = 'postgresql.log'"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo rm /var/lib/pgsql/13/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-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 cat /var/lib/pgsql/13/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" : [
|
|
" [filtered 4 lines of output]",
|
|
"LOG: listening on Unix socket \"/tmp/.s.PGSQL.5432\"",
|
|
"LOG: database system was interrupted; last known up at 2026-01-19 09:23:09 UTC",
|
|
"LOG: entering standby mode",
|
|
"LOG: restored log file \"00000007.history\" from archive",
|
|
"LOG: restored log file \"000000070000000000000024\" from archive",
|
|
"LOG: redo starts at 0/24000028",
|
|
"LOG: restored log file \"000000070000000000000025\" from archive",
|
|
"LOG: consistent recovery state reached at 0/25000050",
|
|
"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/26017738 | 2026-01-19 09:23:33.308165+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 | 2026-01-19 09:23:34.570736+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.58.0: --exec-id=1105-680ac4e9 --log-level-console=info --log-level-file=detail --no-log-timestamp --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: 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/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 systemctl reload postgresql-13.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/13/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-13.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/13/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 2026-01-19 09:21:08",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:21:29",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:21:53",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"# Removed by pgBackRest restore on 2026-01-19 09:22:32 # recovery_target_time = '2026-01-19 09:21:46.275227+00'",
|
|
"# Removed by pgBackRest restore on 2026-01-19 09:22:32 # recovery_target_action = 'promote'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:22:32",
|
|
"restore_command = 'pgbackrest --repo=3 --repo-target-time=\"2026-01-19 09:22:20+00\" --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:23:01",
|
|
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
|
|
"",
|
|
"# Recovery settings generated by pgBackRest restore on 2026-01-19 09:23:39",
|
|
"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/13/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'"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo rm /var/lib/pgsql/13/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-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 cat /var/lib/pgsql/13/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 12 lines of output]",
|
|
"LOG: database system is ready to accept read only connections",
|
|
"LOG: restored log file \"000000070000000000000026\" from archive",
|
|
"LOG: started streaming WAL from primary at 0/27000000 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 | 2026-01-19 09:23:44.896378+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 | 2026-01-19 09:23:45.09247+00",
|
|
"(1 row)"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"id" : "pgalt",
|
|
"image" : "pgbackrest/doc:rhel",
|
|
"name" : "pg-alt",
|
|
"option" : "-m 512m",
|
|
"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/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/13/data"
|
|
}
|
|
},
|
|
"global" : {
|
|
"log-level-file" : {
|
|
"value" : "detail"
|
|
},
|
|
"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/13/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/13/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/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/13/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-13/bin/initdb \\",
|
|
" -D /var/lib/pgsql/13/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/13/data/postgresql.conf"
|
|
],
|
|
"host" : "pg-alt",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : "root"
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"file" : "/var/lib/pgsql/13/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'"
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-postgresql",
|
|
"value" : {
|
|
"config" : [
|
|
"archive_command = 'pgbackrest --stanza=demo-alt archive-push %p'",
|
|
"archive_mode = on",
|
|
"log_filename = 'postgresql.log'"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl restart postgresql-13.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.58.0: --exec-id=808-80d5cc1a --log-level-console=info --log-level-file=detail --no-log-timestamp --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-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.58.0: --exec-id=836-0d0cd439 --log-level-console=info --log-level-file=detail --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/13-1/0000000100000000/000000010000000000000001-6682d48b9456c97a63b86fb052e926912686d78a.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.58.0: --exec-id=1188-a5806db7 --log-level-console=info --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 000000070000000000000027 successfully archived to '/var/lib/pgbackrest/archive/demo/13-1/0000000700000000/000000070000000000000027-ab9de60f70c5f849d29e55b1104aae9c6dfee0dc.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/13-1/0000000100000000/000000010000000000000002-1cfb636b14b524bd3cf014e32ec3211fcf7ea48e.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/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" : {
|
|
"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/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" : {
|
|
"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-13.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.58.0: --exec-id=5533-a10d780a --log-level-console=info --log-level-file=detail --no-log-timestamp --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: check repo1 configuration (primary)",
|
|
"P00 INFO: check repo1 archive for WAL (primary)",
|
|
"P00 INFO: WAL segment 00000007000000000000002D successfully archived to '/var/lib/pgbackrest/archive/demo/13-1/0000000700000000/00000007000000000000002D-68fdc910d7c6f88b37ea66c55abbb15619fc23e4.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.58.0: [/var/lib/pgsql/13/data/pg_wal] --archive-async --exec-id=5499-311a72c4 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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: 000000070000000000000028",
|
|
"P01 DETAIL: pushed WAL file '000000070000000000000028' 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.58.0: [/var/lib/pgsql/13/data/pg_wal] --archive-async --exec-id=5522-2bee2531 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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: 000000070000000000000029...00000007000000000000002C",
|
|
"P01 DETAIL: pushed WAL file '000000070000000000000029' to the archive",
|
|
"P02 DETAIL: pushed WAL file '00000007000000000000002A' to the archive",
|
|
"P01 DETAIL: pushed WAL file '00000007000000000000002B' to the archive",
|
|
"P02 DETAIL: pushed WAL file '00000007000000000000002C' 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.58.0: [/var/lib/pgsql/13/data/pg_wal] --archive-async --exec-id=5540-4b5e5f9b --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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: 00000007000000000000002D",
|
|
"P01 DETAIL: pushed WAL file '00000007000000000000002D' 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.58.0: [000000070000000000000024, 000000070000000000000025, 000000070000000000000026, 000000070000000000000027, 000000070000000000000028, 000000070000000000000029, 00000007000000000000002A, 00000007000000000000002B] --archive-async --exec-id=1655-39b5c501 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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: 000000070000000000000024...00000007000000000000002B",
|
|
"P02 DETAIL: found 000000070000000000000025 in the repo1: 13-1 archive",
|
|
"P01 DETAIL: found 000000070000000000000024 in the repo1: 13-1 archive",
|
|
"P02 DETAIL: found 000000070000000000000026 in the repo1: 13-1 archive",
|
|
"P01 DETAIL: found 000000070000000000000027 in the repo1: 13-1 archive",
|
|
"P00 DETAIL: unable to find 000000070000000000000028 in the archive",
|
|
"P00 DETAIL: statistics: {\"socket.client\":{\"total\":1},\"socket.session\":{\"total\":1},\"tls.client\":{\"total\":1},\"tls.session\":{\"total\":1}}",
|
|
" [filtered 24 lines of output]",
|
|
"P00 INFO: archive-get:async command begin 2.58.0: [000000070000000000000028, 000000070000000000000029, 00000007000000000000002A, 00000007000000000000002B, 00000007000000000000002C, 00000007000000000000002D, 00000007000000000000002E, 00000007000000000000002F] --archive-async --exec-id=1705-617957e3 --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/13/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: 000000070000000000000028...00000007000000000000002F",
|
|
"P02 DETAIL: found 000000070000000000000029 in the repo1: 13-1 archive",
|
|
"P01 DETAIL: found 000000070000000000000028 in the repo1: 13-1 archive",
|
|
"P02 DETAIL: found 00000007000000000000002A in the repo1: 13-1 archive",
|
|
"P01 DETAIL: found 00000007000000000000002B in the repo1: 13-1 archive",
|
|
"P02 DETAIL: found 00000007000000000000002C in the repo1: 13-1 archive",
|
|
"P01 DETAIL: found 00000007000000000000002D in the repo1: 13-1 archive",
|
|
"P00 DETAIL: unable to find 00000007000000000000002E in the archive",
|
|
"P00 DETAIL: statistics: {\"socket.client\":{\"total\":1},\"socket.session\":{\"total\":1},\"tls.client\":{\"total\":1},\"tls.session\":{\"total\":1}}",
|
|
" [filtered 7 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/13/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/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/13/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 backup start: backup begins after the requested immediate checkpoint completes",
|
|
"P00 INFO: backup start archive = 00000007000000000000002F, lsn = 0/2F000028",
|
|
"P00 INFO: wait for replay on the standby to reach 0/2F000028",
|
|
"P00 INFO: replay on the standby reached 0/2F000028",
|
|
"P00 INFO: check archive for prior segment 00000007000000000000002E",
|
|
"P01 DETAIL: backup file pg-primary:/var/lib/pgsql/13/data/log/postgresql.log (11KB, 0.48%) checksum c9e618ab29ad21e5a3e14a5c02cead1a9506adc5",
|
|
"P01 DETAIL: backup file pg-primary:/var/lib/pgsql/13/data/global/pg_control (8KB, 0.83%) checksum 8f43c919dede7e23f0a104a7ad769cf5ff365daa",
|
|
"P01 DETAIL: backup file pg-primary:/var/lib/pgsql/13/data/pg_hba.conf (4.5KB, 1.02%) checksum 65e54ae24bda87b2542351cb16a7fecc7e5aceeb",
|
|
"P01 DETAIL: match file from prior backup pg-primary:/var/lib/pgsql/13/data/current_logfiles (26B, 1.02%) checksum 78a9f5c10960f0d91fcd313937469824861795a2",
|
|
"P01 DETAIL: match file from prior backup pg-primary:/var/lib/pgsql/13/data/pg_logical/replorigin_checkpoint (8B, 1.02%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532",
|
|
" [filtered 1243 lines of output]"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl stop postgresql-13.service"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl stop 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 /usr/pgsql-14/bin/initdb \\",
|
|
" -D /var/lib/pgsql/14/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-14/bin/pg_upgrade \\",
|
|
" --old-bindir=/usr/pgsql-13/bin \\",
|
|
" --new-bindir=/usr/pgsql-14/bin \\",
|
|
" --old-datadir=/var/lib/pgsql/13/data \\",
|
|
" --new-datadir=/var/lib/pgsql/14/data \\",
|
|
" --old-options=\" -c config_file=/var/lib/pgsql/13/data/postgresql.conf\" \\",
|
|
" --new-options=\" -c config_file=/var/lib/pgsql/14/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 69 lines of output]",
|
|
"Checking for extension updates ok",
|
|
"",
|
|
"Upgrade Complete",
|
|
"----------------",
|
|
"Optimizer statistics are not transferred by pg_upgrade.",
|
|
" [filtered 4 lines of output]"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"cat /root/postgresql.common.conf >> /var/lib/pgsql/14/data/postgresql.conf"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : false,
|
|
"run-as-user" : "root"
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"file" : "/var/lib/pgsql/14/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'"
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-postgresql",
|
|
"value" : {
|
|
"config" : [
|
|
"archive_command = 'pgbackrest --stanza=demo archive-push %p'",
|
|
"archive_mode = on",
|
|
"log_filename = 'postgresql.log'"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"key" : {
|
|
"file" : "/etc/pgbackrest/pgbackrest.conf",
|
|
"host" : "pg-primary",
|
|
"option" : {
|
|
"demo" : {
|
|
"pg1-path" : {
|
|
"value" : "/var/lib/pgsql/14/data"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo]",
|
|
"pg1-path=/var/lib/pgsql/14/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/14/data"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"type" : "cfg-pgbackrest",
|
|
"value" : {
|
|
"config" : [
|
|
"[demo]",
|
|
"pg1-path=/var/lib/pgsql/14/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/14/data"
|
|
},
|
|
"pg2-path" : {
|
|
"value" : "/var/lib/pgsql/14/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/14/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/14/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/13/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/13/data/pg_hba.conf \\",
|
|
" /var/lib/pgsql/14/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.58.0: --exec-id=6060-3d1ec838 --log-level-console=info --log-level-file=detail --no-log-timestamp --no-online --pg1-path=/var/lib/pgsql/14/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-14.service"
|
|
],
|
|
"host" : "pg-primary",
|
|
"load-env" : true,
|
|
"output" : true,
|
|
"run-as-user" : null
|
|
},
|
|
"type" : "exe"
|
|
},
|
|
{
|
|
"key" : {
|
|
"bash-wrap" : true,
|
|
"cmd" : [
|
|
"sudo systemctl status postgresql-14.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/13/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/13/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-14/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/14/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-14.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/14/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/14/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/13/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"
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|