{ "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" : "u18", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.8" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo apt-get install rsync git devscripts build-essential valgrind lcov autoconf \\", " autoconf-archive libssl-dev zlib1g-dev libxml2-dev libpq-dev pkg-config \\", " libxml-checker-perl libyaml-libyaml-perl libdbd-pg-perl liblz4-dev liblz4-tool \\", " zstd libzstd-dev bzip2 libbz2-dev" ], "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" : [ "pgbackrest/test/test.pl --vm=none --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 - log level info", "P00 INFO: check version info", "P00 INFO: builds required: bin", "P00 INFO: 67 tests selected", " ", "P00 INFO: P1-T01/67 - vm=none, module=common, test=error", " [filtered 64 lines of output]", "P00 INFO: P1-T66/67 - vm=none, module=performance, test=type", "P00 INFO: P1-T67/67 - vm=none, module=performance, test=storage", "P00 INFO: DRY RUN COMPLETED SUCCESSFULLY" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "pgbackrest/test/test.pl --vm=none --dev --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 - log level info", "P00 INFO: check code autogenerate", "P00 INFO: cleanup old data", "P00 INFO: builds required: none", "P00 INFO: 1 test selected", " ", "P00 INFO: P1-T1/1 - vm=none, module=common, test=wait", " ", " run 001 - waitNew(), waitMore, and waitFree()", " l0018 - expect AssertError: assertion 'waitTime <= 999999000' failed", " l0021 - 0ms wait", " l0025 - new wait", " l0026 - check remaining time", " l0027 - check wait time", " l0028 - check sleep time", " l0029 - check sleep prev time", " l0030 - no wait more", " l0033 - new wait = 0.2 sec", " l0034 - check remaining time", " l0035 - check wait time", " l0036 - check sleep time", " l0037 - check sleep prev time", " l0038 - check begin time", " l0044 - lower range check", " l0045 - upper range check", " l0047 - free wait", " l0052 - new wait = 1.1 sec", " l0053 - check wait time", " l0054 - check sleep time", " l0055 - check sleep prev time", " l0056 - check begin time", " l0062 - lower range check", " l0063 - upper range check", " l0065 - free wait", " ", " TESTS COMPLETED SUCCESSFULLY", "", "P00 INFO: P1-T1/1 - vm=none, module=common, test=wait", "P00 INFO: tested modules have full coverage", "P00 INFO: writing C coverage report", "P00 INFO: TESTS COMPLETED SUCCESSFULLY" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "pgbackrest/test/test.pl --vm=none --dev --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 - log level info", "P00 INFO: check code autogenerate", "P00 INFO: cleanup old data", "P00 INFO: builds required: none", "P00 INFO: 2 tests selected", " ", "P00 INFO: P1-T1/2 - vm=none, module=postgres, test=client", "P00 INFO: P1-T2/2 - vm=none, module=postgres, test=interface", "P00 INFO: tested modules have full coverage", "P00 INFO: writing C coverage report", "P00 INFO: TESTS COMPLETED SUCCESSFULLY" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "pgbackrest/test/test.pl --vm-build --vm=u18" ], "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 - log level info", "P00 INFO: Using cached pgbackrest/test:u18-base-20200626A image (7df9a43ce9b6736e5f8dc797edd0f6326908fd2b) ...", "P00 INFO: Building pgbackrest/test:u18-test image ...", "P00 INFO: Build Complete" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "pgbackrest/test/test.pl --vm=u18 --dev --module=mock --test=archive --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 - log level info", "P00 INFO: check code autogenerate", "P00 INFO: cleanup old data and containers", "P00 INFO: builds required: bin, bin host", "P00 INFO: bin dependencies have changed for u18, rebuilding...", "P00 INFO: build bin for u18 (/home/vagrant/test/bin/u18)", "P00 INFO: bin dependencies have changed for none, rebuilding...", "P00 INFO: build bin for none (/home/vagrant/test/bin/none)", "P00 INFO: 1 test selected", " ", "P00 INFO: P1-T1/1 - vm=u18, module=mock, test=archive, run=2", "P00 INFO: no code modules had all tests run required for coverage", "P00 INFO: TESTS COMPLETED SUCCESSFULLY" ] } } ], "user-guide" : [ { "key" : { "id" : "azure", "image" : "mcr.microsoft.com/azure-storage/azurite", "name" : "azure-server", "option" : "-v {[host-repo-path]}/doc/resource/fake-cert/azure-server.crt:/root/public.crt:ro -v {[host-repo-path]}/doc/resource/fake-cert/azure-server.key:/root/private.key:ro -e AZURITE_ACCOUNTS='pgbackrest:YXpLZXk='", "os" : "debian", "param" : "azurite-blob --blobPort 443 --blobHost 0.0.0.0 --cert=/root/public.crt --key=/root/private.key", "update-hosts" : false }, "type" : "host", "value" : { "ip" : "172.17.0.2" } }, { "key" : { "id" : "s3", "image" : "minio/minio:RELEASE.2020-05-06T23-23-25Z", "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" : "build", "image" : "pgbackrest/doc:debian", "name" : "build", "option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "debian", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.4" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo mkdir -p /build/pgbackrest-release-2.28" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo cp -r /pgbackrest/src /build/pgbackrest-release-2.28" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo chown -R vagrant /build/pgbackrest-release-2.28" ], "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 make gcc libpq-dev libssl-dev libxml2-dev pkg-config \\", " liblz4-dev libzstd-dev libbz2-dev libz-dev" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "cd /build/pgbackrest-release-2.28/src && ./configure && make" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "id" : "pg1", "image" : "pgbackrest/doc:debian", "name" : "pg-primary", "option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "debian", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.5" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo apt-get install postgresql-client libxml2" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo scp build:/build/pgbackrest-release-2.28/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.28 - General help", "", "Usage:", " pgbackrest [options] [command]", "", "Commands:", " 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.", " restore Restore a database cluster.", " 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.", " version Get version.", "", "Use 'pgbackrest help [command]' for more information." ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres /usr/lib/postgresql/12/bin/initdb \\", " -D /var/lib/postgresql/12/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 12 demo" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "Configuring already existing cluster (configuration: /etc/postgresql/12/demo, data: /var/lib/postgresql/12/demo, owner: 106:110)", "Ver Cluster Port Status Owner Data directory Log file", "12 demo 5432 down postgres /var/lib/postgresql/12/demo /var/log/postgresql/postgresql-12-demo.log" ] } }, { "key" : { "file" : "/etc/postgresql/12/demo/postgresql.conf", "host" : "pg-primary", "option" : { "listen_addresses" : { "value" : "'*'" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "listen_addresses = '*'" ] } }, { "key" : { "file" : "/etc/postgresql/12/demo/postgresql.conf", "host" : "pg-primary", "option" : { "log_line_prefix" : { "value" : "''" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "listen_addresses = '*'", "log_line_prefix = ''" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "demo" : { "pg1-path" : { "value" : "/var/lib/postgresql/12/demo" } }, "global" : { "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/postgresql/12/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.28 - '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/12/demo", "", "[global]", "repo1-path=/var/lib/pgbackrest" ] } }, { "key" : { "file" : "/etc/postgresql/12/demo/postgresql.conf", "host" : "pg-primary", "option" : { "archive_command" : { "value" : "'pgbackrest --stanza=demo archive-push %p'" }, "archive_mode" : { "value" : "on" }, "max_wal_senders" : { "value" : "3" }, "wal_level" : { "value" : "replica" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "archive_command = 'pgbackrest --stanza=demo archive-push %p'", "archive_mode = on", "listen_addresses = '*'", "log_line_prefix = ''", "max_wal_senders = 3", "wal_level = replica" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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" : { "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/12/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/12/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/12/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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo", "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo", "P00 INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo/12-1/0000000100000000/000000010000000000000001-21bb745c87c6cb4a07d0e3f6296aec9c33f75706.gz'", "P00 INFO: check command end: completed successfully" ] } }, { "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo", "P00 WARN: no prior backup exists, incr backup has been changed to full", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the next regular checkpoint completes", "P00 INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028", " [filtered 973 lines of output]", "P01 INFO: backup file /var/lib/postgresql/12/demo/base/1/13201 (0B, 100%)", "P01 INFO: backup file /var/lib/postgresql/12/demo/base/1/13196 (0B, 100%)", "P00 INFO: full backup size = 23.4MB", "P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 000000010000000000000002, lsn = 0/2000138", " [filtered 4 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" : [ "20200720-121743F" ] } }, { "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 4 lines of output]", "P01 INFO: backup file /var/lib/postgresql/12/demo/global/pg_control (8KB, 99%) checksum d1df70047cb190fa4ce405cea7e82eebb3ef7d1b", "P01 INFO: backup file /var/lib/postgresql/12/demo/pg_logical/replorigin_checkpoint (8B, 100%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532", "P00 INFO: diff backup size = 8KB", "P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 000000010000000000000003, lsn = 0/3000100", " [filtered 4 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest info" ], "highlight" : { "filter" : false, "filter-context" : 2, "list" : [ "(full|incr|diff) backup" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "stanza: demo", " status: ok", " cipher: aes-256-cbc", "", " db (current)", " wal archive min/max (12-1): 000000010000000000000001/000000010000000000000003", "", " full backup: 20200720-121743F", " timestamp start/stop: 2020-07-20 12:17:43 / 2020-07-20 12:17:58", " wal start/stop: 000000010000000000000002 / 000000010000000000000002", " database size: 23.4MB, backup size: 23.4MB", " repository size: 2.8MB, repository backup size: 2.8MB", "", " diff backup: 20200720-121743F_20200720-121801D", " timestamp start/stop: 2020-07-20 12:18:01 / 2020-07-20 12:18:02", " wal start/stop: 000000010000000000000003 / 000000010000000000000003", " database size: 23.4MB, backup size: 8.3KB", " repository size: 2.8MB, repository backup size: 480B", " backup reference list: 20200720-121743F" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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/12/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 12 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/12/bin/pg_ctl /usr/lib/postgresql/12/bin/pg_ctl start -D /var/lib/postgresql/12/demo -l /var/log/postgresql/postgresql-12-demo.log -s -o -c config_file=\"/etc/postgresql/12/demo/postgresql.conf\" exited with status 1: ", "postgres: could not find the database system", "Expected to find it in the directory \"/var/lib/postgresql/12/demo\",", "but could not open file \"/var/lib/postgresql/12/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/12/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 12 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 pgbackrest --stanza=demo --type=incr \\", " --log-level-console=info backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "backup begins after the next regular checkpoint completes" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: backup command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --type=incr", "P00 INFO: last backup label = 20200720-121743F_20200720-121801D, version = 2.28", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the next regular checkpoint completes", "P00 INFO: backup start archive = 000000020000000000000006, lsn = 0/6000028", "P00 WARN: a timeline switch has occurred since the 20200720-121743F_20200720-121801D backup, enabling delta checksum", " [filtered 10 lines of output]" ] } }, { "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/12/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 --type=incr \\", " --log-level-console=info backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "backup begins after the requested immediate checkpoint completes" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: backup command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --type=incr", "P00 INFO: last backup label = 20200720-121743F_20200720-121823I, version = 2.28", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 000000020000000000000007, lsn = 0/7000028", "P01 INFO: backup file /var/lib/postgresql/12/demo/global/pg_control (8KB, 99%) checksum 3839e754577c063f2ae6eae22bf2162d3dac6ca4", " [filtered 8 lines of output]" ] } }, { "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 jsonb);", "", " -- 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 temp_pgbackrest_data.data", " 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\" | 2020-07-20 12:18:29+00 | 000000020000000000000007", "(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" : [ "1595247509" ] } }, { "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" : [ "\"000000020000000000000007\"" ] } }, { "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/12/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 --type=full \\", " --log-level-console=detail backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "archive retention on backup 20200720-121743F|remove archive" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 984 lines of output]", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo", "P00 DETAIL: archive retention on backup 20200720-121743F, archiveId = 12-1, start = 000000010000000000000002", "P00 DETAIL: remove archive: archiveId = 12-1, start = 000000010000000000000001, stop = 000000010000000000000001", "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" : [ "20200720-121837F" ] } }, { "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\\: 20200720-121743F|archive retention on backup 20200720-121837F|remove archive" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 983 lines of output]", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo", "P00 INFO: expire full backup set: 20200720-121743F, 20200720-121743F_20200720-121801D, 20200720-121743F_20200720-121823I, 20200720-121743F_20200720-121827I", "P00 INFO: remove expired backup 20200720-121743F_20200720-121827I", "P00 INFO: remove expired backup 20200720-121743F_20200720-121823I", " [filtered 2 lines of output]" ] } }, { "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/12/demo", "", "[global]", "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" : [ "20200720-121851F_20200720-121906D" ] } }, { "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: 20200720-121851F_20200720-121906D" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 11 lines of output]", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=1 --repo1-retention-full=2 --stanza=demo", "P00 INFO: expire diff backup set: 20200720-121851F_20200720-121906D, 20200720-121851F_20200720-121908I", "P00 INFO: remove expired backup 20200720-121851F_20200720-121908I", "P00 INFO: remove expired backup 20200720-121851F_20200720-121906D" ] } }, { "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/12/demo", "", "[global]", "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" : [ "20200720-121851F_20200720-121911D" ] } }, { "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 8 lines of output]", "P00 INFO: backup stop archive = 000000020000000000000010, lsn = 0/10000100", "P00 INFO: check archive for segment(s) 000000020000000000000010:000000020000000000000010", "P00 INFO: new backup label = 20200720-121851F_20200720-121916D", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=2 --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" : [ "20200720-121851F_20200720-121916D" ] } }, { "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 20200720-121851F_20200720-121911D|remove archive" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: expire command begin 2.28: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --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: archive retention on backup 20200720-121837F, archiveId = 12-1, start = 000000020000000000000009, stop = 000000020000000000000009", "P00 DETAIL: archive retention on backup 20200720-121851F, archiveId = 12-1, start = 00000002000000000000000A, stop = 00000002000000000000000A", "P00 DETAIL: archive retention on backup 20200720-121851F_20200720-121911D, archiveId = 12-1, start = 00000002000000000000000D, stop = 00000002000000000000000D", "P00 DETAIL: archive retention on backup 20200720-121851F_20200720-121916D, archiveId = 12-1, start = 000000020000000000000010", "P00 DETAIL: remove archive: archiveId = 12-1, start = 00000002000000000000000B, stop = 00000002000000000000000C", "P00 DETAIL: remove archive: archiveId = 12-1, start = 00000002000000000000000E, stop = 00000002000000000000000F", "P00 INFO: expire command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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/12/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/12/demo'", "P00 DETAIL: remove invalid file '/var/lib/postgresql/12/demo/backup_label.old'", "P00 DETAIL: remove invalid file '/var/lib/postgresql/12/demo/base/1/pg_internal.init'", " [filtered 816 lines of output]", "P01 DETAIL: restore file /var/lib/postgresql/12/demo/base/13358/PG_VERSION - exists and matches backup (3B, 99%) checksum ad552e6dc057d1d825bf49df79d6b98eba846ebe", "P01 DETAIL: restore file /var/lib/postgresql/12/demo/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum ad552e6dc057d1d825bf49df79d6b98eba846ebe", "P01 DETAIL: restore file /var/lib/postgresql/12/demo/PG_VERSION - exists and matches backup (3B, 100%) checksum ad552e6dc057d1d825bf49df79d6b98eba846ebe", "P01 DETAIL: restore file /var/lib/postgresql/12/demo/global/6100 - exists and is zero size (0B, 100%)", "P01 DETAIL: restore file /var/lib/postgresql/12/demo/global/6000 - exists and is zero size (0B, 100%)", " [filtered 201 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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 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 -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 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" : [ "24576" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres du -sh /var/lib/postgresql/12/demo/base/24576" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "7.8M\t/var/lib/postgresql/12/demo/base/24576" ] } }, { "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" : [ "20200720-121851F_20200720-121927I" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo \\", " --set=20200720-121851F_20200720-121927I 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 11 lines of output]", " repository size: 4.7MB, repository backup size: 1.9MB", " backup reference list: 20200720-121851F, 20200720-121851F_20200720-121916D", " database list: postgres (13359), test1 (24576), test2 (24577)" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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 restore" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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: could not connect to server: FATAL: relation mapping file \"base/24576/pg_filenode.map\" contains invalid data" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres du -sh /var/lib/postgresql/12/demo/base/24576" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "176K\t/var/lib/postgresql/12/demo/base/24576" ] } }, { "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", " 13358 | template0", " 13359 | postgres", " 24577 | test2", "(4 rows)" ] } }, { "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 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" : [ "2020-07-20 12:19:54.471954+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 pg_ctlcluster 12 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 \\", " --type=time \"--target=2020-07-20 12:19:54.471954+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-12-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/12/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 12 lines of output]", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:19:57", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "recovery_target_time = '2020-07-20 12:19:54.471954+00'", "recovery_target_action = 'promote'" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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-12-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 3 lines of output]", "LOG: listening on Unix socket \"/var/run/postgresql/.s.PGSQL.5432\"", "LOG: database system was interrupted; last known up at 2020-07-20 12:19:46 UTC", "LOG: starting point-in-time recovery to 2020-07-20 12:19:54.471954+00", "LOG: restored log file \"00000004.history\" from archive", "LOG: restored log file \"000000040000000000000016\" from archive", " [filtered 2 lines of output]", "LOG: database system is ready to accept read only connections", "LOG: restored log file \"000000040000000000000017\" from archive", "LOG: recovery stopping before commit of transaction 495, time 2020-07-20 12:19:56.064234+00", "LOG: redo done at 0/17019E10", "LOG: last completed transaction was at log time 2020-07-20 12:19:52.841828+00", "LOG: selected new timeline ID: 5", "LOG: archive recovery complete", " [filtered 2 lines of output]" ] } }, { "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" : [ "20200720-121851F_20200720-122004I" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest info" ], "highlight" : { "filter" : false, "filter-context" : 2, "list" : [ "20200720-121851F_20200720-122004I" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "stanza: demo", " status: ok", " cipher: aes-256-cbc", "", " db (current)", " wal archive min/max (12-1): 000000020000000000000009/000000050000000000000018", "", " full backup: 20200720-121837F", " timestamp start/stop: 2020-07-20 12:18:37 / 2020-07-20 12:18:49", " wal start/stop: 000000020000000000000009 / 000000020000000000000009", " database size: 23.4MB, backup size: 23.4MB", " repository size: 2.8MB, repository backup size: 2.8MB", "", " full backup: 20200720-121851F", " timestamp start/stop: 2020-07-20 12:18:51 / 2020-07-20 12:19:03", " wal start/stop: 00000002000000000000000A / 00000002000000000000000A", " database size: 23.4MB, backup size: 23.4MB", " repository size: 2.8MB, repository backup size: 2.8MB", "", " diff backup: 20200720-121851F_20200720-121916D", " timestamp start/stop: 2020-07-20 12:19:16 / 2020-07-20 12:19:18", " wal start/stop: 000000020000000000000010 / 000000020000000000000010", " database size: 23.4MB, backup size: 8.3KB", " repository size: 2.8MB, repository backup size: 512B", " backup reference list: 20200720-121851F", "", " incr backup: 20200720-121851F_20200720-121927I", " timestamp start/stop: 2020-07-20 12:19:27 / 2020-07-20 12:19:35", " wal start/stop: 000000030000000000000013 / 000000030000000000000013", " database size: 38.6MB, backup size: 15.8MB", " repository size: 4.7MB, repository backup size: 1.9MB", " backup reference list: 20200720-121851F, 20200720-121851F_20200720-121916D", "", " diff backup: 20200720-121851F_20200720-121946D", " timestamp start/stop: 2020-07-20 12:19:46 / 2020-07-20 12:19:52", " wal start/stop: 000000040000000000000016 / 000000040000000000000016", " database size: 31MB, backup size: 8.2MB", " repository size: 3.8MB, repository backup size: 1006.9KB", " backup reference list: 20200720-121851F", "", " incr backup: 20200720-121851F_20200720-122004I", " timestamp start/stop: 2020-07-20 12:20:04 / 2020-07-20 12:20:06", " wal start/stop: 000000050000000000000018 / 000000050000000000000018", " database size: 31MB, backup size: 2.2MB", " repository size: 3.8MB, repository backup size: 234.0KB", " backup reference list: 20200720-121851F, 20200720-121851F_20200720-121946D" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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=20200720-121851F_20200720-122004I \\", " --type=time \"--target=2020-07-20 12:19:54.471954+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-12-demo.log" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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\"" ], "err-expect" : "1", "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "does not exist" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "ERROR: relation \"important_table\" does not exist", "LINE 1: select * from important_table", " ^" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres cat /var/log/postgresql/postgresql-12-demo.log" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "starting point-in-time recovery|consistent recovery state reached" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [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 2020-07-20 12:20:05 UTC", "LOG: starting point-in-time recovery to 2020-07-20 12:19:54.471954+00", "LOG: restored log file \"00000005.history\" from archive", "LOG: restored log file \"000000050000000000000018\" from archive", "LOG: redo starts at 0/18000028", "LOG: consistent recovery state reached at 0/18000100", "LOG: database system is ready to accept read only connections", "LOG: redo done at 0/18000100", " [filtered 7 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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 \\", " --type=time \"--target=2020-07-20 12:19:54.471954+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-12-demo.log" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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-12-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 5 lines of output]", "LOG: restored log file \"00000005.history\" from archive", "LOG: restored log file \"00000006.history\" from archive", "LOG: starting point-in-time recovery to 2020-07-20 12:19:54.471954+00", "LOG: restored log file \"00000006.history\" from archive", "LOG: restored log file \"000000040000000000000016\" from archive", " [filtered 4 lines of output]", "LOG: database system is ready to accept read only connections", "LOG: restored log file \"000000050000000000000017\" from archive", "LOG: recovery stopping before commit of transaction 496, time 2020-07-20 12:20:04.00426+00", "LOG: redo done at 0/17022440", "LOG: last completed transaction was at log time 2020-07-20 12:19:52.841828+00", "LOG: selected new timeline ID: 7", "LOG: archive recovery complete", " [filtered 2 lines of output]" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "global" : { "process-max" : { "value" : "4" }, "repo1-azure-account" : { "value" : "pgbackrest" }, "repo1-azure-container" : { "value" : "demo-container" }, "repo1-azure-host" : { "value" : "blob.core.windows.net" }, "repo1-azure-key" : { "value" : "YXpLZXk=" }, "repo1-path" : { "value" : "/demo-repo" }, "repo1-type" : { "value" : "azure" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/postgresql/12/demo", "", "[global]", "process-max=4", "repo1-azure-account=pgbackrest", "repo1-azure-container=demo-container", "repo1-azure-key=YXpLZXk=", "repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO", "repo1-cipher-type=aes-256-cbc", "repo1-path=/demo-repo", "repo1-retention-diff=2", "repo1-retention-full=2", "repo1-type=azure", "start-fast=y", "", "[global:archive-push]", "compress-level=3" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "echo \"172.17.0.2 blob.core.windows.net\" | tee -a /etc/hosts" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : "root" }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest repo-create" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "completed successfully" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: stanza-create command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --repo1-azure-account= --repo1-azure-container=demo-container --repo1-azure-host=blob.core.windows.net --repo1-azure-key= --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-type=azure --stanza=demo", "P00 INFO: http statistics: objects 2, sessions 2, requests 12, retries 0, closes 0", "P00 INFO: stanza-create command end: completed successfully" ] } }, { "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --process-max=4 --repo1-azure-account= --repo1-azure-container=demo-container --repo1-azure-host=blob.core.windows.net --repo1-azure-key= --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo1-type=azure --stanza=demo --start-fast", "P00 WARN: no prior backup exists, incr backup has been changed to full", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 000000070000000000000018, lsn = 0/18000028", " [filtered 1279 lines of output]", "P02 INFO: backup file /var/lib/postgresql/12/demo/base/1/13211 (0B, 100%)", "P01 INFO: backup file /var/lib/postgresql/12/demo/base/1/13196 (0B, 100%)", "P00 INFO: full backup size = 31MB", "P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 000000070000000000000018, lsn = 0/18000100", " [filtered 6 lines of output]" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "global" : { "process-max" : { "value" : "4" }, "repo1-path" : { "value" : "/demo-repo" }, "repo1-s3-bucket" : { "value" : "demo-bucket" }, "repo1-s3-endpoint" : { "value" : "s3.us-east-1.amazonaws.com" }, "repo1-s3-key" : { "value" : "accessKey1" }, "repo1-s3-key-secret" : { "value" : "verySecretKey1" }, "repo1-s3-region" : { "value" : "us-east-1" }, "repo1-type" : { "value" : "s3" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/postgresql/12/demo", "", "[global]", "process-max=4", "repo1-azure-account=pgbackrest", "repo1-azure-container=demo-container", "repo1-azure-key=YXpLZXk=", "repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO", "repo1-cipher-type=aes-256-cbc", "repo1-path=/demo-repo", "repo1-retention-diff=2", "repo1-retention-full=2", "repo1-s3-bucket=demo-bucket", "repo1-s3-endpoint=s3.us-east-1.amazonaws.com", "repo1-s3-key=accessKey1", "repo1-s3-key-secret=verySecretKey1", "repo1-s3-region=us-east-1", "repo1-type=s3", "start-fast=y", "", "[global:archive-push]", "compress-level=3" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "echo \"172.17.0.3 demo-bucket.s3.us-east-1.amazonaws.com s3.us-east-1.amazonaws.com\" | tee -a /etc/hosts" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : "root" }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest repo-create" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "completed successfully" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: stanza-create command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo", "P00 INFO: http statistics: objects 2, sessions 2, requests 12, retries 0, closes 0", "P00 INFO: stanza-create command end: completed successfully" ] } }, { "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --process-max=4 --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo --start-fast", "P00 WARN: no prior backup exists, incr backup has been changed to full", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 00000007000000000000001A, lsn = 0/1A000028", " [filtered 1279 lines of output]", "P04 INFO: backup file /var/lib/postgresql/12/demo/base/1/13211 (0B, 100%)", "P02 INFO: backup file /var/lib/postgresql/12/demo/base/1/13196 (0B, 100%)", "P00 INFO: full backup size = 31MB", "P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 00000007000000000000001A, lsn = 0/1A000100", " [filtered 6 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo", "P00 INFO: stop command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo", "P00 INFO: http statistics: objects 2, sessions 2, requests 14, retries 0, closes 0", "P00 INFO: stanza-delete command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "debian", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.6" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo 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" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo scp build:/build/pgbackrest-release-2.28/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/12/demo" } }, "global" : { "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" }, "repo1-retention-full" : { "value" : "2" }, "start-fast" : { "value" : "y" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-host=pg-primary", "pg1-path=/var/lib/postgresql/12/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/12/demo" } }, "global" : { "log-level-file" : { "value" : "detail" }, "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" }, "repo1-host" : { "value" : "repository" } } }, "reset" : true }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/postgresql/12/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 12 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 12 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/12/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 (12-1): 00000008000000000000001F/000000080000000000000021", "", " full backup: 20200720-122133F", " timestamp start/stop: 2020-07-20 12:21:33 / 2020-07-20 12:21:57", " wal start/stop: 00000008000000000000001F / 00000008000000000000001F", " database size: 31MB, backup size: 31MB", " repository size: 3.7MB, repository backup size: 3.7MB", "", " full backup: 20200720-122159F", " timestamp start/stop: 2020-07-20 12:21:59 / 2020-07-20 12:22:06", " wal start/stop: 000000080000000000000021 / 000000080000000000000021", " database size: 31MB, backup size: 31MB", " repository size: 3.7MB, repository backup size: 3.7MB" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest stop" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u pgbackrest pgbackrest --stanza=demo backup" ], "err-expect" : "56", "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "\\: stop file exists for all stanzas" ] }, "host" : "repository", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 WARN: unable to check pg-1: [StopError] raised from remote-0 protocol on 'pg-primary': stop file exists for all stanzas", "P00 ERROR: [056]: unable to find primary cluster - cannot proceed" ] } }, { "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 pg-1: [StopError] raised from remote-0 protocol on 'pg-primary': stop file exists for stanza demo", "P00 ERROR: [056]: unable to find primary cluster - cannot proceed" ] } }, { "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" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "debian", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.7" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo apt-get install postgresql-client libxml2" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo scp build:/build/pgbackrest-release-2.28/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/12/demo" } }, "global" : { "log-level-file" : { "value" : "detail" }, "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" }, "repo1-host" : { "value" : "repository" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/postgresql/12/demo", "", "[global]", "log-level-file=detail", "repo1-host=repository" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_createcluster 12 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/12/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 2020-07-20 12:18:17", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:19:20", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:19:39", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:20:15", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "# Removed by pgBackRest restore on 2020-07-20 12:21:26 # recovery_target_time = '2020-07-20 12:19:54.471954+00'", "# Removed by pgBackRest restore on 2020-07-20 12:21:26 # recovery_target_action = 'promote'", "", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:21:26", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:22:45", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'" ] } }, { "key" : { "file" : "/etc/postgresql/12/demo/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'" }, "log_line_prefix" : { "value" : "''" }, "max_wal_senders" : { "value" : "3" }, "wal_level" : { "value" : "replica" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "archive_command = 'pgbackrest --stanza=demo archive-push %p'", "archive_mode = on", "hot_standby = on", "log_filename = 'postgresql.log'", "log_line_prefix = ''", "max_wal_senders = 3", "wal_level = replica" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo rm /var/log/postgresql/postgresql-12-demo.log" ], "host" : "pg-standby", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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-12-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 4 lines of output]", "LOG: listening on Unix socket \"/var/run/postgresql/.s.PGSQL.5432\"", "LOG: database system was interrupted; last known up at 2020-07-20 12:22:00 UTC", "LOG: entering standby mode", "LOG: restored log file \"00000008.history\" from archive", "LOG: restored log file \"000000080000000000000021\" from archive", "LOG: redo starts at 0/21000028", "LOG: consistent recovery state reached at 0/21000100", "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/22021750 | 2020-07-20 12:22:56.214561+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 | 2020-07-20 12:23:01.50776+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.28: --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --repo1-host=repository --stanza=demo", "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.7/32 md5\" \\", " >> /etc/postgresql/12/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 12 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.5 port=5432 user=replicator" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/postgresql/12/demo", "recovery-option=primary_conninfo=host=172.17.0.5 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.5:*: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 12 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/12/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 2020-07-20 12:18:17", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:19:20", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:19:39", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:20:15", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "# Removed by pgBackRest restore on 2020-07-20 12:21:26 # recovery_target_time = '2020-07-20 12:19:54.471954+00'", "# Removed by pgBackRest restore on 2020-07-20 12:21:26 # recovery_target_action = 'promote'", "", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:21:26", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "", "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:23:07", "primary_conninfo = 'host=172.17.0.5 port=5432 user=replicator'", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo rm /var/log/postgresql/postgresql-12-demo.log" ], "host" : "pg-standby", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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-12-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 11 lines of output]", "LOG: database system is ready to accept read only connections", "LOG: restored log file \"000000080000000000000022\" from archive", "LOG: started streaming WAL from primary at 0/23000000 on timeline 8" ] } }, { "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 | 2020-07-20 12:23:15.966101+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 | 2020-07-20 12:23:16.607114+00", "(1 row)" ] } }, { "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/12/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/12/demo", "recovery-option=primary_conninfo=host=172.17.0.5 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 12 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.28: --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --repo1-host=repository --stanza=demo", "P00 INFO: WAL segment 000000080000000000000028 successfully archived to '/var/lib/pgbackrest/archive/demo/12-1/0000000800000000/000000080000000000000028-7fa11b53cc7643903393d14297d4a8b0062c5cc7.gz'", "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.28: [/var/lib/postgresql/12/demo/pg_wal] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: push 1 WAL file(s) to archive: 000000080000000000000023", "P01 DETAIL: pushed WAL file '000000080000000000000023' to the archive", "P00 INFO: archive-push:async command end: completed successfully", "", "-------------------PROCESS START-------------------", "P00 INFO: archive-push:async command begin 2.28: [/var/lib/postgresql/12/demo/pg_wal] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: push 4 WAL file(s) to archive: 000000080000000000000024...000000080000000000000027", "P01 DETAIL: pushed WAL file '000000080000000000000024' to the archive", "P02 DETAIL: pushed WAL file '000000080000000000000025' to the archive", "P02 DETAIL: pushed WAL file '000000080000000000000027' to the archive", "P01 DETAIL: pushed WAL file '000000080000000000000026' to the archive", "P00 INFO: archive-push:async command end: completed successfully", "", "-------------------PROCESS START-------------------", "P00 INFO: archive-push:async command begin 2.28: [/var/lib/postgresql/12/demo/pg_wal] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: push 1 WAL file(s) to archive: 000000080000000000000028", "P01 DETAIL: pushed WAL file '000000080000000000000028' 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.28: [000000080000000000000021, 000000080000000000000022, 000000080000000000000023, 000000080000000000000024, 000000080000000000000025, 000000080000000000000026, 000000080000000000000027, 000000080000000000000028] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: get 8 WAL file(s) from archive: 000000080000000000000021...000000080000000000000028", "P01 DETAIL: found 000000080000000000000021 in the archive", "P01 DETAIL: unable to find 000000080000000000000023 in the archive", "P01 DETAIL: unable to find 000000080000000000000024 in the archive", "P02 DETAIL: found 000000080000000000000022 in the archive", "P01 DETAIL: unable to find 000000080000000000000025 in the archive", "P02 DETAIL: unable to find 000000080000000000000026 in the archive", " [filtered 18 lines of output]", "P00 INFO: archive-get:async command begin 2.28: [000000080000000000000023, 000000080000000000000024, 000000080000000000000025, 000000080000000000000026, 000000080000000000000027, 000000080000000000000028, 000000080000000000000029, 00000008000000000000002A] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/12/demo --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: get 8 WAL file(s) from archive: 000000080000000000000023...00000008000000000000002A", "P01 DETAIL: found 000000080000000000000023 in the archive", "P02 DETAIL: found 000000080000000000000024 in the archive", "P01 DETAIL: found 000000080000000000000025 in the archive", "P02 DETAIL: found 000000080000000000000026 in the archive", "P02 DETAIL: unable to find 000000080000000000000028 in the archive", "P02 DETAIL: unable to find 000000080000000000000029 in the archive", "P02 DETAIL: unable to find 00000008000000000000002A in the archive", "P01 DETAIL: found 000000080000000000000027 in the archive", "P00 INFO: archive-get:async command end: completed successfully", "", " [filtered 8 lines of output]", "P02 DETAIL: unable to find 00000008000000000000002E in the archive", "P02 DETAIL: unable to find 00000008000000000000002F in the archive", "P01 DETAIL: found 000000080000000000000028 in the archive", "P00 INFO: archive-get:async command end: completed successfully" ] } }, { "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/12/demo" } }, "global" : { "backup-standby" : { "value" : "y" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-host=pg-primary", "pg1-path=/var/lib/postgresql/12/demo", "pg2-host=pg-standby", "pg2-path=/var/lib/postgresql/12/demo", "", "[global]", "backup-standby=y", "process-max=3", "repo1-path=/var/lib/pgbackrest", "repo1-retention-full=2", "start-fast=y" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u pgbackrest pgbackrest --stanza=demo --log-level-console=detail backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "backup file pg-primary|replay on the standby" ] }, "host" : "repository", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 2 lines of output]", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 00000008000000000000002A, lsn = 0/2A000028", "P00 INFO: wait for replay on the standby to reach 0/2A000028", "P00 INFO: replay on the standby reached 0/2A000028", "P01 INFO: backup file pg-primary:/var/lib/postgresql/12/demo/global/pg_control (8KB, 0%) checksum ac5f78fa7e9b649b9b00de0b1c55e4051f7e41b5", "P01 INFO: backup file pg-primary:/var/lib/postgresql/12/demo/pg_logical/replorigin_checkpoint (8B, 0%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532", "P02 INFO: backup file pg-standby:/var/lib/postgresql/12/demo/base/13359/2608 (456KB, 19%) checksum 837cc24bbcbbf5adf98f12737a8cbe508446b214", "P04 INFO: backup file pg-standby:/var/lib/postgresql/12/demo/base/13359/2674 (344KB, 34%) checksum 1ceeda8301399d283903f4cf6cf8d8f444103c59", " [filtered 1293 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 demo stop" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 12 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/13/bin/initdb \\", " -D /var/lib/postgresql/13/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 13 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/13/bin/pg_upgrade \\", " --old-bindir=/usr/lib/postgresql/12/bin \\", " --new-bindir=/usr/lib/postgresql/13/bin \\", " --old-datadir=/var/lib/postgresql/12/demo \\", " --new-datadir=/var/lib/postgresql/13/demo \\", " --old-options=\" -c config_file=/etc/postgresql/12/demo/postgresql.conf\" \\", " --new-options=\" -c config_file=/etc/postgresql/13/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 62 lines of output]", "Creating script to delete old cluster ok", "", "Upgrade Complete", "----------------", "Optimizer statistics are not transferred by pg_upgrade so,", " [filtered 4 lines of output]" ] } }, { "key" : { "file" : "/etc/postgresql/13/demo/postgresql.conf", "host" : "pg-primary", "option" : { "archive_command" : { "value" : "'pgbackrest --stanza=demo archive-push %p'" }, "archive_mode" : { "value" : "on" }, "listen_addresses" : { "value" : "'*'" }, "log_line_prefix" : { "value" : "''" }, "max_wal_senders" : { "value" : "3" }, "port" : { "value" : "5432" }, "wal_level" : { "value" : "replica" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "archive_command = 'pgbackrest --stanza=demo archive-push %p'", "archive_mode = on", "listen_addresses = '*'", "log_line_prefix = ''", "max_wal_senders = 3", "port = 5432", "wal_level = replica" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "demo" : { "pg1-path" : { "value" : "/var/lib/postgresql/13/demo" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/postgresql/13/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/13/demo" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/postgresql/13/demo", "recovery-option=primary_conninfo=host=172.17.0.5 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/13/demo" }, "pg2-path" : { "value" : "/var/lib/postgresql/13/demo" } }, "global" : { "backup-standby" : { "value" : "n" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-host=pg-primary", "pg1-path=/var/lib/postgresql/13/demo", "pg2-host=pg-standby", "pg2-path=/var/lib/postgresql/13/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/12/demo/pg_hba.conf \\", " /etc/postgresql/13/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 pgbackrest pgbackrest --stanza=demo --no-online \\", " --log-level-console=info stanza-upgrade" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "completed successfully" ] }, "host" : "repository", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: stanza-upgrade command begin 2.28: --no-backup-standby --log-level-console=info --log-level-stderr=off --no-log-timestamp --no-online --pg1-host=pg-primary --pg2-host=pg-standby --pg1-path=/var/lib/postgresql/13/demo --pg2-path=/var/lib/postgresql/13/demo --repo1-path=/var/lib/pgbackrest --stanza=demo", "P00 INFO: stanza-upgrade command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_ctlcluster 13 demo start" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pg_lsclusters" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "Ver Cluster Port Status Owner Data directory Log file", "12 demo 5432 down postgres /var/lib/postgresql/12/demo /var/log/postgresql/postgresql-12-demo.log", "13 demo 5432 online postgres /var/lib/postgresql/13/demo /var/log/postgresql/postgresql-13-demo.log" ] } }, { "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 12 demo" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_dropcluster 12 demo" ], "host" : "pg-standby", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo pg_createcluster 13 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 pg-2: [DbConnectError] raised from remote-0 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 \"/var/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 --delta --type=standby restore" ], "host" : "pg-standby", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "file" : "/etc/postgresql/13/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 13 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/13/demo", "pg2-host=pg-standby", "pg2-path=/var/lib/postgresql/13/demo", "", "[global]", "backup-standby=y", "process-max=3", "repo1-path=/var/lib/pgbackrest", "repo1-retention-full=2", "start-fast=y" ] } } ] } }, "{\"os-type\":\"centos6\"}" : { "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" : "centos6", "param" : "azurite-blob --blobPort 443 --blobHost 0.0.0.0 --cert=/root/public.crt --key=/root/private.key", "update-hosts" : false }, "type" : "host", "value" : { "ip" : "172.17.0.2" } }, { "key" : { "id" : "s3", "image" : "minio/minio:RELEASE.2020-05-06T23-23-25Z", "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" : "centos6", "param" : "server /data --address :443", "update-hosts" : false }, "type" : "host", "value" : { "ip" : "172.17.0.3" } }, { "key" : { "id" : "build", "image" : "pgbackrest/doc:centos6", "name" : "build", "option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "centos6", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.4" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo mkdir -p /build/pgbackrest-release-2.28" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo cp -r /pgbackrest/src /build/pgbackrest-release-2.28" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo chown -R vagrant /build/pgbackrest-release-2.28" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo yum install make gcc postgresql-devel openssl-devel libxml2-devel \\", " lz4-devel libzstd-devel bzip2-devel" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "cd /build/pgbackrest-release-2.28/src && ./configure && make" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "id" : "pg1", "image" : "pgbackrest/doc:centos6", "name" : "pg-primary", "option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "centos6", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.5" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo yum install postgresql-libs" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo scp build:/build/pgbackrest-release-2.28/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.28 - General help", "", "Usage:", " pgbackrest [options] [command]", "", "Commands:", " 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.", " restore Restore a database cluster.", " 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.", " version Get version.", "", "Use 'pgbackrest help [command]' for more information." ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres /usr/pgsql-9.5/bin/initdb \\", " -D /var/lib/pgsql/9.5/data -k -A peer" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "file" : "/var/lib/pgsql/9.5/data/postgresql.conf", "host" : "pg-primary", "option" : { "listen_addresses" : { "value" : "'*'" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "listen_addresses = '*'" ] } }, { "key" : { "file" : "/var/lib/pgsql/9.5/data/postgresql.conf", "host" : "pg-primary", "option" : { "log_line_prefix" : { "value" : "''" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "listen_addresses = '*'", "log_line_prefix = ''" ] } }, { "key" : { "file" : "/var/lib/pgsql/9.5/data/postgresql.conf", "host" : "pg-primary", "option" : { "log_filename" : { "value" : "'postgresql.log'" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "listen_addresses = '*'", "log_filename = 'postgresql.log'", "log_line_prefix = ''" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "demo" : { "pg1-path" : { "value" : "/var/lib/pgsql/9.5/data" } }, "global" : { "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/9.5/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.28 - '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/9.5/data", "", "[global]", "repo1-path=/var/lib/pgbackrest" ] } }, { "key" : { "file" : "/var/lib/pgsql/9.5/data/postgresql.conf", "host" : "pg-primary", "option" : { "archive_command" : { "value" : "'pgbackrest --stanza=demo archive-push %p'" }, "archive_mode" : { "value" : "on" }, "max_wal_senders" : { "value" : "3" }, "wal_level" : { "value" : "hot_standby" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "archive_command = 'pgbackrest --stanza=demo archive-push %p'", "archive_mode = on", "listen_addresses = '*'", "log_filename = 'postgresql.log'", "log_line_prefix = ''", "max_wal_senders = 3", "wal_level = hot_standby" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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" : { "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/9.5/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/9.5/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/9.5/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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo", "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo", "P00 INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo/9.5-1/0000000100000000/000000010000000000000001-7b49da353fbe99b864808dd4c17668ba3faed32a.gz'", "P00 INFO: check command end: completed successfully" ] } }, { "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo", "P00 WARN: no prior backup exists, incr backup has been changed to full", "P00 INFO: execute exclusive pg_start_backup(): backup begins after the next regular checkpoint completes", "P00 INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028", " [filtered 851 lines of output]", "P01 INFO: backup file /var/lib/pgsql/9.5/data/base/1/12216 (0B, 100%)", "P01 INFO: backup file /var/lib/pgsql/9.5/data/base/1/12211 (0B, 100%)", "P00 INFO: full backup size = 20.6MB", "P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 000000010000000000000002, lsn = 0/2000130", " [filtered 4 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" : [ "20200720-120824F" ] } }, { "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 5 lines of output]", "P01 INFO: backup file /var/lib/pgsql/9.5/data/pg_log/postgresql.log (903B, 97%) checksum 8796f9fcb364417508862d80d94377269bd8600d", "P01 INFO: backup file /var/lib/pgsql/9.5/data/backup_label (246B, 100%) checksum c1a65e3778f88a54e1b974c4dcd39f8f9446e1b9", "P00 INFO: diff backup size = 9.1KB", "P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 000000010000000000000003, lsn = 0/30000F8", " [filtered 4 lines of output]" ] } }, { "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 (9.5-1): 000000010000000000000001/000000010000000000000003", "", " full backup: 20200720-120824F", " timestamp start/stop: 2020-07-20 12:08:24 / 2020-07-20 12:08:37", " wal start/stop: 000000010000000000000002 / 000000010000000000000002", " database size: 20.6MB, backup size: 20.6MB", " repository size: 2.4MB, repository backup size: 2.4MB", "", " diff backup: 20200720-120824F_20200720-120839D", " timestamp start/stop: 2020-07-20 12:08:39 / 2020-07-20 12:08:41", " wal start/stop: 000000010000000000000003 / 000000010000000000000003", " database size: 20.6MB, backup size: 9.1KB", " repository size: 2.4MB, repository backup size: 768B", " backup reference list: 20200720-120824F" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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/pgsql/9.5/data/global/pg_control" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo rm -f /var/lib/pgsql/9.5/pgstartup.log" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 start" ], "err-expect" : "1", "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo cat /var/lib/pgsql/9.5/pgstartup.log" ], "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" : [ "postmaster: could not find the database system", "Expected to find it in the directory \"/var/lib/pgsql/9.5/data\",", "but could not open file \"/var/lib/pgsql/9.5/data/global/pg_control\": No such file or directory" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres find /var/lib/pgsql/9.5/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 service postgresql-9.5 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 pgbackrest --stanza=demo --type=incr \\", " --log-level-console=info backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "backup begins after the next regular checkpoint completes" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: backup command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --type=incr", "P00 INFO: last backup label = 20200720-120824F_20200720-120839D, version = 2.28", "P00 INFO: execute exclusive pg_start_backup(): backup begins after the next regular checkpoint completes", "P00 INFO: backup start archive = 000000020000000000000005, lsn = 0/5000028", "P00 WARN: a timeline switch has occurred since the 20200720-120824F_20200720-120839D backup, enabling delta checksum", " [filtered 11 lines of output]" ] } }, { "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/9.5/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 --type=incr \\", " --log-level-console=info backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "backup begins after the requested immediate checkpoint completes" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: backup command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --type=incr", "P00 INFO: last backup label = 20200720-120824F_20200720-120903I, version = 2.28", "P00 INFO: execute exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 000000020000000000000006, lsn = 0/6000028", "P01 INFO: backup file /var/lib/pgsql/9.5/data/global/pg_control (8KB, 80%) checksum 3567f041b6f50e7b0a1b6fd041f82786c405f87a", " [filtered 9 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo chmod 550 /var/lib/pgbackrest/backup/demo/" ], "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=incr \\", " --log-level-console=info backup" ], "err-expect" : "47", "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "ERROR:" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 2 lines of output]", "P00 INFO: execute exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 000000020000000000000007, lsn = 0/7000028", "P00 ERROR: [047]: unable to create path '/var/lib/pgbackrest/backup/demo/20200720-120824F_20200720-120912I': [13] Permission denied", "P00 INFO: backup command end: aborted with exception [047]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo chmod 750 /var/lib/pgbackrest/backup/demo/" ], "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=incr \\", " --log-level-console=info backup" ], "err-expect" : "57", "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "ERROR:" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: backup command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --type=incr", "P00 INFO: last backup label = 20200720-120824F_20200720-120908I, version = 2.28", "P00 INFO: execute exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 ERROR: [057]: unable to execute query 'select lsn::text as lsn,", " pg_catalog.pg_xlogfile_name(lsn)::text as wal_segment_name", " from pg_catalog.pg_start_backup('pgBackRest backup started at ' || current_timestamp, true) as lsn': ERROR: a backup is already in progress", " HINT: Run pg_stop_backup() and try again.", "P00 INFO: backup command end: aborted with exception [057]" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "global" : { "stop-auto" : { "value" : "y" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/9.5/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", "stop-auto=y", "", "[global:archive-push]", "compress-level=3" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --type=incr \\", " --log-level-console=info backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "cluster is already in backup mode|backup begins after the requested immediate checkpoint completes" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: backup command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --stop-auto --type=incr", "P00 INFO: last backup label = 20200720-120824F_20200720-120908I, version = 2.28", "P00 INFO: execute exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 WARN: the cluster is already in backup mode but no pgBackRest backup process is running. pg_stop_backup() will be called so a new backup can be started.", "P00 INFO: backup start archive = 000000020000000000000008, lsn = 0/8000028", "P01 INFO: backup file /var/lib/pgsql/9.5/data/global/pg_control (8KB, 77%) checksum 3b72a369c21f89870f6e78a689bd57f583229d76", " [filtered 9 lines of output]" ] } }, { "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 jsonb);", "", " -- 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 temp_pgbackrest_data.data", " 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\" | 2020-07-20 12:09:20+00 | 000000020000000000000008", "(1 row)" ] } }, { "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/9.5/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", "stop-auto=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 20200720-120824F|remove archive" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 861 lines of output]", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo", "P00 DETAIL: archive retention on backup 20200720-120824F, archiveId = 9.5-1, start = 000000010000000000000002", "P00 DETAIL: remove archive: archiveId = 9.5-1, start = 000000010000000000000001, stop = 000000010000000000000001", "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" : [ "20200720-120924F" ] } }, { "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\\: 20200720-120824F|archive retention on backup 20200720-120924F|remove archive" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 861 lines of output]", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo", "P00 INFO: expire full backup set: 20200720-120824F, 20200720-120824F_20200720-120839D, 20200720-120824F_20200720-120903I, 20200720-120824F_20200720-120908I, 20200720-120824F_20200720-120916I", "P00 INFO: remove expired backup 20200720-120824F_20200720-120916I", "P00 INFO: remove expired backup 20200720-120824F_20200720-120908I", " [filtered 3 lines of output]" ] } }, { "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/9.5/data", "", "[global]", "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", "stop-auto=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" : [ "20200720-120938F_20200720-120955D" ] } }, { "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: 20200720-120938F_20200720-120955D" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 13 lines of output]", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=1 --repo1-retention-full=2 --stanza=demo", "P00 INFO: expire diff backup set: 20200720-120938F_20200720-120955D, 20200720-120938F_20200720-120958I", "P00 INFO: remove expired backup 20200720-120938F_20200720-120958I", "P00 INFO: remove expired backup 20200720-120938F_20200720-120955D" ] } }, { "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/9.5/data", "", "[global]", "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", "stop-auto=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" : [ "20200720-120938F_20200720-121002D" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres psql -c \" \\", " select pg_create_restore_point('generate WAL'); select pg_switch_xlog(); \\", " select pg_create_restore_point('generate WAL'); select pg_switch_xlog();\"" ], "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 10 lines of output]", "P00 INFO: backup stop archive = 000000020000000000000012, lsn = 0/120000F8", "P00 INFO: check archive for segment(s) 000000020000000000000012:000000020000000000000012", "P00 INFO: new backup label = 20200720-120938F_20200720-121009D", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=2 --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" : [ "20200720-120938F_20200720-121009D" ] } }, { "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 20200720-120938F_20200720-121002D|remove archive" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: expire command begin 2.28: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --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: archive retention on backup 20200720-120924F, archiveId = 9.5-1, start = 00000002000000000000000A, stop = 00000002000000000000000A", "P00 DETAIL: archive retention on backup 20200720-120938F, archiveId = 9.5-1, start = 00000002000000000000000B, stop = 00000002000000000000000B", "P00 DETAIL: archive retention on backup 20200720-120938F_20200720-121002D, archiveId = 9.5-1, start = 00000002000000000000000F, stop = 00000002000000000000000F", "P00 DETAIL: archive retention on backup 20200720-120938F_20200720-121009D, archiveId = 9.5-1, start = 000000020000000000000012", "P00 DETAIL: remove archive: archiveId = 9.5-1, start = 00000002000000000000000C, stop = 00000002000000000000000E", "P00 DETAIL: remove archive: archiveId = 9.5-1, start = 000000020000000000000010, stop = 000000020000000000000011", "P00 INFO: expire command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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/pgsql/9.5/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/9.5/data'", "P00 DETAIL: remove invalid file '/var/lib/pgsql/9.5/data/backup_label.old'", "P00 DETAIL: remove invalid file '/var/lib/pgsql/9.5/data/base/12378/pg_internal.init'", " [filtered 902 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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 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 -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 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" : [ "24576" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres du -sh /var/lib/pgsql/9.5/data/base/24576" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "6.9M\t/var/lib/pgsql/9.5/data/base/24576" ] } }, { "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" : [ "20200720-120938F_20200720-121022I" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo \\", " --set=20200720-120938F_20200720-121022I 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 11 lines of output]", " repository size: 4MB, repository backup size: 1.6MB", " backup reference list: 20200720-120938F, 20200720-120938F_20200720-121009D", " database list: postgres (12378), test1 (24576), test2 (24577)" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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 restore" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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: FATAL: relation mapping file \"base/24576/pg_filenode.map\" contains invalid data" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres du -sh /var/lib/pgsql/9.5/data/base/24576" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "152K\t/var/lib/pgsql/9.5/data/base/24576" ] } }, { "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", " 12373 | template0", " 12378 | postgres", " 24577 | test2", "(4 rows)" ] } }, { "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 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" : [ "2020-07-20 12:10:51.632821+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 service postgresql-9.5 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 \\", " --type=time \"--target=2020-07-20 12:10:51.632821+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/9.5/data/pg_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/9.5/data/recovery.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" : [ "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:10:55", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "recovery_target_time = '2020-07-20 12:10:51.632821+00'", "recovery_target_action = 'promote'" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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/lib/pgsql/9.5/data/pg_log/postgresql.log" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "recovery stopping before|last completed transaction|starting point-in-time recovery" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "LOG: database system was interrupted; last known up at 2020-07-20 12:10:44 UTC", "LOG: starting point-in-time recovery to 2020-07-20 12:10:51.632821+00", "LOG: restored log file \"00000004.history\" from archive", "LOG: restored log file \"000000040000000000000018\" from archive", "LOG: redo starts at 0/18000028", "LOG: consistent recovery state reached at 0/180000F8", "LOG: restored log file \"000000040000000000000019\" from archive", "LOG: recovery stopping before commit of transaction 630, time 2020-07-20 12:10:53.268928+00", "LOG: redo done at 0/1901BBB8", "LOG: last completed transaction was at log time 2020-07-20 12:10:49.981627+00", "LOG: selected new timeline ID: 5", "LOG: archive recovery complete", " [filtered 4 lines of output]" ] } }, { "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" : [ "20200720-120938F_20200720-121102I" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest info" ], "highlight" : { "filter" : false, "filter-context" : 2, "list" : [ "20200720-120938F_20200720-121102I" ] }, "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 (9.5-1): 00000002000000000000000A/00000005000000000000001A", "", " full backup: 20200720-120924F", " timestamp start/stop: 2020-07-20 12:09:24 / 2020-07-20 12:09:37", " wal start/stop: 00000002000000000000000A / 00000002000000000000000A", " database size: 20.6MB, backup size: 20.6MB", " repository size: 2.4MB, repository backup size: 2.4MB", "", " full backup: 20200720-120938F", " timestamp start/stop: 2020-07-20 12:09:38 / 2020-07-20 12:09:53", " wal start/stop: 00000002000000000000000B / 00000002000000000000000B", " database size: 20.6MB, backup size: 20.6MB", " repository size: 2.4MB, repository backup size: 2.4MB", "", " diff backup: 20200720-120938F_20200720-121009D", " timestamp start/stop: 2020-07-20 12:10:09 / 2020-07-20 12:10:12", " wal start/stop: 000000020000000000000012 / 000000020000000000000012", " database size: 20.6MB, backup size: 115.9KB", " repository size: 2.4MB, repository backup size: 12.6KB", " backup reference list: 20200720-120938F", "", " incr backup: 20200720-120938F_20200720-121022I", " timestamp start/stop: 2020-07-20 12:10:22 / 2020-07-20 12:10:32", " wal start/stop: 000000030000000000000015 / 000000030000000000000015", " database size: 34MB, backup size: 13.5MB", " repository size: 4MB, repository backup size: 1.6MB", " backup reference list: 20200720-120938F, 20200720-120938F_20200720-121009D", "", " diff backup: 20200720-120938F_20200720-121044D", " timestamp start/stop: 2020-07-20 12:10:44 / 2020-07-20 12:10:49", " wal start/stop: 000000040000000000000018 / 000000040000000000000018", " database size: 27.3MB, backup size: 6.9MB", " repository size: 3.2MB, repository backup size: 831.6KB", " backup reference list: 20200720-120938F", "", " incr backup: 20200720-120938F_20200720-121102I", " timestamp start/stop: 2020-07-20 12:11:02 / 2020-07-20 12:11:05", " wal start/stop: 00000005000000000000001A / 00000005000000000000001A", " database size: 27.3MB, backup size: 2.0MB", " repository size: 3.2MB, repository backup size: 210.1KB", " backup reference list: 20200720-120938F, 20200720-120938F_20200720-121044D" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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=20200720-120938F_20200720-121102I \\", " --type=time \"--target=2020-07-20 12:10:51.632821+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/9.5/data/pg_log/postgresql.log" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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\"" ], "err-expect" : "1", "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "does not exist" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "ERROR: relation \"important_table\" does not exist", "LINE 1: select * from important_table", " ^" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres cat /var/lib/pgsql/9.5/data/pg_log/postgresql.log" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "starting point-in-time recovery|consistent recovery state reached" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "LOG: database system was interrupted; last known up at 2020-07-20 12:11:02 UTC", "LOG: starting point-in-time recovery to 2020-07-20 12:10:51.632821+00", "LOG: restored log file \"00000005.history\" from archive", "LOG: restored log file \"00000005000000000000001A\" from archive", "LOG: redo starts at 0/1A000028", "LOG: consistent recovery state reached at 0/1A0000F8", "LOG: redo done at 0/1A0000F8", "LOG: restored log file \"00000005000000000000001A\" from archive", " [filtered 8 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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 \\", " --type=time \"--target=2020-07-20 12:10:51.632821+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/9.5/data/pg_log/postgresql.log" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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/lib/pgsql/9.5/data/pg_log/postgresql.log" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "recovery stopping before|last completed transaction|starting point-in-time recovery" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "LOG: database system was interrupted; last known up at 2020-07-20 12:10:44 UTC", "LOG: starting point-in-time recovery to 2020-07-20 12:10:51.632821+00", "LOG: restored log file \"00000004.history\" from archive", "LOG: restored log file \"000000040000000000000018\" from archive", "LOG: redo starts at 0/18000028", "LOG: consistent recovery state reached at 0/180000F8", "LOG: restored log file \"000000040000000000000019\" from archive", "LOG: recovery stopping before commit of transaction 630, time 2020-07-20 12:10:53.268928+00", "LOG: redo done at 0/1901BBB8", "LOG: last completed transaction was at log time 2020-07-20 12:10:49.981627+00", "LOG: restored log file \"00000005.history\" from archive", "LOG: restored log file \"00000006.history\" from archive", " [filtered 6 lines of output]" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "global" : { "process-max" : { "value" : "4" }, "repo1-azure-account" : { "value" : "pgbackrest" }, "repo1-azure-container" : { "value" : "demo-container" }, "repo1-azure-host" : { "value" : "blob.core.windows.net" }, "repo1-azure-key" : { "value" : "YXpLZXk=" }, "repo1-path" : { "value" : "/demo-repo" }, "repo1-type" : { "value" : "azure" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/9.5/data", "", "[global]", "process-max=4", "repo1-azure-account=pgbackrest", "repo1-azure-container=demo-container", "repo1-azure-key=YXpLZXk=", "repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO", "repo1-cipher-type=aes-256-cbc", "repo1-path=/demo-repo", "repo1-retention-diff=2", "repo1-retention-full=2", "repo1-type=azure", "start-fast=y", "stop-auto=y", "", "[global:archive-push]", "compress-level=3" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "echo \"172.17.0.2 blob.core.windows.net\" | tee -a /etc/hosts" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : "root" }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest repo-create" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "completed successfully" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: stanza-create command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-azure-account= --repo1-azure-container=demo-container --repo1-azure-host=blob.core.windows.net --repo1-azure-key= --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-type=azure --stanza=demo", "P00 INFO: http statistics: objects 2, sessions 2, requests 12, retries 0, closes 0", "P00 INFO: stanza-create command end: completed successfully" ] } }, { "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --process-max=4 --repo1-azure-account= --repo1-azure-container=demo-container --repo1-azure-host=blob.core.windows.net --repo1-azure-key= --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo1-type=azure --stanza=demo --start-fast --stop-auto", "P00 WARN: no prior backup exists, incr backup has been changed to full", "P00 INFO: execute exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 00000007000000000000001A, lsn = 0/1A000028", " [filtered 1119 lines of output]", "P02 INFO: backup file /var/lib/pgsql/9.5/data/base/1/12216 (0B, 100%)", "P04 INFO: backup file /var/lib/pgsql/9.5/data/base/1/12211 (0B, 100%)", "P00 INFO: full backup size = 27.3MB", "P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 00000007000000000000001A, lsn = 0/1A0000F8", " [filtered 6 lines of output]" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "global" : { "process-max" : { "value" : "4" }, "repo1-path" : { "value" : "/demo-repo" }, "repo1-s3-bucket" : { "value" : "demo-bucket" }, "repo1-s3-endpoint" : { "value" : "s3.us-east-1.amazonaws.com" }, "repo1-s3-key" : { "value" : "accessKey1" }, "repo1-s3-key-secret" : { "value" : "verySecretKey1" }, "repo1-s3-region" : { "value" : "us-east-1" }, "repo1-type" : { "value" : "s3" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/9.5/data", "", "[global]", "process-max=4", "repo1-azure-account=pgbackrest", "repo1-azure-container=demo-container", "repo1-azure-key=YXpLZXk=", "repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO", "repo1-cipher-type=aes-256-cbc", "repo1-path=/demo-repo", "repo1-retention-diff=2", "repo1-retention-full=2", "repo1-s3-bucket=demo-bucket", "repo1-s3-endpoint=s3.us-east-1.amazonaws.com", "repo1-s3-key=accessKey1", "repo1-s3-key-secret=verySecretKey1", "repo1-s3-region=us-east-1", "repo1-type=s3", "start-fast=y", "stop-auto=y", "", "[global:archive-push]", "compress-level=3" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "echo \"172.17.0.3 demo-bucket.s3.us-east-1.amazonaws.com s3.us-east-1.amazonaws.com\" | tee -a /etc/hosts" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : "root" }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest repo-create" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "completed successfully" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: stanza-create command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo", "P00 INFO: http statistics: objects 2, sessions 2, requests 12, retries 0, closes 0", "P00 INFO: stanza-create command end: completed successfully" ] } }, { "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --process-max=4 --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo --start-fast --stop-auto", "P00 WARN: no prior backup exists, incr backup has been changed to full", "P00 INFO: execute exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 00000007000000000000001C, lsn = 0/1C000028", " [filtered 1119 lines of output]", "P04 INFO: backup file /var/lib/pgsql/9.5/data/base/1/12216 (0B, 100%)", "P01 INFO: backup file /var/lib/pgsql/9.5/data/base/1/12211 (0B, 100%)", "P00 INFO: full backup size = 27.3MB", "P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 00000007000000000000001C, lsn = 0/1C0000F8", " [filtered 6 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo", "P00 INFO: stop command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo", "P00 INFO: http statistics: objects 2, sessions 2, requests 14, retries 0, closes 0", "P00 INFO: stanza-delete command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 start" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "id" : "repo1", "image" : "pgbackrest/doc:centos6", "name" : "repository", "option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "centos6", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.6" } }, { "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" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo scp build:/build/pgbackrest-release-2.28/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/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 \\", " -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/pgsql/.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/pgsql/.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/pgsql/9.5/data" } }, "global" : { "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" }, "repo1-retention-full" : { "value" : "2" }, "start-fast" : { "value" : "y" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-host=pg-primary", "pg1-path=/var/lib/pgsql/9.5/data", "", "[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/pgsql/9.5/data" } }, "global" : { "log-level-file" : { "value" : "detail" }, "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" }, "repo1-host" : { "value" : "repository" } } }, "reset" : true }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/9.5/data", "", "[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 service postgresql-9.5 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 service postgresql-9.5 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/pgsql/9.5/data", "", "[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 (9.5-1): 000000080000000000000021/000000080000000000000022", "", " full backup: 20200720-121234F", " timestamp start/stop: 2020-07-20 12:12:34 / 2020-07-20 12:12:49", " wal start/stop: 000000080000000000000021 / 000000080000000000000021", " database size: 27.3MB, backup size: 27.3MB", " repository size: 3.2MB, repository backup size: 3.2MB", "", " full backup: 20200720-121252F", " timestamp start/stop: 2020-07-20 12:12:52 / 2020-07-20 12:13:00", " wal start/stop: 000000080000000000000022 / 000000080000000000000022", " database size: 27.3MB, backup size: 27.3MB", " repository size: 3.2MB, repository backup size: 3.2MB" ] } }, { "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 pg-1: [StopError] raised from remote-0 protocol on 'pg-primary': stop file exists for all stanzas", "P00 ERROR: [056]: unable to find primary cluster - cannot proceed" ] } }, { "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 pg-1: [StopError] raised from remote-0 protocol on 'pg-primary': stop file exists for stanza demo", "P00 ERROR: [056]: unable to find primary cluster - cannot proceed" ] } }, { "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:centos6", "name" : "pg-standby", "option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "centos6", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.7" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo yum install postgresql-libs" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo scp build:/build/pgbackrest-release-2.28/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/pgsql/.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/pgsql/.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/pgsql/.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/pgsql/.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/pgsql/9.5/data" } }, "global" : { "log-level-file" : { "value" : "detail" }, "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" }, "repo1-host" : { "value" : "repository" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/9.5/data", "", "[global]", "log-level-file=detail", "repo1-host=repository" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres mkdir -p -m 700 /var/lib/pgsql/9.5/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/9.5/data/recovery.conf" ], "host" : "pg-standby", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:13:26", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "standby_mode = 'on'" ] } }, { "key" : { "file" : "/var/lib/pgsql/9.5/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'" }, "log_line_prefix" : { "value" : "''" }, "max_wal_senders" : { "value" : "3" }, "wal_level" : { "value" : "hot_standby" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "archive_command = 'pgbackrest --stanza=demo archive-push %p'", "archive_mode = on", "hot_standby = on", "log_filename = 'postgresql.log'", "log_line_prefix = ''", "max_wal_senders = 3", "wal_level = hot_standby" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo rm /var/lib/pgsql/9.5/data/pg_log/postgresql.log" ], "host" : "pg-standby", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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/lib/pgsql/9.5/data/pg_log/postgresql.log" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "entering standby mode|database system is ready to accept read only connections" ] }, "host" : "pg-standby", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "LOG: database system was interrupted; last known up at 2020-07-20 12:12:52 UTC", "LOG: entering standby mode", "LOG: restored log file \"00000008.history\" from archive", "LOG: restored log file \"000000080000000000000022\" from archive", "LOG: redo starts at 0/22000028", "LOG: consistent recovery state reached at 0/220000F8", "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_xlog()\";" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " pg_switch_xlog | now ", "----------------+-----------------------------", " 0/2301F600 | 2020-07-20 12:13:35.4465+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 | now ", "----------------+-------------------------------", " Important Data | 2020-07-20 12:13:36.323531+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.28: --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-host=repository --stanza=demo", "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.7/32 md5\" \\", " >> /var/lib/pgsql/9.5/data/pg_hba.conf'" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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.5 port=5432 user=replicator" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/9.5/data", "recovery-option=primary_conninfo=host=172.17.0.5 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.5:*: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 service postgresql-9.5 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/pgsql/9.5/data/recovery.conf" ], "host" : "pg-standby", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:13:42", "primary_conninfo = 'host=172.17.0.5 port=5432 user=replicator'", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "standby_mode = 'on'" ] } }, { "key" : { "file" : "/var/lib/pgsql/9.5/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'", "log_line_prefix = ''", "max_wal_senders = 3", "wal_level = hot_standby" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo rm /var/lib/pgsql/9.5/data/pg_log/postgresql.log" ], "host" : "pg-standby", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 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/lib/pgsql/9.5/data/pg_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 6 lines of output]", "LOG: database system is ready to accept read only connections", "LOG: restored log file \"000000080000000000000023\" from archive", "LOG: started streaming WAL from primary at 0/24000000 on timeline 8" ] } }, { "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 | now ", "----------------+-------------------------------", " Important Data | 2020-07-20 12:13:50.521185+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 | now ", "----------------+-------------------------------", " Important Data | 2020-07-20 12:13:51.035583+00", "(1 row)" ] } }, { "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/9.5/data", "", "[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/pgsql/9.5/data", "recovery-option=primary_conninfo=host=172.17.0.5 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 service postgresql-9.5 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_xlog(); \\", " select pg_create_restore_point('test async push'); select pg_switch_xlog(); \\", " select pg_create_restore_point('test async push'); select pg_switch_xlog(); \\", " select pg_create_restore_point('test async push'); select pg_switch_xlog(); \\", " select pg_create_restore_point('test async push'); select pg_switch_xlog();\"" ], "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.28: --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-host=repository --stanza=demo", "P00 INFO: WAL segment 000000080000000000000029 successfully archived to '/var/lib/pgbackrest/archive/demo/9.5-1/0000000800000000/000000080000000000000029-818fb842880584c24b8b930f32fca174f7589bab.gz'", "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.28: [/var/lib/pgsql/9.5/data/pg_xlog] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: push 1 WAL file(s) to archive: 000000080000000000000024", "P01 DETAIL: pushed WAL file '000000080000000000000024' to the archive", "P00 INFO: archive-push:async command end: completed successfully", "", "-------------------PROCESS START-------------------", "P00 INFO: archive-push:async command begin 2.28: [/var/lib/pgsql/9.5/data/pg_xlog] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: push 4 WAL file(s) to archive: 000000080000000000000025...000000080000000000000028", "P01 DETAIL: pushed WAL file '000000080000000000000025' to the archive", "P02 DETAIL: pushed WAL file '000000080000000000000026' to the archive", "P01 DETAIL: pushed WAL file '000000080000000000000027' to the archive", "P02 DETAIL: pushed WAL file '000000080000000000000028' to the archive", "P00 INFO: archive-push:async command end: completed successfully", "", "-------------------PROCESS START-------------------", "P00 INFO: archive-push:async command begin 2.28: [/var/lib/pgsql/9.5/data/pg_xlog] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: push 1 WAL file(s) to archive: 000000080000000000000029", "P01 DETAIL: pushed WAL file '000000080000000000000029' to the archive" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres sleep 5" ], "host" : "pg-standby", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres cat /var/log/pgbackrest/demo-archive-get-async.log" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "found [0-F]{24} in the archive" ] }, "host" : "pg-standby", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "-------------------PROCESS START-------------------", "P00 INFO: archive-get:async command begin 2.28: [000000080000000000000022, 000000080000000000000023, 000000080000000000000024, 000000080000000000000025, 000000080000000000000026, 000000080000000000000027, 000000080000000000000028, 000000080000000000000029] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: get 8 WAL file(s) from archive: 000000080000000000000022...000000080000000000000029", "P01 DETAIL: found 000000080000000000000022 in the archive", "P02 DETAIL: found 000000080000000000000023 in the archive", "P01 DETAIL: unable to find 000000080000000000000024 in the archive", "P02 DETAIL: unable to find 000000080000000000000025 in the archive", " [filtered 20 lines of output]", "P00 INFO: archive-get:async command begin 2.28: [000000080000000000000024, 000000080000000000000025, 000000080000000000000026, 000000080000000000000027, 000000080000000000000028, 000000080000000000000029, 00000008000000000000002A, 00000008000000000000002B] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: get 8 WAL file(s) from archive: 000000080000000000000024...00000008000000000000002B", "P01 DETAIL: found 000000080000000000000024 in the archive", "P02 DETAIL: found 000000080000000000000025 in the archive", "P01 DETAIL: found 000000080000000000000026 in the archive", "P02 DETAIL: found 000000080000000000000027 in the archive", "P01 DETAIL: found 000000080000000000000028 in the archive", "P02 DETAIL: found 000000080000000000000029 in the archive", "P02 DETAIL: unable to find 00000008000000000000002B in the archive", "P01 DETAIL: unable to find 00000008000000000000002A in the archive", " [filtered 13 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/pgsql/9.5/data" } }, "global" : { "backup-standby" : { "value" : "y" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-host=pg-primary", "pg1-path=/var/lib/pgsql/9.5/data", "pg2-host=pg-standby", "pg2-path=/var/lib/pgsql/9.5/data", "", "[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 exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 00000008000000000000002B, lsn = 0/2B000028", "P00 INFO: wait for replay on the standby to reach 0/2B000028", "P00 INFO: replay on the standby reached 0/2B000028", "P01 INFO: backup file pg-primary:/var/lib/pgsql/9.5/data/global/pg_control (8KB, 0%) checksum 31fe101696949f330e03a9455ccdeb72088605f5", "P03 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/2674 (360KB, 16%) checksum eb4da8233f620c85de6f3ad4a77d78f859296725", "P04 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/1249 (360KB, 33%) checksum 835899c3b42b2f468163b53f4a3772b30cd69aea", "P01 INFO: backup file pg-primary:/var/lib/pgsql/9.5/data/pg_log/postgresql.log (6.3KB, 33%) checksum 0c4b424db442149c828739ae9bd39f2328a6a7f7", "P02 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/2608 (432KB, 53%) checksum 9b7200635fb2ee5ea5c43f00efdf1362215a36f2", "P01 INFO: backup file pg-primary:/var/lib/pgsql/9.5/data/pg_hba.conf (4.2KB, 53%) checksum f28f3f76528c7fd372aa22474954691c6341da76", "P03 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/2673 (328KB, 69%) checksum 8f27abbbbd265de80a8c65b90b31aac7df6de414", "P04 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/2658 (112KB, 74%) checksum f55d23c2f10528d05f5362704a384f3aedd30fb0", "P02 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/1259 (104KB, 78%) checksum aaaec8c13a061516292c14d91a1256eb6f9e1627", "P01 INFO: backup file pg-primary:/var/lib/pgsql/9.5/data/backup_label (248B, 78%) checksum 9ad003942d339034d05ee17b94bb028a6e276eaa", "P02 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/2659 (72KB, 82%) checksum 8aaac812d944d3fefccad6c9a9140b27e8f9c0ae", "P03 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/1247 (72KB, 85%) checksum 2f030b519f8e5806bcfb593e3c4c20fc83d10bb8", " [filtered 1124 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 stop" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.5 stop" ], "host" : "pg-standby", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres /usr/pgsql-9.6/bin/initdb \\", " -D /var/lib/pgsql/9.6/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-9.6/bin/pg_upgrade \\", " --old-bindir=/usr/pgsql-9.5/bin \\", " --new-bindir=/usr/pgsql-9.6/bin \\", " --old-datadir=/var/lib/pgsql/9.5/data \\", " --new-datadir=/var/lib/pgsql/9.6/data \\", " --old-options=\" -c config_file=/var/lib/pgsql/9.5/data/postgresql.conf\" \\", " --new-options=\" -c config_file=/var/lib/pgsql/9.6/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]", "Creating script to delete old cluster ok", "", "Upgrade Complete", "----------------", "Optimizer statistics are not transferred by pg_upgrade so,", " [filtered 4 lines of output]" ] } }, { "key" : { "file" : "/var/lib/pgsql/9.6/data/postgresql.conf", "host" : "pg-primary", "option" : { "archive_command" : { "value" : "'pgbackrest --stanza=demo archive-push %p'" }, "archive_mode" : { "value" : "on" }, "listen_addresses" : { "value" : "'*'" }, "log_line_prefix" : { "value" : "''" }, "max_wal_senders" : { "value" : "3" }, "port" : { "value" : "5432" }, "wal_level" : { "value" : "hot_standby" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "archive_command = 'pgbackrest --stanza=demo archive-push %p'", "archive_mode = on", "listen_addresses = '*'", "log_line_prefix = ''", "max_wal_senders = 3", "port = 5432", "wal_level = hot_standby" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "demo" : { "pg1-path" : { "value" : "/var/lib/pgsql/9.6/data" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/9.6/data", "", "[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/pgsql/9.6/data" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/9.6/data", "recovery-option=primary_conninfo=host=172.17.0.5 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/pgsql/9.6/data" }, "pg2-path" : { "value" : "/var/lib/pgsql/9.6/data" } }, "global" : { "backup-standby" : { "value" : "n" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-host=pg-primary", "pg1-path=/var/lib/pgsql/9.6/data", "pg2-host=pg-standby", "pg2-path=/var/lib/pgsql/9.6/data", "", "[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 /var/lib/pgsql/9.5/data/pg_hba.conf \\", " /var/lib/pgsql/9.6/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 pgbackrest pgbackrest --stanza=demo --no-online \\", " --log-level-console=info stanza-upgrade" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "completed successfully" ] }, "host" : "repository", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: stanza-upgrade command begin 2.28: --no-backup-standby --log-level-console=info --log-level-stderr=off --no-log-timestamp --no-online --pg1-host=pg-primary --pg2-host=pg-standby --pg1-path=/var/lib/pgsql/9.6/data --pg2-path=/var/lib/pgsql/9.6/data --repo1-path=/var/lib/pgbackrest --stanza=demo", "P00 INFO: stanza-upgrade command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo service postgresql-9.6 start" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "Starting postgresql-9.6 service: [ OK ]\r" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres service postgresql-9.6 status" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "postgresql-9.6 (pid 4920) is running..." ] } }, { "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/9.5/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/9.5/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-9.6/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 pg-2: [DbConnectError] raised from remote-0 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 \"/var/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/9.6/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 service postgresql-9.6 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/pgsql/9.6/data", "pg2-host=pg-standby", "pg2-path=/var/lib/pgsql/9.6/data", "", "[global]", "backup-standby=y", "process-max=3", "repo1-path=/var/lib/pgbackrest", "repo1-retention-full=2", "start-fast=y" ] } } ] } }, "{\"os-type\":\"centos7\"}" : { "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" : "centos7", "param" : "azurite-blob --blobPort 443 --blobHost 0.0.0.0 --cert=/root/public.crt --key=/root/private.key", "update-hosts" : false }, "type" : "host", "value" : { "ip" : "172.17.0.2" } }, { "key" : { "id" : "s3", "image" : "minio/minio:RELEASE.2020-05-06T23-23-25Z", "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" : "centos7", "param" : "server /data --address :443", "update-hosts" : false }, "type" : "host", "value" : { "ip" : "172.17.0.3" } }, { "key" : { "id" : "build", "image" : "pgbackrest/doc:centos7", "name" : "build", "option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "centos7", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.4" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo mkdir -p /build/pgbackrest-release-2.28" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo cp -r /pgbackrest/src /build/pgbackrest-release-2.28" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo chown -R vagrant /build/pgbackrest-release-2.28" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo yum install make gcc postgresql-devel openssl-devel libxml2-devel \\", " lz4-devel libzstd-devel bzip2-devel" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "cd /build/pgbackrest-release-2.28/src && ./configure && make" ], "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "id" : "pg1", "image" : "pgbackrest/doc:centos7", "name" : "pg-primary", "option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "centos7", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.5" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo yum install postgresql-libs" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo scp build:/build/pgbackrest-release-2.28/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.28 - General help", "", "Usage:", " pgbackrest [options] [command]", "", "Commands:", " 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.", " restore Restore a database cluster.", " 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.", " version Get version.", "", "Use 'pgbackrest help [command]' for more information." ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres /usr/pgsql-10/bin/initdb \\", " -D /var/lib/pgsql/10/data -k -A peer" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "file" : "/var/lib/pgsql/10/data/postgresql.conf", "host" : "pg-primary", "option" : { "listen_addresses" : { "value" : "'*'" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "listen_addresses = '*'" ] } }, { "key" : { "file" : "/var/lib/pgsql/10/data/postgresql.conf", "host" : "pg-primary", "option" : { "log_line_prefix" : { "value" : "''" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "listen_addresses = '*'", "log_line_prefix = ''" ] } }, { "key" : { "file" : "/var/lib/pgsql/10/data/postgresql.conf", "host" : "pg-primary", "option" : { "log_filename" : { "value" : "'postgresql.log'" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "listen_addresses = '*'", "log_filename = 'postgresql.log'", "log_line_prefix = ''" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "demo" : { "pg1-path" : { "value" : "/var/lib/pgsql/10/data" } }, "global" : { "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/10/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.28 - '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/10/data", "", "[global]", "repo1-path=/var/lib/pgbackrest" ] } }, { "key" : { "file" : "/var/lib/pgsql/10/data/postgresql.conf", "host" : "pg-primary", "option" : { "archive_command" : { "value" : "'pgbackrest --stanza=demo archive-push %p'" }, "archive_mode" : { "value" : "on" }, "max_wal_senders" : { "value" : "3" }, "wal_level" : { "value" : "replica" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "archive_command = 'pgbackrest --stanza=demo archive-push %p'", "archive_mode = on", "listen_addresses = '*'", "log_filename = 'postgresql.log'", "log_line_prefix = ''", "max_wal_senders = 3", "wal_level = replica" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl restart postgresql-10.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" : { "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/10/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/10/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/10/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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo", "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --stanza=demo", "P00 INFO: WAL segment 000000010000000000000001 successfully archived to '/var/lib/pgbackrest/archive/demo/10-1/0000000100000000/000000010000000000000001-9d041d3137382c9e38ff9908eecc3b1fbd7ee54b.gz'", "P00 INFO: check command end: completed successfully" ] } }, { "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo", "P00 WARN: no prior backup exists, incr backup has been changed to full", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the next regular checkpoint completes", "P00 INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028", " [filtered 946 lines of output]", "P01 INFO: backup file /var/lib/pgsql/10/data/base/1/12795 (0B, 100%)", "P01 INFO: backup file /var/lib/pgsql/10/data/base/1/12790 (0B, 100%)", "P00 INFO: full backup size = 22.4MB", "P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 000000010000000000000002, lsn = 0/2000130", " [filtered 4 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" : [ "20200720-115948F" ] } }, { "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 4 lines of output]", "P01 INFO: backup file /var/lib/pgsql/10/data/global/pg_control (8KB, 99%) checksum b8a399bec7dd33d7add3f9406ad8cdf4c068344a", "P01 INFO: backup file /var/lib/pgsql/10/data/pg_logical/replorigin_checkpoint (8B, 100%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532", "P00 INFO: diff backup size = 8KB", "P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 000000010000000000000003, lsn = 0/30000F8", " [filtered 4 lines of output]" ] } }, { "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 (10-1): 000000010000000000000001/000000010000000000000003", "", " full backup: 20200720-115948F", " timestamp start/stop: 2020-07-20 11:59:48 / 2020-07-20 12:00:03", " wal start/stop: 000000010000000000000002 / 000000010000000000000002", " database size: 22.4MB, backup size: 22.4MB", " repository size: 2.7MB, repository backup size: 2.7MB", "", " diff backup: 20200720-115948F_20200720-120004D", " timestamp start/stop: 2020-07-20 12:00:04 / 2020-07-20 12:00:06", " wal start/stop: 000000010000000000000003 / 000000010000000000000003", " database size: 22.4MB, backup size: 8.2KB", " repository size: 2.7MB, repository backup size: 496B", " backup reference list: 20200720-115948F" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl stop postgresql-10.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/10/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-10.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-10.service" ], "err-expect" : "3", "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "Failed to start PostgreSQL" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 8 lines of output]", "Jul 20 12:00:08 pg-primary systemd[1]: Starting PostgreSQL 10 database server...", "Jul 20 12:00:08 pg-primary systemd[1]: postgresql-10.service: main process exited, code=exited, status=2/INVALIDARGUMENT", "Jul 20 12:00:08 pg-primary systemd[1]: Failed to start PostgreSQL 10 database server.", "Jul 20 12:00:08 pg-primary systemd[1]: Unit postgresql-10.service entered failed state.", "Jul 20 12:00:08 pg-primary systemd[1]: postgresql-10.service failed." ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres find /var/lib/pgsql/10/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-10.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 pgbackrest --stanza=demo --type=incr \\", " --log-level-console=info backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "backup begins after the next regular checkpoint completes" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: backup command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --type=incr", "P00 INFO: last backup label = 20200720-115948F_20200720-120004D, version = 2.28", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the next regular checkpoint completes", "P00 INFO: backup start archive = 000000020000000000000005, lsn = 0/5000028", "P00 WARN: a timeline switch has occurred since the 20200720-115948F_20200720-120004D backup, enabling delta checksum", " [filtered 10 lines of output]" ] } }, { "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/10/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 --type=incr \\", " --log-level-console=info backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "backup begins after the requested immediate checkpoint completes" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: backup command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --type=incr", "P00 INFO: last backup label = 20200720-115948F_20200720-120020I, version = 2.28", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 000000020000000000000006, lsn = 0/6000028", "P01 INFO: backup file /var/lib/pgsql/10/data/global/pg_control (8KB, 99%) checksum 442bf3018cfa7b477900d57b49be6557610361e7", " [filtered 8 lines of output]" ] } }, { "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 jsonb);", "", " -- 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 temp_pgbackrest_data.data", " 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\" | 2020-07-20 12:00:26+00 | 000000020000000000000006", "(1 row)" ] } }, { "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/10/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 --type=full \\", " --log-level-console=detail backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "archive retention on backup 20200720-115948F|remove archive" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 957 lines of output]", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo", "P00 DETAIL: archive retention on backup 20200720-115948F, archiveId = 10-1, start = 000000010000000000000002", "P00 DETAIL: remove archive: archiveId = 10-1, start = 000000010000000000000001, stop = 000000010000000000000001", "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" : [ "20200720-120031F" ] } }, { "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\\: 20200720-115948F|archive retention on backup 20200720-120031F|remove archive" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 956 lines of output]", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo", "P00 INFO: expire full backup set: 20200720-115948F, 20200720-115948F_20200720-120004D, 20200720-115948F_20200720-120020I, 20200720-115948F_20200720-120024I", "P00 INFO: remove expired backup 20200720-115948F_20200720-120024I", "P00 INFO: remove expired backup 20200720-115948F_20200720-120020I", " [filtered 2 lines of output]" ] } }, { "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/10/data", "", "[global]", "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" : [ "20200720-120046F_20200720-120103D" ] } }, { "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: 20200720-120046F_20200720-120103D" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 11 lines of output]", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=1 --repo1-retention-full=2 --stanza=demo", "P00 INFO: expire diff backup set: 20200720-120046F_20200720-120103D, 20200720-120046F_20200720-120107I", "P00 INFO: remove expired backup 20200720-120046F_20200720-120107I", "P00 INFO: remove expired backup 20200720-120046F_20200720-120103D" ] } }, { "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/10/data", "", "[global]", "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" : [ "20200720-120046F_20200720-120109D" ] } }, { "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 9 lines of output]", "P00 INFO: backup stop archive = 000000020000000000000010, lsn = 0/100000F8", "P00 INFO: check archive for segment(s) 000000020000000000000010:000000020000000000000010", "P00 INFO: new backup label = 20200720-120046F_20200720-120114D", "P00 INFO: backup command end: completed successfully", "P00 INFO: expire command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=2 --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" : [ "20200720-120046F_20200720-120114D" ] } }, { "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 20200720-120046F_20200720-120109D|remove archive" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: expire command begin 2.28: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --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: archive retention on backup 20200720-120031F, archiveId = 10-1, start = 000000020000000000000008, stop = 000000020000000000000008", "P00 DETAIL: archive retention on backup 20200720-120046F, archiveId = 10-1, start = 000000020000000000000009, stop = 000000020000000000000009", "P00 DETAIL: archive retention on backup 20200720-120046F_20200720-120109D, archiveId = 10-1, start = 00000002000000000000000D, stop = 00000002000000000000000D", "P00 DETAIL: archive retention on backup 20200720-120046F_20200720-120114D, archiveId = 10-1, start = 000000020000000000000010", "P00 DETAIL: remove archive: archiveId = 10-1, start = 00000002000000000000000A, stop = 00000002000000000000000C", "P00 DETAIL: remove archive: archiveId = 10-1, start = 00000002000000000000000E, stop = 00000002000000000000000F", "P00 INFO: expire command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl stop postgresql-10.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/10/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/10/data'", "P00 DETAIL: remove invalid file '/var/lib/pgsql/10/data/backup_label.old'", "P00 DETAIL: remove invalid file '/var/lib/pgsql/10/data/base/12953/pg_internal.init'", " [filtered 996 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl start postgresql-10.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 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 -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 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" : [ "24576" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres du -sh /var/lib/pgsql/10/data/base/24576" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "7.5M\t/var/lib/pgsql/10/data/base/24576" ] } }, { "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" : [ "20200720-120046F_20200720-120123I" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo \\", " --set=20200720-120046F_20200720-120123I 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 11 lines of output]", " repository size: 4.4MB, repository backup size: 1.8MB", " backup reference list: 20200720-120046F, 20200720-120046F_20200720-120114D", " database list: postgres (12953), test1 (24576), test2 (24577)" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl stop postgresql-10.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 restore" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl start postgresql-10.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: FATAL: relation mapping file \"base/24576/pg_filenode.map\" contains invalid data" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres du -sh /var/lib/pgsql/10/data/base/24576" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "176K\t/var/lib/pgsql/10/data/base/24576" ] } }, { "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", " 12952 | template0", " 12953 | postgres", " 24577 | test2", "(4 rows)" ] } }, { "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 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" : [ "2020-07-20 12:01:50.004044+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 systemctl stop postgresql-10.service" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --delta \\", " --type=time \"--target=2020-07-20 12:01:50.004044+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/10/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/10/data/recovery.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" : [ "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:01:52", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "recovery_target_time = '2020-07-20 12:01:50.004044+00'", "recovery_target_action = 'promote'" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl start postgresql-10.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/10/data/log/postgresql.log" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "recovery stopping before|last completed transaction|starting point-in-time recovery" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "LOG: database system was interrupted; last known up at 2020-07-20 12:01:42 UTC", "LOG: starting point-in-time recovery to 2020-07-20 12:01:50.004044+00", "LOG: restored log file \"00000004.history\" from archive", "LOG: restored log file \"000000040000000000000015\" from archive", " [filtered 2 lines of output]", "LOG: database system is ready to accept read only connections", "LOG: restored log file \"000000040000000000000016\" from archive", "LOG: recovery stopping before commit of transaction 564, time 2020-07-20 12:01:51.659663+00", "LOG: redo done at 0/160212D8", "LOG: last completed transaction was at log time 2020-07-20 12:01:48.042034+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 -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" : [ "20200720-120046F_20200720-120158I" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest info" ], "highlight" : { "filter" : false, "filter-context" : 2, "list" : [ "20200720-120046F_20200720-120158I" ] }, "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 (10-1): 000000020000000000000008/000000050000000000000017", "", " full backup: 20200720-120031F", " timestamp start/stop: 2020-07-20 12:00:31 / 2020-07-20 12:00:44", " wal start/stop: 000000020000000000000008 / 000000020000000000000008", " database size: 22.4MB, backup size: 22.4MB", " repository size: 2.7MB, repository backup size: 2.7MB", "", " full backup: 20200720-120046F", " timestamp start/stop: 2020-07-20 12:00:46 / 2020-07-20 12:01:01", " wal start/stop: 000000020000000000000009 / 000000020000000000000009", " database size: 22.4MB, backup size: 22.4MB", " repository size: 2.7MB, repository backup size: 2.7MB", "", " diff backup: 20200720-120046F_20200720-120114D", " timestamp start/stop: 2020-07-20 12:01:14 / 2020-07-20 12:01:16", " wal start/stop: 000000020000000000000010 / 000000020000000000000010", " database size: 22.4MB, backup size: 9.5KB", " repository size: 2.7MB, repository backup size: 928B", " backup reference list: 20200720-120046F", "", " incr backup: 20200720-120046F_20200720-120123I", " timestamp start/stop: 2020-07-20 12:01:23 / 2020-07-20 12:01:32", " wal start/stop: 000000030000000000000012 / 000000030000000000000012", " database size: 37MB, backup size: 15MB", " repository size: 4.4MB, repository backup size: 1.8MB", " backup reference list: 20200720-120046F, 20200720-120046F_20200720-120114D", "", " diff backup: 20200720-120046F_20200720-120141D", " timestamp start/stop: 2020-07-20 12:01:41 / 2020-07-20 12:01:47", " wal start/stop: 000000040000000000000015 / 000000040000000000000015", " database size: 29.7MB, backup size: 7.8MB", " repository size: 3.5MB, repository backup size: 946.1KB", " backup reference list: 20200720-120046F", "", " incr backup: 20200720-120046F_20200720-120158I", " timestamp start/stop: 2020-07-20 12:01:58 / 2020-07-20 12:01:59", " wal start/stop: 000000050000000000000017 / 000000050000000000000017", " database size: 29.7MB, backup size: 2MB", " repository size: 3.5MB, repository backup size: 218.8KB", " backup reference list: 20200720-120046F, 20200720-120046F_20200720-120141D" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl stop postgresql-10.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=20200720-120046F_20200720-120158I \\", " --type=time \"--target=2020-07-20 12:01:50.004044+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/10/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-10.service" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres sleep 2" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres psql -c \"select * from important_table\"" ], "err-expect" : "1", "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "does not exist" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "ERROR: relation \"important_table\" does not exist", "LINE 1: select * from important_table", " ^" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres cat /var/lib/pgsql/10/data/log/postgresql.log" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "starting point-in-time recovery|consistent recovery state reached" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "LOG: database system was interrupted; last known up at 2020-07-20 12:01:58 UTC", "LOG: starting point-in-time recovery to 2020-07-20 12:01:50.004044+00", "LOG: restored log file \"00000005.history\" from archive", "LOG: restored log file \"000000050000000000000017\" from archive", "LOG: redo starts at 0/17000028", "LOG: consistent recovery state reached at 0/170000F8", "LOG: database system is ready to accept read only connections", "LOG: redo done at 0/170000F8", " [filtered 6 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl stop postgresql-10.service" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --delta \\", " --type=time \"--target=2020-07-20 12:01:50.004044+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/10/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-10.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/10/data/log/postgresql.log" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "recovery stopping before|last completed transaction|starting point-in-time recovery" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "LOG: database system was interrupted; last known up at 2020-07-20 12:01:42 UTC", "LOG: starting point-in-time recovery to 2020-07-20 12:01:50.004044+00", "LOG: restored log file \"00000004.history\" from archive", "LOG: restored log file \"000000040000000000000015\" from archive", " [filtered 2 lines of output]", "LOG: database system is ready to accept read only connections", "LOG: restored log file \"000000040000000000000016\" from archive", "LOG: recovery stopping before commit of transaction 564, time 2020-07-20 12:01:51.659663+00", "LOG: redo done at 0/160212D8", "LOG: last completed transaction was at log time 2020-07-20 12:01:48.042034+00", "LOG: restored log file \"00000005.history\" from archive", "LOG: restored log file \"00000006.history\" from archive", " [filtered 3 lines of output]" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "global" : { "process-max" : { "value" : "4" }, "repo1-azure-account" : { "value" : "pgbackrest" }, "repo1-azure-container" : { "value" : "demo-container" }, "repo1-azure-host" : { "value" : "blob.core.windows.net" }, "repo1-azure-key" : { "value" : "YXpLZXk=" }, "repo1-path" : { "value" : "/demo-repo" }, "repo1-type" : { "value" : "azure" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/10/data", "", "[global]", "process-max=4", "repo1-azure-account=pgbackrest", "repo1-azure-container=demo-container", "repo1-azure-key=YXpLZXk=", "repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO", "repo1-cipher-type=aes-256-cbc", "repo1-path=/demo-repo", "repo1-retention-diff=2", "repo1-retention-full=2", "repo1-type=azure", "start-fast=y", "", "[global:archive-push]", "compress-level=3" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "echo \"172.17.0.2 blob.core.windows.net\" | tee -a /etc/hosts" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : "root" }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest repo-create" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "completed successfully" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: stanza-create command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --repo1-azure-account= --repo1-azure-container=demo-container --repo1-azure-host=blob.core.windows.net --repo1-azure-key= --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-type=azure --stanza=demo", "P00 INFO: http statistics: objects 2, sessions 2, requests 12, retries 0, closes 0", "P00 INFO: stanza-create command end: completed successfully" ] } }, { "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --process-max=4 --repo1-azure-account= --repo1-azure-container=demo-container --repo1-azure-host=blob.core.windows.net --repo1-azure-key= --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo1-type=azure --stanza=demo --start-fast", "P00 WARN: no prior backup exists, incr backup has been changed to full", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 000000070000000000000017, lsn = 0/17000028", " [filtered 1243 lines of output]", "P04 INFO: backup file /var/lib/pgsql/10/data/base/1/12805 (0B, 100%)", "P02 INFO: backup file /var/lib/pgsql/10/data/base/1/12790 (0B, 100%)", "P00 INFO: full backup size = 29.7MB", "P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 000000070000000000000017, lsn = 0/170000F8", " [filtered 6 lines of output]" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "global" : { "process-max" : { "value" : "4" }, "repo1-path" : { "value" : "/demo-repo" }, "repo1-s3-bucket" : { "value" : "demo-bucket" }, "repo1-s3-endpoint" : { "value" : "s3.us-east-1.amazonaws.com" }, "repo1-s3-key" : { "value" : "accessKey1" }, "repo1-s3-key-secret" : { "value" : "verySecretKey1" }, "repo1-s3-region" : { "value" : "us-east-1" }, "repo1-type" : { "value" : "s3" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/10/data", "", "[global]", "process-max=4", "repo1-azure-account=pgbackrest", "repo1-azure-container=demo-container", "repo1-azure-key=YXpLZXk=", "repo1-cipher-pass=zWaf6XtpjIVZC5444yXB+cgFDFl7MxGlgkZSaoPvTGirhPygu4jOKOXf9LO4vjfO", "repo1-cipher-type=aes-256-cbc", "repo1-path=/demo-repo", "repo1-retention-diff=2", "repo1-retention-full=2", "repo1-s3-bucket=demo-bucket", "repo1-s3-endpoint=s3.us-east-1.amazonaws.com", "repo1-s3-key=accessKey1", "repo1-s3-key-secret=verySecretKey1", "repo1-s3-region=us-east-1", "repo1-type=s3", "start-fast=y", "", "[global:archive-push]", "compress-level=3" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "echo \"172.17.0.3 demo-bucket.s3.us-east-1.amazonaws.com s3.us-east-1.amazonaws.com\" | tee -a /etc/hosts" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : "root" }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest repo-create" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --log-level-console=info stanza-create" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "completed successfully" ] }, "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: stanza-create command begin 2.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo", "P00 INFO: http statistics: objects 2, sessions 2, requests 12, retries 0, closes 0", "P00 INFO: stanza-create command end: completed successfully" ] } }, { "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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --process-max=4 --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-retention-diff=2 --repo1-retention-full=2 --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo --start-fast", "P00 WARN: no prior backup exists, incr backup has been changed to full", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 000000070000000000000019, lsn = 0/19000028", " [filtered 1243 lines of output]", "P04 INFO: backup file /var/lib/pgsql/10/data/base/1/12795 (0B, 100%)", "P01 INFO: backup file /var/lib/pgsql/10/data/base/1/12790 (0B, 100%)", "P00 INFO: full backup size = 29.7MB", "P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive", "P00 INFO: backup stop archive = 000000070000000000000019, lsn = 0/190000F8", " [filtered 6 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl stop postgresql-10.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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo", "P00 INFO: stop command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres pgbackrest --stanza=demo --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.28: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --repo1-cipher-pass= --repo1-cipher-type=aes-256-cbc --repo1-path=/demo-repo --repo1-s3-bucket=demo-bucket --repo1-s3-endpoint=s3.us-east-1.amazonaws.com --repo1-s3-key= --repo1-s3-key-secret= --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo", "P00 INFO: http statistics: objects 2, sessions 2, requests 14, retries 0, closes 0", "P00 INFO: stanza-delete command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl start postgresql-10.service" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "id" : "repo1", "image" : "pgbackrest/doc:centos7", "name" : "repository", "option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "centos7", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.6" } }, { "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" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo scp build:/build/pgbackrest-release-2.28/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/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 \\", " -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/pgsql/.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/pgsql/.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/pgsql/10/data" } }, "global" : { "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" }, "repo1-retention-full" : { "value" : "2" }, "start-fast" : { "value" : "y" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-host=pg-primary", "pg1-path=/var/lib/pgsql/10/data", "", "[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/pgsql/10/data" } }, "global" : { "log-level-file" : { "value" : "detail" }, "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" }, "repo1-host" : { "value" : "repository" } } }, "reset" : true }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/10/data", "", "[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 systemctl stop postgresql-10.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-10.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-path=/var/lib/pgsql/10/data", "", "[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 (10-1): 00000008000000000000001E/00000008000000000000001F", "", " full backup: 20200720-120324F", " timestamp start/stop: 2020-07-20 12:03:24 / 2020-07-20 12:03:43", " wal start/stop: 00000008000000000000001E / 00000008000000000000001E", " database size: 29.8MB, backup size: 29.8MB", " repository size: 3.5MB, repository backup size: 3.5MB", "", " full backup: 20200720-120346F", " timestamp start/stop: 2020-07-20 12:03:46 / 2020-07-20 12:03:53", " wal start/stop: 00000008000000000000001F / 00000008000000000000001F", " database size: 29.8MB, backup size: 29.8MB", " repository size: 3.5MB, repository backup size: 3.5MB" ] } }, { "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 pg-1: [StopError] raised from remote-0 protocol on 'pg-primary': stop file exists for all stanzas", "P00 ERROR: [056]: unable to find primary cluster - cannot proceed" ] } }, { "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 pg-1: [StopError] raised from remote-0 protocol on 'pg-primary': stop file exists for stanza demo", "P00 ERROR: [056]: unable to find primary cluster - cannot proceed" ] } }, { "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:centos7", "name" : "pg-standby", "option" : "-v /sys/fs/cgroup:/sys/fs/cgroup:rw -v /tmp/$(mktemp -d):/run", "os" : "centos7", "update-hosts" : true }, "type" : "host", "value" : { "ip" : "172.17.0.7" } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo yum install postgresql-libs" ], "cmd-extra" : "-y 2>&1", "host" : "build", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo scp build:/build/pgbackrest-release-2.28/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/pgsql/.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/pgsql/.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/pgsql/.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/pgsql/.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/pgsql/10/data" } }, "global" : { "log-level-file" : { "value" : "detail" }, "log-level-stderr" : { "value" : "off" }, "log-timestamp" : { "value" : "n" }, "repo1-host" : { "value" : "repository" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/10/data", "", "[global]", "log-level-file=detail", "repo1-host=repository" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres mkdir -p -m 700 /var/lib/pgsql/10/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/10/data/recovery.conf" ], "host" : "pg-standby", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:04:22", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "standby_mode = 'on'" ] } }, { "key" : { "file" : "/var/lib/pgsql/10/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'" }, "log_line_prefix" : { "value" : "''" }, "max_wal_senders" : { "value" : "3" }, "wal_level" : { "value" : "replica" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "archive_command = 'pgbackrest --stanza=demo archive-push %p'", "archive_mode = on", "hot_standby = on", "log_filename = 'postgresql.log'", "log_line_prefix = ''", "max_wal_senders = 3", "wal_level = replica" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo rm /var/lib/pgsql/10/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-10.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/10/data/log/postgresql.log" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "entering standby mode|database system is ready to accept read only connections" ] }, "host" : "pg-standby", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "LOG: database system was interrupted; last known up at 2020-07-20 12:03:46 UTC", "LOG: entering standby mode", "LOG: restored log file \"00000008.history\" from archive", "LOG: restored log file \"00000008000000000000001F\" from archive", "LOG: redo starts at 0/1F000028", "LOG: consistent recovery state reached at 0/1F000130", "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/2002B480 | 2020-07-20 12:04:29.869192+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 | 2020-07-20 12:04:31.692825+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.28: --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --repo1-host=repository --stanza=demo", "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.7/32 md5\" \\", " >> /var/lib/pgsql/10/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-10.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.5 port=5432 user=replicator" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/10/data", "recovery-option=primary_conninfo=host=172.17.0.5 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.5:*: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-10.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/10/data/recovery.conf" ], "host" : "pg-standby", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "# Recovery settings generated by pgBackRest restore on 2020-07-20 12:04:37", "primary_conninfo = 'host=172.17.0.5 port=5432 user=replicator'", "restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'", "standby_mode = 'on'" ] } }, { "key" : { "file" : "/var/lib/pgsql/10/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'", "log_line_prefix = ''", "max_wal_senders = 3", "wal_level = replica" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo rm /var/lib/pgsql/10/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-10.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/10/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 6 lines of output]", "LOG: database system is ready to accept read only connections", "LOG: restored log file \"000000080000000000000020\" from archive", "LOG: started streaming WAL from primary at 0/21000000 on timeline 8" ] } }, { "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 | 2020-07-20 12:04:43.733645+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 | 2020-07-20 12:04:44.05361+00", "(1 row)" ] } }, { "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/10/data", "", "[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/pgsql/10/data", "recovery-option=primary_conninfo=host=172.17.0.5 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 systemctl restart postgresql-10.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.28: --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --repo1-host=repository --stanza=demo", "P00 INFO: WAL segment 000000080000000000000026 successfully archived to '/var/lib/pgbackrest/archive/demo/10-1/0000000800000000/000000080000000000000026-61f490aa60f9b36f52553c145714d50d01b44ebc.gz'", "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.28: [/var/lib/pgsql/10/data/pg_wal] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: push 1 WAL file(s) to archive: 000000080000000000000021", "P01 DETAIL: pushed WAL file '000000080000000000000021' to the archive", "P00 INFO: archive-push:async command end: completed successfully", "", "-------------------PROCESS START-------------------", "P00 INFO: archive-push:async command begin 2.28: [/var/lib/pgsql/10/data/pg_wal] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: push 4 WAL file(s) to archive: 000000080000000000000022...000000080000000000000025", "P01 DETAIL: pushed WAL file '000000080000000000000022' to the archive", "P02 DETAIL: pushed WAL file '000000080000000000000023' to the archive", "P01 DETAIL: pushed WAL file '000000080000000000000024' to the archive", "P02 DETAIL: pushed WAL file '000000080000000000000025' to the archive", "P00 INFO: archive-push:async command end: completed successfully", "", "-------------------PROCESS START-------------------", "P00 INFO: archive-push:async command begin 2.28: [/var/lib/pgsql/10/data/pg_wal] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: push 1 WAL file(s) to archive: 000000080000000000000026", "P01 DETAIL: pushed WAL file '000000080000000000000026' 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.28: [00000008000000000000001F, 000000080000000000000020, 000000080000000000000021, 000000080000000000000022, 000000080000000000000023, 000000080000000000000024, 000000080000000000000025, 000000080000000000000026] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: get 8 WAL file(s) from archive: 00000008000000000000001F...000000080000000000000026", "P01 DETAIL: found 00000008000000000000001F in the archive", "P02 DETAIL: found 000000080000000000000020 in the archive", "P01 DETAIL: unable to find 000000080000000000000021 in the archive", "P02 DETAIL: unable to find 000000080000000000000022 in the archive", " [filtered 20 lines of output]", "P00 INFO: archive-get:async command begin 2.28: [000000080000000000000021, 000000080000000000000022, 000000080000000000000023, 000000080000000000000024, 000000080000000000000025, 000000080000000000000026, 000000080000000000000027, 000000080000000000000028] --archive-async --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/10/data --process-max=2 --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo", "P00 INFO: get 8 WAL file(s) from archive: 000000080000000000000021...000000080000000000000028", "P01 DETAIL: found 000000080000000000000021 in the archive", "P02 DETAIL: found 000000080000000000000022 in the archive", "P01 DETAIL: found 000000080000000000000023 in the archive", "P02 DETAIL: found 000000080000000000000024 in the archive", "P01 DETAIL: found 000000080000000000000025 in the archive", "P02 DETAIL: found 000000080000000000000026 in the archive", "P01 DETAIL: unable to find 000000080000000000000027 in the archive", "P02 DETAIL: unable to find 000000080000000000000028 in the archive", " [filtered 12 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/pgsql/10/data" } }, "global" : { "backup-standby" : { "value" : "y" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-host=pg-primary", "pg1-path=/var/lib/pgsql/10/data", "pg2-host=pg-standby", "pg2-path=/var/lib/pgsql/10/data", "", "[global]", "backup-standby=y", "process-max=3", "repo1-path=/var/lib/pgbackrest", "repo1-retention-full=2", "start-fast=y" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u pgbackrest pgbackrest --stanza=demo --log-level-console=detail backup" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "backup file pg-primary|replay on the standby" ] }, "host" : "repository", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ " [filtered 2 lines of output]", "P00 INFO: execute non-exclusive pg_start_backup(): backup begins after the requested immediate checkpoint completes", "P00 INFO: backup start archive = 000000080000000000000028, lsn = 0/28000028", "P00 INFO: wait for replay on the standby to reach 0/28000028", "P00 INFO: replay on the standby reached 0/28000028", "P01 INFO: backup file pg-primary:/var/lib/pgsql/10/data/global/pg_control (8KB, 0%) checksum 110779d26c3fcfd6bdfba435be5e734db093aefb", "P01 INFO: backup file pg-primary:/var/lib/pgsql/10/data/log/postgresql.log (5.5KB, 0%) checksum 438d1f2c50a6eb87d98e4ce428202379cb8f7452", "P04 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/2674 (368KB, 16%) checksum 83b782540e030b247956a253f4661798bec32bdb", "P02 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/2608 (440KB, 35%) checksum f2bb027d38623586d3df754674479621c4676390", "P03 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/1249 (392KB, 52%) checksum 423c60d6a3d007a482b519dd5359f306189dc61e", "P01 INFO: backup file pg-primary:/var/lib/pgsql/10/data/pg_hba.conf (4.2KB, 52%) checksum 12abee43e7eabfb3ff6239f3fc9bc3598293557d", "P04 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/2673 (320KB, 66%) checksum 7414080e9317c83d8da2283a694343fbff9771b0", "P02 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/2658 (112KB, 71%) checksum 2889dcaa0028d25c77de2ee630ec00d3b4be1108", "P03 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/1259 (88KB, 75%) checksum 180f26f412084a89e4a2178b942c09a6e49b604c", "P04 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/1247 (72KB, 78%) checksum 271210c3d1bdc6e271f9f502d9195a72d1792b74", "P01 INFO: backup file pg-primary:/var/lib/pgsql/10/data/current_logfiles (26B, 78%) checksum 78a9f5c10960f0d91fcd313937469824861795a2", "P02 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/2659 (80KB, 81%) checksum 35eeb42c3b64b126bcc90d61534f10d51ae1658b", "P03 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/2663 (48KB, 84%) checksum 1b5554dcaa9732edee014898ac9c72d9932a33c0", "P04 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/3455 (40KB, 85%) checksum c52c8d38c138bea7265d04ab36b7e8242780f76d", "P02 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/2704 (40KB, 87%) checksum 334748497972bff7facfe3f7eedae4a1960474e6", "P03 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/2662 (32KB, 88%) checksum dce997b8ff18139b090ff370bbb07965f12b286e", "P01 INFO: backup file pg-primary:/var/lib/pgsql/10/data/pg_logical/replorigin_checkpoint (8B, 88%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532", "P02 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/2610 (32KB, 90%) checksum 31a4c9ae8ee9501fda724b0dd671d571817f05bf", "P04 INFO: backup file pg-standby:/var/lib/pgsql/10/data/base/12953/2608_fsm (24KB, 91%) checksum 65807e7fcd65588cfaa046493eb88399d1a9240d", " [filtered 1242 lines of output]" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl stop postgresql-10.service" ], "host" : "pg-primary", "load-env" : true, "output" : false, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl stop postgresql-10.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-11/bin/initdb \\", " -D /var/lib/pgsql/11/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-11/bin/pg_upgrade \\", " --old-bindir=/usr/pgsql-10/bin \\", " --new-bindir=/usr/pgsql-11/bin \\", " --old-datadir=/var/lib/pgsql/10/data \\", " --new-datadir=/var/lib/pgsql/11/data \\", " --old-options=\" -c config_file=/var/lib/pgsql/10/data/postgresql.conf\" \\", " --new-options=\" -c config_file=/var/lib/pgsql/11/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 68 lines of output]", "Creating script to delete old cluster ok", "", "Upgrade Complete", "----------------", "Optimizer statistics are not transferred by pg_upgrade so,", " [filtered 4 lines of output]" ] } }, { "key" : { "file" : "/var/lib/pgsql/11/data/postgresql.conf", "host" : "pg-primary", "option" : { "archive_command" : { "value" : "'pgbackrest --stanza=demo archive-push %p'" }, "archive_mode" : { "value" : "on" }, "listen_addresses" : { "value" : "'*'" }, "log_line_prefix" : { "value" : "''" }, "max_wal_senders" : { "value" : "3" }, "port" : { "value" : "5432" }, "wal_level" : { "value" : "replica" } } }, "type" : "cfg-postgresql", "value" : { "config" : [ "archive_command = 'pgbackrest --stanza=demo archive-push %p'", "archive_mode = on", "listen_addresses = '*'", "log_line_prefix = ''", "max_wal_senders = 3", "port = 5432", "wal_level = replica" ] } }, { "key" : { "file" : "/etc/pgbackrest/pgbackrest.conf", "host" : "pg-primary", "option" : { "demo" : { "pg1-path" : { "value" : "/var/lib/pgsql/11/data" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/11/data", "", "[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/pgsql/11/data" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-path=/var/lib/pgsql/11/data", "recovery-option=primary_conninfo=host=172.17.0.5 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/pgsql/11/data" }, "pg2-path" : { "value" : "/var/lib/pgsql/11/data" } }, "global" : { "backup-standby" : { "value" : "n" } } } }, "type" : "cfg-pgbackrest", "value" : { "config" : [ "[demo]", "pg1-host=pg-primary", "pg1-path=/var/lib/pgsql/11/data", "pg2-host=pg-standby", "pg2-path=/var/lib/pgsql/11/data", "", "[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 /var/lib/pgsql/10/data/pg_hba.conf \\", " /var/lib/pgsql/11/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 pgbackrest pgbackrest --stanza=demo --no-online \\", " --log-level-console=info stanza-upgrade" ], "highlight" : { "filter" : true, "filter-context" : 2, "list" : [ "completed successfully" ] }, "host" : "repository", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "P00 INFO: stanza-upgrade command begin 2.28: --no-backup-standby --log-level-console=info --log-level-stderr=off --no-log-timestamp --no-online --pg1-host=pg-primary --pg2-host=pg-standby --pg1-path=/var/lib/pgsql/11/data --pg2-path=/var/lib/pgsql/11/data --repo1-path=/var/lib/pgbackrest --stanza=demo", "P00 INFO: stanza-upgrade command end: completed successfully" ] } }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo systemctl start postgresql-11.service" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe" }, { "key" : { "bash-wrap" : true, "cmd" : [ "sudo -u postgres systemctl status postgresql-11.service" ], "host" : "pg-primary", "load-env" : true, "output" : true, "run-as-user" : null }, "type" : "exe", "value" : { "output" : [ "● postgresql-11.service - PostgreSQL 11 database server", " Loaded: loaded (/usr/lib/systemd/system/postgresql-11.service; disabled; vendor preset: disabled)", " Active: active (running) since Mon 2020-07-20 12:05:22 UTC; 314ms ago", " Docs: https://www.postgresql.org/docs/11/static/", " Process: 4018 ExecStartPre=/usr/pgsql-11/bin/postgresql-11-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)", " Main PID: 4023 (postmaster)", " CGroup: /docker/29a01cf7dcf07a836d38530e12915461392922138495522f6539e5a337a9a39b/system.slice/postgresql-11.service", " ├─4023 /usr/pgsql-11/bin/postmaster -D /var/lib/pgsql/11/data/", " ├─4024 postgres: logger ", " ├─4026 postgres: checkpointer ", " ├─4027 postgres: background writer ", " ├─4028 postgres: walwriter ", " ├─4029 postgres: autovacuum launcher ", " ├─4030 postgres: archiver ", " ├─4031 postgres: stats collector ", " └─4032 postgres: logical replication launcher " ] } }, { "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/10/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/10/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-11/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 pg-2: [DbConnectError] raised from remote-0 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 \"/var/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/11/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-11.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-path=/var/lib/pgsql/11/data", "pg2-host=pg-standby", "pg2-path=/var/lib/pgsql/11/data", "", "[global]", "backup-standby=y", "process-max=3", "repo1-path=/var/lib/pgbackrest", "repo1-retention-full=2", "start-fast=y" ] } } ] } } }