1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2024-12-12 10:04:14 +02:00
pgbackrest/doc/resource/exe.cache
David Steele 4629237d6a v2.18: PostgreSQL 12 Support
Features:

* PostgreSQL 12 support.
* Add info command set option for detailed text output. The additional details include databases that can be used for selective restore and a list of tablespaces and symlinks with their default destinations. (Contributed by Cynthia Shang. Suggested by Stephen Frost, ejberdecia.)
* Add standby restore type. This restore type automatically adds standby_mode=on to recovery.conf for PostgreSQL < 12 and creates standby.signal for PostgreSQL ≥ 12, creating a common interface between PostgreSQL versions. (Reviewed by Cynthia Shang.)

Improvements:

* The restore command is implemented entirely in C. (Reviewed by Cynthia Shang.)

Documentation Improvements:

* Document the relationship between db-timeout and protocol-timeout. (Contributed by Cynthia Shang. Suggested by James Chanco Jr.)
* Add documentation clarifications regarding standby repositories. (Contributed by Cynthia Shang.)
* Add FAQ for time-based Point-in-Time Recovery. (Contributed by Cynthia Shang.)
2019-10-01 16:02:07 -04:00

16989 lines
649 KiB
Plaintext

{
"default" : {
"all" : {
"user-guide" : [
{
"key" : {
"id" : "s3",
"image" : "minio/minio:RELEASE.2019-06-04T01-15-58Z",
"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 --compat",
"update-hosts" : false
},
"type" : "host",
"value" : {
"ip" : "172.17.0.2"
}
},
{
"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.3"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /build/pgbackrest-release-2.18"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cp -r /pgbackrest/libc /build/pgbackrest-release-2.18"
],
"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.18"
],
"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.18"
],
"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 build-essential libssl-dev libxml2-dev libperl-dev zlib1g-dev \\",
" libpq-dev"
],
"cmd-extra" : "-y 2>&1",
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"perl -V | grep USE_64_BIT_INT"
],
"host" : "build",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cd /build/pgbackrest-release-2.18/src && ./configure"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"make -s -C /build/pgbackrest-release-2.18/src"
],
"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.4"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest-release-2.18/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 apt-get install perl"
],
"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 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.18 - 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/10/bin/initdb \\",
" -D /var/lib/postgresql/10/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 10 demo"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"Configuring already existing cluster (configuration: /etc/postgresql/10/demo, data: /var/lib/postgresql/10/demo, owner: 106:110)",
"Ver Cluster Port Status Owner Data directory Log file",
"10 demo 5432 down postgres /var/lib/postgresql/10/demo /var/log/postgresql/postgresql-10-demo.log"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/10/demo/postgresql.conf",
"host" : "pg-primary",
"option" : {
"listen_addresses" : {
"value" : "'*'"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/10/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/10/demo"
}
},
"global" : {
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/10/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.18 - '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/10/demo",
"",
"[global]",
"repo1-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/10/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 10 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/10/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/10/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/10/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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --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-447b63e200af269b0774a0a99c17206ef33340a3.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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --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() with label \"pgBackRest backup started at 2019-10-01 15:22:05\": backup begins after the next regular checkpoint completes",
"P00 INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028",
" [filtered 941 lines of output]",
"P01 INFO: backup file /var/lib/postgresql/10/demo/base/1/12820 (0B, 100%)",
"P01 INFO: backup file /var/lib/postgresql/10/demo/base/1/12815 (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 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" : [
"20191001-152205F"
]
}
},
{
"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/10/demo/global/pg_control (8KB, 99%) checksum 9170cdc9ff61f1f3a7b7ee3e72ea9b0560f9bb40",
"P01 INFO: backup file /var/lib/postgresql/10/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/3000130",
" [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): 000000010000000000000002/000000010000000000000003",
"",
" full backup: 20191001-152205F",
" timestamp start/stop: 2019-10-01 15:22:05 / 2019-10-01 15:22:18",
" wal start/stop: 000000010000000000000002 / 000000010000000000000002",
" database size: 22.5MB, backup size: 22.5MB",
" repository size: 2.7MB, repository backup size: 2.7MB",
"",
" diff backup: 20191001-152205F_20191001-152220D",
" timestamp start/stop: 2019-10-01 15:22:20 / 2019-10-01 15:22:22",
" wal start/stop: 000000010000000000000003 / 000000010000000000000003",
" database size: 22.5MB, backup size: 8.2KB",
" repository size: 2.7MB, repository backup size: 517B",
" backup reference list: 20191001-152205F"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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/10/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 10 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/10/bin/pg_ctl /usr/lib/postgresql/10/bin/pg_ctl start -D /var/lib/postgresql/10/demo -l /var/log/postgresql/postgresql-10-demo.log -s -o -c config_file=\"/etc/postgresql/10/demo/postgresql.conf\" exited with status 1: ",
"postgres: could not find the database system",
"Expected to find it in the directory \"/var/lib/postgresql/10/demo\",",
"but could not open file \"/var/lib/postgresql/10/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/10/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 10 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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --type=incr",
"P00 INFO: last backup label = 20191001-152205F_20191001-152220D, version = 2.18",
"P00 INFO: execute non-exclusive pg_start_backup() with label \"pgBackRest backup started at 2019-10-01 15:22:40\": 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 last backup, enabling delta checksum",
" [filtered 8 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/10/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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --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 = 20191001-152205F_20191001-152240I, version = 2.18",
"P00 INFO: execute non-exclusive pg_start_backup() with label \"pgBackRest backup started at 2019-10-01 15:22:46\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000006, lsn = 0/6000028",
"P01 INFO: backup file /var/lib/postgresql/10/demo/global/pg_control (8KB, 99%) checksum df026ac431b6eeb9b5e2590ab7721e3459fd2cd3",
" [filtered 8 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --output=json info"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"[",
" {",
" \"archive\" : [",
" {",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"id\" : \"10-1\",",
" \"max\" : \"000000020000000000000006\",",
" \"min\" : \"000000010000000000000002\"",
" }",
" ],",
" \"backup\" : [",
" {",
" \"archive\" : {",
" \"start\" : \"000000010000000000000002\",",
" \"stop\" : \"000000010000000000000002\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 23546193,",
" \"repository\" : {",
" \"delta\" : 2792037,",
" \"size\" : 2792037",
" },",
" \"size\" : 23546193",
" },",
" \"label\" : \"20191001-152205F\",",
" \"prior\" : null,",
" \"reference\" : null,",
" \"timestamp\" : {",
" \"start\" : 1569943325,",
" \"stop\" : 1569943338",
" },",
" \"type\" : \"full\"",
" },",
" {",
" \"archive\" : {",
" \"start\" : \"000000010000000000000003\",",
" \"stop\" : \"000000010000000000000003\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 8429,",
" \"repository\" : {",
" \"delta\" : 517,",
" \"size\" : 2792037",
" },",
" \"size\" : 23546193",
" },",
" \"label\" : \"20191001-152205F_20191001-152220D\",",
" \"prior\" : \"20191001-152205F\",",
" \"reference\" : [",
" \"20191001-152205F\"",
" ],",
" \"timestamp\" : {",
" \"start\" : 1569943340,",
" \"stop\" : 1569943342",
" },",
" \"type\" : \"diff\"",
" },",
" {",
" \"archive\" : {",
" \"start\" : \"000000020000000000000005\",",
" \"stop\" : \"000000020000000000000005\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 8421,",
" \"repository\" : {",
" \"delta\" : 469,",
" \"size\" : 2792037",
" },",
" \"size\" : 23546193",
" },",
" \"label\" : \"20191001-152205F_20191001-152240I\",",
" \"prior\" : \"20191001-152205F_20191001-152220D\",",
" \"reference\" : [",
" \"20191001-152205F\",",
" \"20191001-152205F_20191001-152220D\"",
" ],",
" \"timestamp\" : {",
" \"start\" : 1569943360,",
" \"stop\" : 1569943364",
" },",
" \"type\" : \"incr\"",
" },",
" {",
" \"archive\" : {",
" \"start\" : \"000000020000000000000006\",",
" \"stop\" : \"000000020000000000000006\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 8429,",
" \"repository\" : {",
" \"delta\" : 517,",
" \"size\" : 2792037",
" },",
" \"size\" : 23546193",
" },",
" \"label\" : \"20191001-152205F_20191001-152246I\",",
" \"prior\" : \"20191001-152205F_20191001-152240I\",",
" \"reference\" : [",
" \"20191001-152205F\"",
" ],",
" \"timestamp\" : {",
" \"start\" : 1569943366,",
" \"stop\" : 1569943368",
" },",
" \"type\" : \"incr\"",
" }",
" ],",
" \"cipher\" : \"aes-256-cbc\",",
" \"db\" : [",
" {",
" \"id\" : 1,",
" \"system-id\" : 6742855129530261735,",
" \"version\" : \"10\"",
" }",
" ],",
" \"name\" : \"demo\",",
" \"status\" : {",
" \"code\" : 0,",
" \"message\" : \"ok\"",
" }",
" }",
"]"
]
}
},
{
"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 directory from the pgBackRest into command",
" copy temp_pgbackrest_data (data)",
" from program",
" 'pgbackrest --output=json info | tr ''\\n'' '' ''' (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\" | 2019-10-01 15:22:48+00 | 000000020000000000000006",
"(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" : [
"1569943368"
]
}
},
{
"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" : [
"\"000000020000000000000006\""
]
}
},
{
"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/10/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 20191001-152205F|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 951 lines of output]",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --type=full",
"P00 DETAIL: archive retention on backup 20191001-152205F, archiveId = 10-1, start = 000000010000000000000002",
"P00 DETAIL: no archive to remove, archiveId = 10-1",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest 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" : [
"20191001-152258F"
]
}
},
{
"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\\: 20191001-152205F|archive retention on backup 20191001-152258F|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 950 lines of output]",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --type=full",
"P00 INFO: expire full backup set: 20191001-152205F, 20191001-152205F_20191001-152220D, 20191001-152205F_20191001-152240I, 20191001-152205F_20191001-152246I",
"P00 INFO: remove expired backup 20191001-152205F_20191001-152246I",
"P00 INFO: remove expired backup 20191001-152205F_20191001-152240I",
" [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/10/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 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" : [
"20191001-152312F_20191001-152330D"
]
}
},
{
"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: 20191001-152312F_20191001-152330D"
]
},
"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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=1 --repo1-retention-full=2 --stanza=demo --start-fast --type=diff",
"P00 INFO: expire diff backup set: 20191001-152312F_20191001-152330D, 20191001-152312F_20191001-152333I",
"P00 INFO: remove expired backup 20191001-152312F_20191001-152333I",
"P00 INFO: remove expired backup 20191001-152312F_20191001-152330D"
]
}
},
{
"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/10/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 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" : [
"20191001-152312F_20191001-152337D"
]
}
},
{
"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: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 00000002000000000000000F, lsn = 0/F0000F8",
"P00 INFO: new backup label = 20191001-152312F_20191001-152342D",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=2 --repo1-retention-full=2 --stanza=demo --start-fast --type=diff"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest 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" : [
"20191001-152312F_20191001-152342D"
]
}
},
{
"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 20191001-152312F_20191001-152337D|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: expire command begin 2.18: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-archive=1 --repo1-retention-archive-type=diff --repo1-retention-diff=2 --repo1-retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20191001-152258F, archiveId = 10-1, start = 000000020000000000000008, stop = 000000020000000000000008",
"P00 DETAIL: archive retention on backup 20191001-152312F, archiveId = 10-1, start = 000000020000000000000009, stop = 000000020000000000000009",
"P00 DETAIL: archive retention on backup 20191001-152312F_20191001-152337D, archiveId = 10-1, start = 00000002000000000000000C, stop = 00000002000000000000000C",
"P00 DETAIL: archive retention on backup 20191001-152312F_20191001-152342D, archiveId = 10-1, start = 00000002000000000000000F",
"P00 DETAIL: remove archive: archiveId = 10-1, start = 00000002000000000000000A, stop = 00000002000000000000000B",
"P00 DETAIL: remove archive: archiveId = 10-1, start = 00000002000000000000000D, stop = 00000002000000000000000E",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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/10/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/10/demo'",
"P00 DETAIL: remove invalid file '/var/lib/postgresql/10/demo/backup_label.old'",
"P00 DETAIL: remove invalid file '/var/lib/postgresql/10/demo/base/1/pg_internal.init'",
" [filtered 755 lines of output]",
"P01 DETAIL: restore file /var/lib/postgresql/10/demo/base/12977/PG_VERSION - exists and matches backup (3B, 99%) checksum 4143d3a341877154d6e95211464e1df1015b74bd",
"P01 DETAIL: restore file /var/lib/postgresql/10/demo/base/1/PG_VERSION - exists and matches backup (3B, 99%) checksum 4143d3a341877154d6e95211464e1df1015b74bd",
"P01 DETAIL: restore file /var/lib/postgresql/10/demo/PG_VERSION - exists and matches backup (3B, 100%) checksum 4143d3a341877154d6e95211464e1df1015b74bd",
"P01 DETAIL: restore file /var/lib/postgresql/10/demo/global/6100_vm - exists and is zero size (0B, 100%)",
"P01 DETAIL: restore file /var/lib/postgresql/10/demo/global/6100 - exists and is zero size (0B, 100%)",
" [filtered 232 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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/10/demo/base/24576"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"7.5M\t/var/lib/postgresql/10/demo/base/24576"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest 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" : [
"20191001-152312F_20191001-152356I"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo \\",
" --set=20191001-152312F_20191001-152356I 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: 20191001-152312F, 20191001-152312F_20191001-152342D",
" database list: postgres (12978), test1 (24576), test2 (24577)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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 10 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: 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/10/demo/base/24576"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"176K\t/var/lib/postgresql/10/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",
" 12977 | template0",
" 12978 | 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 psql -Atc \"select current_timestamp\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"2019-10-01 15:24:27.503516+00"
]
}
},
{
"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 10 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=2019-10-01 15:24:27.503516+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-10-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/10/demo/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 2019-10-01 15:24:29",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"recovery_target_time = '2019-10-01 15:24:27.503516+00'",
"recovery_target_action = 'promote'"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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-10-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 2 lines of output]",
"LOG: listening on Unix socket \"/var/run/postgresql/.s.PGSQL.5432\"",
"LOG: database system was interrupted; last known up at 2019-10-01 15:24:20 UTC",
"LOG: starting point-in-time recovery to 2019-10-01 15:24:27.503516+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"000000040000000000000014\" from archive",
" [filtered 2 lines of output]",
"LOG: database system is ready to accept read only connections",
"LOG: restored log file \"000000040000000000000015\" from archive",
"LOG: recovery stopping before commit of transaction 564, time 2019-10-01 15:24:27.989165+00",
"LOG: redo done at 0/15021748",
"LOG: last completed transaction was at log time 2019-10-01 15:24:26.998943+00",
"LOG: selected new timeline ID: 5",
"LOG: archive recovery complete",
" [filtered 3 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 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" : [
"20191001-152312F_20191001-152419D"
]
}
},
{
"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 pg_ctlcluster 10 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=2019-10-01 15:24:27.503516+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-10-demo.log"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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-10-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 2 lines of output]",
"LOG: listening on Unix socket \"/var/run/postgresql/.s.PGSQL.5432\"",
"LOG: database system was interrupted; last known up at 2019-10-01 15:24:40 UTC",
"LOG: starting point-in-time recovery to 2019-10-01 15:24:27.503516+00",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: restored log file \"000000050000000000000016\" from archive",
"LOG: redo starts at 0/16000028",
"LOG: consistent recovery state reached at 0/160000F8",
"LOG: database system is ready to accept read only connections",
"LOG: redo done at 0/160000F8",
" [filtered 8 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"20191001-152312F_20191001-152419D"
]
},
"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/000000050000000000000016",
"",
" full backup: 20191001-152258F",
" timestamp start/stop: 2019-10-01 15:22:58 / 2019-10-01 15:23:11",
" wal start/stop: 000000020000000000000008 / 000000020000000000000008",
" database size: 22.5MB, backup size: 22.5MB",
" repository size: 2.7MB, repository backup size: 2.7MB",
"",
" full backup: 20191001-152312F",
" timestamp start/stop: 2019-10-01 15:23:12 / 2019-10-01 15:23:27",
" wal start/stop: 000000020000000000000009 / 000000020000000000000009",
" database size: 22.5MB, backup size: 22.5MB",
" repository size: 2.7MB, repository backup size: 2.7MB",
"",
" diff backup: 20191001-152312F_20191001-152342D",
" timestamp start/stop: 2019-10-01 15:23:42 / 2019-10-01 15:23:45",
" wal start/stop: 00000002000000000000000F / 00000002000000000000000F",
" database size: 22.5MB, backup size: 96.2KB",
" repository size: 2.7MB, repository backup size: 11.9KB",
" backup reference list: 20191001-152312F",
"",
" incr backup: 20191001-152312F_20191001-152356I",
" timestamp start/stop: 2019-10-01 15:23:56 / 2019-10-01 15:24:05",
" wal start/stop: 000000030000000000000011 / 000000030000000000000011",
" database size: 37MB, backup size: 15MB",
" repository size: 4.4MB, repository backup size: 1.8MB",
" backup reference list: 20191001-152312F, 20191001-152312F_20191001-152342D",
"",
" diff backup: 20191001-152312F_20191001-152419D",
" timestamp start/stop: 2019-10-01 15:24:19 / 2019-10-01 15:24:26",
" wal start/stop: 000000040000000000000014 / 000000040000000000000014",
" database size: 29.8MB, backup size: 7.8MB",
" repository size: 3.5MB, repository backup size: 949.3KB",
" backup reference list: 20191001-152312F",
"",
" incr backup: 20191001-152312F_20191001-152438I",
" timestamp start/stop: 2019-10-01 15:24:38 / 2019-10-01 15:24:42",
" wal start/stop: 000000050000000000000016 / 000000050000000000000016",
" database size: 29.8MB, backup size: 2.1MB",
" repository size: 3.5MB, repository backup size: 219.0KB",
" backup reference list: 20191001-152312F, 20191001-152312F_20191001-152419D"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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=2019-10-01 15:24:27.503516+00\" \\",
" --set=20191001-152312F_20191001-152419D --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-10-demo.log"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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-10-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 2 lines of output]",
"LOG: listening on Unix socket \"/var/run/postgresql/.s.PGSQL.5432\"",
"LOG: database system was interrupted; last known up at 2019-10-01 15:24:20 UTC",
"LOG: starting point-in-time recovery to 2019-10-01 15:24:27.503516+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"000000040000000000000014\" from archive",
" [filtered 2 lines of output]",
"LOG: database system is ready to accept read only connections",
"LOG: restored log file \"000000040000000000000015\" from archive",
"LOG: recovery stopping before commit of transaction 564, time 2019-10-01 15:24:27.989165+00",
"LOG: redo done at 0/15021748",
"LOG: last completed transaction was at log time 2019-10-01 15:24:26.998943+00",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: restored log file \"00000006.history\" from archive",
" [filtered 5 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo \"172.17.0.2 demo-bucket.s3.us-east-1.amazonaws.com s3.us-east-1.amazonaws.com\" | tee -a /etc/hosts"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mc config host add demo https://172.17.0.2 accessKey1 verySecretKey1 --insecure"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mc mb demo/demo-bucket --insecure"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"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/10/demo",
"",
"[global]",
"process-max=4",
"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" : [
"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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --process-max=4 --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --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() with label \"pgBackRest backup started at 2019-10-01 15:25:05\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000070000000000000016, lsn = 0/16000028",
" [filtered 1238 lines of output]",
"P04 INFO: backup file /var/lib/postgresql/10/demo/base/1/12815 (0B, 100%)",
"P03 INFO: backup file /var/lib/postgresql/10/demo/base/1/12825 (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 = 000000070000000000000016, lsn = 0/16000130",
" [filtered 6 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo",
"P00 INFO: http statistics: objects 2, sessions 2, requests 15, retries 0, closes 0",
"P00 INFO: stanza-delete command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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.5"
}
},
{
"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 scp build:/build/pgbackrest-release-2.18/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 apt-get install perl"
],
"cmd-extra" : "-y 2>&1",
"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/10/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/10/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/10/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/10/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 10 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 10 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 backup"
],
"host" : "repository",
"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/10/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 (10-1): 00000008000000000000001C/00000008000000000000001E",
"",
" full backup: 20191001-152625F",
" timestamp start/stop: 2019-10-01 15:26:25 / 2019-10-01 15:26:41",
" wal start/stop: 00000008000000000000001C / 00000008000000000000001C",
" database size: 29.8MB, backup size: 29.8MB",
" repository size: 3.5MB, repository backup size: 3.5MB",
"",
" full backup: 20191001-152643F",
" timestamp start/stop: 2019-10-01 15:26:43 / 2019-10-01 15:26:51",
" wal start/stop: 00000008000000000000001E / 00000008000000000000001E",
" 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" : "62",
"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 ERROR: [062]: raised from remote process on 'pg-primary': stop file exists for all stanzas"
]
}
},
{
"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" : "62",
"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 ERROR: [062]: raised from remote process on 'pg-primary': stop file exists for stanza demo"
]
}
},
{
"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.6"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest-release-2.18/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 apt-get install perl"
],
"cmd-extra" : "-y 2>&1",
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo 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/10/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/10/demo",
"",
"[global]",
"log-level-file=detail",
"repo1-host=repository"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_createcluster 10 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/10/demo/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 2019-10-01 15:27:29",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"standby_mode = 'on'"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/10/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-10-demo.log"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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-10-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"entering standby mode|database system is ready to accept read only connections"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 3 lines of output]",
"LOG: listening on Unix socket \"/var/run/postgresql/.s.PGSQL.5432\"",
"LOG: database system was interrupted; last known up at 2019-10-01 15:26:45 UTC",
"LOG: entering standby mode",
"LOG: restored log file \"00000008.history\" from archive",
"LOG: restored log file \"00000008000000000000001E\" from archive",
"LOG: redo starts at 0/1E000028",
"LOG: consistent recovery state reached at 0/1E0000F8",
"LOG: database system is ready to accept read only connections",
"LOG: incomplete startup packet"
]
}
},
{
"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/1F02B8C8 | 2019-10-01 15:27:40.284977+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 | 2019-10-01 15:27:44.789224+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 no primary was found"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.18: --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-host=repository --stanza=demo",
"P00 INFO: switch wal not performed because no primary was found",
"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.6/32 md5\" \\",
" >> /etc/postgresql/10/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 10 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.4 port=5432 user=replicator"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/10/demo",
"recovery-option=primary_conninfo=host=172.17.0.4 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.4:*: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 10 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/10/demo/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 2019-10-01 15:27:53",
"primary_conninfo = 'host=172.17.0.4 port=5432 user=replicator'",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"standby_mode = 'on'"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-10-demo.log"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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-10-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: restored log file \"00000008000000000000001F\" from archive",
"LOG: incomplete startup packet",
"LOG: started streaming WAL from primary at 0/20000000 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 | 2019-10-01 15:28:01.679977+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 | 2019-10-01 15:28:02.578064+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/10/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/10/demo",
"recovery-option=primary_conninfo=host=172.17.0.4 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 10 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.18: --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-host=repository --stanza=demo",
"P00 INFO: WAL segment 000000080000000000000025 successfully archived to 'archive/demo/10-1/0000000800000000/000000080000000000000025-ff3534a6838701a17bfc47e14c0a5969944ab961.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.18: [/var/lib/postgresql/10/demo/pg_wal] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 1 WAL file(s) to archive: 000000080000000000000020",
"P01 DETAIL: pushed WAL file '000000080000000000000020' to the archive",
"P00 INFO: archive-push-async command end: completed successfully",
"",
"-------------------PROCESS START-------------------",
"P00 INFO: archive-push-async command begin 2.18: [/var/lib/postgresql/10/demo/pg_wal] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 4 WAL file(s) to archive: 000000080000000000000021...000000080000000000000024",
"P01 DETAIL: pushed WAL file '000000080000000000000021' to the archive",
"P01 DETAIL: pushed WAL file '000000080000000000000022' to the archive",
"P01 DETAIL: pushed WAL file '000000080000000000000023' to the archive",
"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.18: [/var/lib/postgresql/10/demo/pg_wal] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 1 WAL file(s) to archive: 000000080000000000000025",
"P01 DETAIL: pushed WAL file '000000080000000000000025' 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.18: [00000008000000000000001E, 00000008000000000000001F, 000000080000000000000020, 000000080000000000000021, 000000080000000000000022, 000000080000000000000023, 000000080000000000000024, 000000080000000000000025] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: get 8 WAL file(s) from archive: 00000008000000000000001E...000000080000000000000025",
"P01 DETAIL: found 00000008000000000000001E in the archive",
"P01 DETAIL: found 00000008000000000000001F in the archive",
"P01 DETAIL: unable to find 000000080000000000000020 in the archive",
"P01 DETAIL: unable to find 000000080000000000000021 in the archive",
" [filtered 20 lines of output]",
"P00 INFO: archive-get-async command begin 2.18: [000000080000000000000020, 000000080000000000000021, 000000080000000000000022, 000000080000000000000023, 000000080000000000000024, 000000080000000000000025, 000000080000000000000026, 000000080000000000000027] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: get 8 WAL file(s) from archive: 000000080000000000000020...000000080000000000000027",
"P01 DETAIL: found 000000080000000000000020 in the archive",
"P01 DETAIL: found 000000080000000000000021 in the archive",
"P01 DETAIL: found 000000080000000000000022 in the archive",
"P01 DETAIL: found 000000080000000000000023 in the archive",
"P01 DETAIL: found 000000080000000000000024 in the archive",
"P01 DETAIL: unable to find 000000080000000000000025 in the archive",
"P01 DETAIL: unable to find 000000080000000000000026 in the archive",
" [filtered 4 lines of output]",
"P00 INFO: archive-get-async command begin 2.18: [000000080000000000000025, 000000080000000000000026, 000000080000000000000027, 000000080000000000000028, 000000080000000000000029, 00000008000000000000002A, 00000008000000000000002B, 00000008000000000000002C] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/postgresql/10/demo --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: get 8 WAL file(s) from archive: 000000080000000000000025...00000008000000000000002C",
"P01 DETAIL: found 000000080000000000000025 in the archive",
"P01 DETAIL: unable to find 000000080000000000000026 in the archive",
"P01 DETAIL: unable to find 000000080000000000000027 in the archive",
" [filtered 5 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres psql -c \"alter user replicator password 'jw8s0F4'\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"ALTER ROLE"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "repository",
"option" : {
"demo" : {
"pg2-host" : {
"value" : "pg-standby"
},
"pg2-path" : {
"value" : "/var/lib/postgresql/10/demo"
}
},
"global" : {
"backup-standby" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-path=/var/lib/postgresql/10/demo",
"pg2-host=pg-standby",
"pg2-path=/var/lib/postgresql/10/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() with label \"pgBackRest backup started at 2019-10-01 15:28:25\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000080000000000000027, lsn = 0/27000028",
"P00 INFO: wait for replay on the standby to reach 0/27000028",
"P00 INFO: replay on the standby reached 0/270000D0, checkpoint 0/27000060",
"P03 INFO: backup file pg-standby:/var/lib/postgresql/10/demo/base/12978/1249 (392KB, 17%) checksum 29326e6a8034864bc03be532b3d98620bc097450",
"P02 INFO: backup file pg-standby:/var/lib/postgresql/10/demo/base/12978/2608 (440KB, 36%) checksum eefc1d10eeed1de4fe9b1a35592b82866d6501ac",
" [filtered 6 lines of output]",
"P04 INFO: backup file pg-standby:/var/lib/postgresql/10/demo/base/12978/3455 (40KB, 83%) checksum c538109dd0976a3021f960dabbc77d5dc858fb3a",
"P03 INFO: backup file pg-standby:/var/lib/postgresql/10/demo/base/12978/2663 (48KB, 85%) checksum b9f7d912e91f3e411e34af15dab95b9af5b52257",
"P01 INFO: backup file pg-primary:/var/lib/postgresql/10/demo/global/pg_control (8KB, 85%) checksum a38c041604a67845411956810973c0768adc49dc",
"P02 INFO: backup file pg-standby:/var/lib/postgresql/10/demo/base/12978/2704 (40KB, 87%) checksum 09843072e11ef9228e15719ecec9cd8e98444cab",
"P04 INFO: backup file pg-standby:/var/lib/postgresql/10/demo/base/12978/2662 (32KB, 88%) checksum d73429775c163223cea81262ee0ce0c4989dc3f8",
"P03 INFO: backup file pg-standby:/var/lib/postgresql/10/demo/base/12978/2610 (32KB, 90%) checksum 7a89f25cb3e67835e3f602ed470872065fd23d20",
"P01 INFO: backup file pg-primary:/var/lib/postgresql/10/demo/pg_logical/replorigin_checkpoint (8B, 90%) checksum 347fc8f2df71bd4436e38bd1516ccd7ea0d46532",
"P02 INFO: backup file pg-standby:/var/lib/postgresql/10/demo/base/12978/2610_fsm (24KB, 91%) checksum 3b603e1e59c53f97dfbb3ff4fe6bb35802e3c319",
"P03 INFO: backup file pg-standby:/var/lib/postgresql/10/demo/base/12978/1249_fsm (24KB, 92%) checksum 73cb99421a6950457d4bb75ecd8d87b13820dbb2",
" [filtered 26 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 demo stop"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 10 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/11/bin/initdb \\",
" -D /var/lib/postgresql/11/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 11 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/11/bin/pg_upgrade \\",
" --old-bindir=/usr/lib/postgresql/10/bin \\",
" --new-bindir=/usr/lib/postgresql/11/bin \\",
" --old-datadir=/var/lib/postgresql/10/demo \\",
" --new-datadir=/var/lib/postgresql/11/demo \\",
" --old-options=\" -c config_file=/etc/postgresql/10/demo/postgresql.conf\" \\",
" --new-options=\" -c config_file=/etc/postgresql/11/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 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" : "/etc/postgresql/11/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/11/demo"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/11/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/11/demo"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/postgresql/11/demo",
"recovery-option=primary_conninfo=host=172.17.0.4 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/11/demo"
},
"pg2-path" : {
"value" : "/var/lib/postgresql/11/demo"
}
},
"global" : {
"backup-standby" : {
"value" : "n"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-host=pg-primary",
"pg1-path=/var/lib/postgresql/11/demo",
"pg2-host=pg-standby",
"pg2-path=/var/lib/postgresql/11/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/10/demo/pg_hba.conf \\",
" /etc/postgresql/11/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.18: --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/11/demo --pg2-path=/var/lib/postgresql/11/demo --repo1-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: stanza-upgrade command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_ctlcluster 11 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",
"10 demo 5432 down postgres /var/lib/postgresql/10/demo /var/log/postgresql/postgresql-10-demo.log",
"11 demo 5432 online postgres /var/lib/postgresql/11/demo /var/log/postgresql/postgresql-11-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 10 demo"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_dropcluster 10 demo"
],
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo pg_createcluster 11 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/11/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 11 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/11/demo",
"pg2-host=pg-standby",
"pg2-path=/var/lib/postgresql/11/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" : "s3",
"image" : "minio/minio:RELEASE.2019-06-04T01-15-58Z",
"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 --compat",
"update-hosts" : false
},
"type" : "host",
"value" : {
"ip" : "172.17.0.2"
}
},
{
"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.3"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /build/pgbackrest-release-2.18"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cp -r /pgbackrest/libc /build/pgbackrest-release-2.18"
],
"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.18"
],
"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.18"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo yum install build-essential gcc openssl-devel libxml2-devel \\",
" postgresql-devel perl-ExtUtils-Embed"
],
"cmd-extra" : "-y 2>&1",
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"perl -V | grep USE_64_BIT_INT"
],
"host" : "build",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cd /build/pgbackrest-release-2.18/src && ./configure"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"make -s -C /build/pgbackrest-release-2.18/src"
],
"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.4"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest-release-2.18/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 yum install perl perl-Time-HiRes perl-parent perl-JSON \\",
" perl-Digest-SHA"
],
"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 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.18 - 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.18 - '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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --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-f35e96a92840adad7669c4aea71cfd79c27679c2.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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --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() with label \"pgBackRest backup started at 2019-10-01 15:11:50\": 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.5MB",
"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 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" : [
"20191001-151150F"
]
}
},
{
"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 (1010B, 97%) checksum ba5891982e79d0a88571bf56c2b2bf6c42f413a2",
"P01 INFO: backup file /var/lib/pgsql/9.5/data/backup_label (236B, 100%) checksum aa9a9130433b5d8297b632382384db2dbc175b7b",
"P00 INFO: diff backup size = 9.2KB",
"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): 000000010000000000000002/000000010000000000000003",
"",
" full backup: 20191001-151150F",
" timestamp start/stop: 2019-10-01 15:11:50 / 2019-10-01 15:12:03",
" wal start/stop: 000000010000000000000002 / 000000010000000000000002",
" database size: 20.6MB, backup size: 20.6MB",
" repository size: 2.4MB, repository backup size: 2.4MB",
"",
" diff backup: 20191001-151150F_20191001-151204D",
" timestamp start/stop: 2019-10-01 15:12:04 / 2019-10-01 15:12:08",
" wal start/stop: 000000010000000000000003 / 000000010000000000000003",
" database size: 20.6MB, backup size: 9.2KB",
" repository size: 2.4MB, repository backup size: 768B",
" backup reference list: 20191001-151150F"
]
}
},
{
"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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --type=incr",
"P00 INFO: last backup label = 20191001-151150F_20191001-151204D, version = 2.18",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2019-10-01 15:12:28\": 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 last 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/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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --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 = 20191001-151150F_20191001-151228I, version = 2.18",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2019-10-01 15:12:35\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000007, lsn = 0/7000028",
"P01 INFO: backup file /var/lib/pgsql/9.5/data/global/pg_control (8KB, 78%) checksum f9e380129e4b55f89cc9ee715ffc675784f38889",
" [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() with label \"pgBackRest backup started at 2019-10-01 15:12:39\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000009, lsn = 0/9000028",
"P00 ERROR: [047]: unable to create path '/var/lib/pgbackrest/backup/demo/20191001-151150F_20191001-151239I': [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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --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 = 20191001-151150F_20191001-151235I, version = 2.18",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2019-10-01 15:12:43\": backup begins after the requested immediate checkpoint completes",
"P00 ERROR: [057]: unable to execute query 'select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS.US TZ'), pg_xlogfile_name(lsn), lsn::text, (select setting::int8 from pg_settings where name = 'wal_segment_size') * (select setting::int8 from pg_settings where name = 'wal_block_size') from pg_start_backup('pgBackRest backup started at 2019-10-01 15:12:43', 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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --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 = 20191001-151150F_20191001-151235I, version = 2.18",
"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: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2019-10-01 15:12:46\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000002000000000000000A, lsn = 0/A000028",
"P01 INFO: backup file /var/lib/pgsql/9.5/data/global/pg_control (8KB, 74%) checksum 96a02262d084b88739dc48b456cdf41124bb4b1a",
" [filtered 9 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --output=json info"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"[",
" {",
" \"archive\" : [",
" {",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"id\" : \"9.5-1\",",
" \"max\" : \"00000002000000000000000A\",",
" \"min\" : \"000000010000000000000002\"",
" }",
" ],",
" \"backup\" : [",
" {",
" \"archive\" : {",
" \"start\" : \"000000010000000000000002\",",
" \"stop\" : \"000000010000000000000002\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 21551170,",
" \"repository\" : {",
" \"delta\" : 2532480,",
" \"size\" : 2532480",
" },",
" \"size\" : 21551170",
" },",
" \"label\" : \"20191001-151150F\",",
" \"prior\" : null,",
" \"reference\" : null,",
" \"timestamp\" : {",
" \"start\" : 1569942710,",
" \"stop\" : 1569942723",
" },",
" \"type\" : \"full\"",
" },",
" {",
" \"archive\" : {",
" \"start\" : \"000000010000000000000003\",",
" \"stop\" : \"000000010000000000000003\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 9438,",
" \"repository\" : {",
" \"delta\" : 768,",
" \"size\" : 2532480",
" },",
" \"size\" : 21551277",
" },",
" \"label\" : \"20191001-151150F_20191001-151204D\",",
" \"prior\" : \"20191001-151150F\",",
" \"reference\" : [",
" \"20191001-151150F\"",
" ],",
" \"timestamp\" : {",
" \"start\" : 1569942724,",
" \"stop\" : 1569942728",
" },",
" \"type\" : \"diff\"",
" },",
" {",
" \"archive\" : {",
" \"start\" : \"000000020000000000000006\",",
" \"stop\" : \"000000020000000000000006\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 10284,",
" \"repository\" : {",
" \"delta\" : 928,",
" \"size\" : 2532640",
" },",
" \"size\" : 21552123",
" },",
" \"label\" : \"20191001-151150F_20191001-151228I\",",
" \"prior\" : \"20191001-151150F_20191001-151204D\",",
" \"reference\" : [",
" \"20191001-151150F\"",
" ],",
" \"timestamp\" : {",
" \"start\" : 1569942748,",
" \"stop\" : 1569942752",
" },",
" \"type\" : \"incr\"",
" },",
" {",
" \"archive\" : {",
" \"start\" : \"000000020000000000000007\",",
" \"stop\" : \"000000020000000000000007\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 10391,",
" \"repository\" : {",
" \"delta\" : 928,",
" \"size\" : 2532640",
" },",
" \"size\" : 21552230",
" },",
" \"label\" : \"20191001-151150F_20191001-151235I\",",
" \"prior\" : \"20191001-151150F_20191001-151228I\",",
" \"reference\" : [",
" \"20191001-151150F\"",
" ],",
" \"timestamp\" : {",
" \"start\" : 1569942755,",
" \"stop\" : 1569942758",
" },",
" \"type\" : \"incr\"",
" },",
" {",
" \"archive\" : {",
" \"start\" : \"00000002000000000000000A\",",
" \"stop\" : \"00000002000000000000000A\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 11137,",
" \"repository\" : {",
" \"delta\" : 1120,",
" \"size\" : 2532832",
" },",
" \"size\" : 21552976",
" },",
" \"label\" : \"20191001-151150F_20191001-151246I\",",
" \"prior\" : \"20191001-151150F_20191001-151235I\",",
" \"reference\" : [",
" \"20191001-151150F\"",
" ],",
" \"timestamp\" : {",
" \"start\" : 1569942766,",
" \"stop\" : 1569942771",
" },",
" \"type\" : \"incr\"",
" }",
" ],",
" \"cipher\" : \"aes-256-cbc\",",
" \"db\" : [",
" {",
" \"id\" : 1,",
" \"system-id\" : 6742852492143456528,",
" \"version\" : \"9.5\"",
" }",
" ],",
" \"name\" : \"demo\",",
" \"status\" : {",
" \"code\" : 0,",
" \"message\" : \"ok\"",
" }",
" }",
"]"
]
}
},
{
"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 directory from the pgBackRest into command",
" copy temp_pgbackrest_data (data)",
" from program",
" 'pgbackrest --output=json info | tr ''\\n'' '' ''' (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\" | 2019-10-01 15:12:51+00 | 00000002000000000000000A",
"(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 20191001-151150F|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 860 lines of output]",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --stop-auto --type=full",
"P00 DETAIL: archive retention on backup 20191001-151150F, archiveId = 9.5-1, start = 000000010000000000000002",
"P00 DETAIL: no archive to remove, archiveId = 9.5-1",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest 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" : [
"20191001-151257F"
]
}
},
{
"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\\: 20191001-151150F|archive retention on backup 20191001-151257F|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 860 lines of output]",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --stop-auto --type=full",
"P00 INFO: expire full backup set: 20191001-151150F, 20191001-151150F_20191001-151204D, 20191001-151150F_20191001-151228I, 20191001-151150F_20191001-151235I, 20191001-151150F_20191001-151246I",
"P00 INFO: remove expired backup 20191001-151150F_20191001-151246I",
"P00 INFO: remove expired backup 20191001-151150F_20191001-151235I",
" [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 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" : [
"20191001-151312F_20191001-151327D"
]
}
},
{
"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: 20191001-151312F_20191001-151327D"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 12 lines of output]",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=1 --repo1-retention-full=2 --stanza=demo --start-fast --stop-auto --type=diff",
"P00 INFO: expire diff backup set: 20191001-151312F_20191001-151327D, 20191001-151312F_20191001-151332I",
"P00 INFO: remove expired backup 20191001-151312F_20191001-151332I",
"P00 INFO: remove expired backup 20191001-151312F_20191001-151327D"
]
}
},
{
"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 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" : [
"20191001-151312F_20191001-151337D"
]
}
},
{
"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 9 lines of output]",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000020000000000000014, lsn = 0/140000F8",
"P00 INFO: new backup label = 20191001-151312F_20191001-151345D",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=2 --repo1-retention-full=2 --stanza=demo --start-fast --stop-auto --type=diff"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest 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" : [
"20191001-151312F_20191001-151345D"
]
}
},
{
"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 20191001-151312F_20191001-151337D|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: expire command begin 2.18: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-archive=1 --repo1-retention-archive-type=diff --repo1-retention-diff=2 --repo1-retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20191001-151257F, archiveId = 9.5-1, start = 00000002000000000000000C, stop = 00000002000000000000000C",
"P00 DETAIL: archive retention on backup 20191001-151312F, archiveId = 9.5-1, start = 00000002000000000000000D, stop = 00000002000000000000000D",
"P00 DETAIL: archive retention on backup 20191001-151312F_20191001-151337D, archiveId = 9.5-1, start = 000000020000000000000011, stop = 000000020000000000000011",
"P00 DETAIL: archive retention on backup 20191001-151312F_20191001-151345D, archiveId = 9.5-1, start = 000000020000000000000014",
"P00 DETAIL: remove archive: archiveId = 9.5-1, start = 00000002000000000000000E, stop = 000000020000000000000010",
"P00 DETAIL: remove archive: archiveId = 9.5-1, start = 000000020000000000000012, stop = 000000020000000000000013",
"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 900 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 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" : [
"20191001-151312F_20191001-151359I"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo \\",
" --set=20191001-151312F_20191001-151359I 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: 20191001-151312F, 20191001-151312F_20191001-151345D",
" 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 psql -Atc \"select current_timestamp\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"2019-10-01 15:14:33.490581+00"
]
}
},
{
"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=2019-10-01 15:14:33.490581+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 2019-10-01 15:14:36",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"recovery_target_time = '2019-10-01 15:14:33.490581+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 2019-10-01 15:14:26 UTC",
"LOG: starting point-in-time recovery to 2019-10-01 15:14:33.490581+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"000000040000000000000019\" from archive",
"LOG: redo starts at 0/19000028",
"LOG: consistent recovery state reached at 0/190000F8",
"LOG: restored log file \"00000004000000000000001A\" from archive",
"LOG: recovery stopping before commit of transaction 630, time 2019-10-01 15:14:33.960548+00",
"LOG: redo done at 0/1A01C148",
"LOG: last completed transaction was at log time 2019-10-01 15:14:33.008426+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 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" : [
"20191001-151312F_20191001-151424D"
]
}
},
{
"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 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=2019-10-01 15:14:33.490581+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 2019-10-01 15:14:46 UTC",
"LOG: starting point-in-time recovery to 2019-10-01 15:14:33.490581+00",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: restored log file \"00000005000000000000001B\" from archive",
"LOG: redo starts at 0/1B000028",
"LOG: consistent recovery state reached at 0/1B0000F8",
"LOG: redo done at 0/1B0000F8",
"LOG: restored log file \"00000005000000000000001B\" from archive",
" [filtered 8 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"20191001-151312F_20191001-151424D"
]
},
"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): 00000002000000000000000C/00000005000000000000001B",
"",
" full backup: 20191001-151257F",
" timestamp start/stop: 2019-10-01 15:12:57 / 2019-10-01 15:13:10",
" wal start/stop: 00000002000000000000000C / 00000002000000000000000C",
" database size: 20.6MB, backup size: 20.6MB",
" repository size: 2.4MB, repository backup size: 2.4MB",
"",
" full backup: 20191001-151312F",
" timestamp start/stop: 2019-10-01 15:13:12 / 2019-10-01 15:13:25",
" wal start/stop: 00000002000000000000000D / 00000002000000000000000D",
" database size: 20.6MB, backup size: 20.6MB",
" repository size: 2.4MB, repository backup size: 2.4MB",
"",
" diff backup: 20191001-151312F_20191001-151345D",
" timestamp start/stop: 2019-10-01 15:13:45 / 2019-10-01 15:13:48",
" wal start/stop: 000000020000000000000014 / 000000020000000000000014",
" database size: 20.6MB, backup size: 116.5KB",
" repository size: 2.4MB, repository backup size: 12.7KB",
" backup reference list: 20191001-151312F",
"",
" incr backup: 20191001-151312F_20191001-151359I",
" timestamp start/stop: 2019-10-01 15:13:59 / 2019-10-01 15:14:10",
" wal start/stop: 000000030000000000000016 / 000000030000000000000016",
" database size: 33.9MB, backup size: 13.4MB",
" repository size: 4MB, repository backup size: 1.6MB",
" backup reference list: 20191001-151312F, 20191001-151312F_20191001-151345D",
"",
" diff backup: 20191001-151312F_20191001-151424D",
" timestamp start/stop: 2019-10-01 15:14:24 / 2019-10-01 15:14:32",
" wal start/stop: 000000040000000000000019 / 000000040000000000000019",
" database size: 27.3MB, backup size: 6.9MB",
" repository size: 3.2MB, repository backup size: 832.0KB",
" backup reference list: 20191001-151312F",
"",
" incr backup: 20191001-151312F_20191001-151445I",
" timestamp start/stop: 2019-10-01 15:14:45 / 2019-10-01 15:14:49",
" wal start/stop: 00000005000000000000001B / 00000005000000000000001B",
" database size: 27.3MB, backup size: 2.0MB",
" repository size: 3.2MB, repository backup size: 210.3KB",
" backup reference list: 20191001-151312F, 20191001-151312F_20191001-151424D"
]
}
},
{
"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=2019-10-01 15:14:33.490581+00\" \\",
" --set=20191001-151312F_20191001-151424D --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 2019-10-01 15:14:26 UTC",
"LOG: starting point-in-time recovery to 2019-10-01 15:14:33.490581+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"000000040000000000000019\" from archive",
"LOG: redo starts at 0/19000028",
"LOG: consistent recovery state reached at 0/190000F8",
"LOG: restored log file \"00000004000000000000001A\" from archive",
"LOG: recovery stopping before commit of transaction 630, time 2019-10-01 15:14:33.960548+00",
"LOG: redo done at 0/1A01C148",
"LOG: last completed transaction was at log time 2019-10-01 15:14:33.008426+00",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: restored log file \"00000006.history\" from archive",
" [filtered 6 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo \"172.17.0.2 demo-bucket.s3.us-east-1.amazonaws.com s3.us-east-1.amazonaws.com\" | tee -a /etc/hosts"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mc config host add demo https://172.17.0.2 accessKey1 verySecretKey1 --insecure"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mc mb demo/demo-bucket --insecure"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"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-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" : [
"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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --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.18: --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=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --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() with label \"pgBackRest backup started at 2019-10-01 15:15:13\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000007000000000000001B, lsn = 0/1B000028",
" [filtered 1119 lines of output]",
"P04 INFO: backup file /var/lib/pgsql/9.5/data/base/1/12216 (0B, 100%)",
"P02 INFO: backup file /var/lib/pgsql/9.5/data/base/1/12221 (0B, 100%)",
"P00 INFO: full backup size = 27.2MB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 00000007000000000000001B, lsn = 0/1B000130",
" [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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo",
"P00 INFO: http statistics: objects 2, sessions 2, requests 15, 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.5"
}
},
{
"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 scp build:/build/pgbackrest-release-2.18/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 yum install perl perl-Time-HiRes perl-parent perl-JSON \\",
" perl-Digest-SHA"
],
"cmd-extra" : "-y 2>&1",
"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 backup"
],
"host" : "repository",
"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/000000080000000000000023",
"",
" full backup: 20191001-151636F",
" timestamp start/stop: 2019-10-01 15:16:36 / 2019-10-01 15:16:53",
" wal start/stop: 000000080000000000000021 / 000000080000000000000021",
" database size: 27.3MB, backup size: 27.3MB",
" repository size: 3.2MB, repository backup size: 3.2MB",
"",
" full backup: 20191001-151655F",
" timestamp start/stop: 2019-10-01 15:16:55 / 2019-10-01 15:17:04",
" wal start/stop: 000000080000000000000023 / 000000080000000000000023",
" 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" : "62",
"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 ERROR: [062]: raised from remote process on 'pg-primary': stop file exists for all stanzas"
]
}
},
{
"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" : "62",
"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 ERROR: [062]: raised from remote process on 'pg-primary': stop file exists for stanza demo"
]
}
},
{
"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.6"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest-release-2.18/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 yum install perl perl-Time-HiRes perl-parent perl-JSON \\",
" perl-Digest-SHA"
],
"cmd-extra" : "-y 2>&1",
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo 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 2019-10-01 15:17:45",
"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 2019-10-01 15:16:57 UTC",
"LOG: entering standby mode",
"LOG: restored log file \"00000008.history\" from archive",
"LOG: restored log file \"000000080000000000000023\" from archive",
"LOG: redo starts at 0/23000028",
"LOG: consistent recovery state reached at 0/230000F8",
"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/2401FB78 | 2019-10-01 15:17:56.154077+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 | 2019-10-01 15:18:01.201683+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 no primary was found"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.18: --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 no primary was found",
"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.6/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.4 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.4 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.4:*: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 2019-10-01 15:18:10",
"primary_conninfo = 'host=172.17.0.4 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 \"000000080000000000000024\" from archive",
"LOG: started streaming WAL from primary at 0/25000000 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 | 2019-10-01 15:18:19.736584+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 | 2019-10-01 15:18:20.655425+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.4 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.18: --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 00000008000000000000002A successfully archived to 'archive/demo/9.5-1/0000000800000000/00000008000000000000002A-84b88242010d98fa5c3dbefa974282d5076e9b9d.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.18: [/var/lib/pgsql/9.5/data/pg_xlog] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 1 WAL file(s) to archive: 000000080000000000000025",
"P01 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.18: [/var/lib/pgsql/9.5/data/pg_xlog] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 4 WAL file(s) to archive: 000000080000000000000026...000000080000000000000029",
"P01 DETAIL: pushed WAL file '000000080000000000000026' to the archive",
"P01 DETAIL: pushed WAL file '000000080000000000000027' to the archive",
"P01 DETAIL: pushed WAL file '000000080000000000000028' to the archive",
"P01 DETAIL: pushed WAL file '000000080000000000000029' to the archive",
"P00 INFO: archive-push-async command end: completed successfully",
"",
"-------------------PROCESS START-------------------",
"P00 INFO: archive-push-async command begin 2.18: [/var/lib/pgsql/9.5/data/pg_xlog] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: push 1 WAL file(s) to archive: 00000008000000000000002A",
"P01 DETAIL: pushed WAL file '00000008000000000000002A' 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.18: [000000080000000000000023, 000000080000000000000024, 000000080000000000000025, 000000080000000000000026, 000000080000000000000027, 000000080000000000000028, 000000080000000000000029, 00000008000000000000002A] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --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",
"P01 DETAIL: found 000000080000000000000024 in the archive",
"P01 DETAIL: unable to find 000000080000000000000025 in the archive",
"P01 DETAIL: unable to find 000000080000000000000026 in the archive",
" [filtered 20 lines of output]",
"P00 INFO: archive-get-async command begin 2.18: [000000080000000000000025, 000000080000000000000026, 000000080000000000000027, 000000080000000000000028, 000000080000000000000029, 00000008000000000000002A, 00000008000000000000002B, 00000008000000000000002C] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: get 8 WAL file(s) from archive: 000000080000000000000025...00000008000000000000002C",
"P01 DETAIL: found 000000080000000000000025 in the archive",
"P01 DETAIL: found 000000080000000000000026 in the archive",
"P01 DETAIL: found 000000080000000000000027 in the archive",
"P01 DETAIL: found 000000080000000000000028 in the archive",
"P01 DETAIL: found 000000080000000000000029 in the archive",
"P01 DETAIL: unable to find 00000008000000000000002A in the archive",
"P01 DETAIL: unable to find 00000008000000000000002B in the archive",
" [filtered 4 lines of output]",
"P00 INFO: archive-get-async command begin 2.18: [00000008000000000000002A, 00000008000000000000002B, 00000008000000000000002C, 00000008000000000000002D, 00000008000000000000002E, 00000008000000000000002F, 000000080000000000000030, 000000080000000000000031] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.5/data --repo1-host=repository --spool-path=/var/spool/pgbackrest --stanza=demo",
"P00 INFO: get 8 WAL file(s) from archive: 00000008000000000000002A...000000080000000000000031",
"P01 DETAIL: found 00000008000000000000002A in the archive",
"P01 DETAIL: unable to find 00000008000000000000002B in the archive",
"P01 DETAIL: unable to find 00000008000000000000002C in the archive",
" [filtered 5 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() with label \"pgBackRest backup started at 2019-10-01 15:18:44\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 00000008000000000000002C, lsn = 0/2C000028",
"P00 INFO: wait for replay on the standby to reach 0/2C000028",
"P00 INFO: replay on the standby reached 0/2C0000D0",
"P01 INFO: backup file pg-primary:/var/lib/pgsql/9.5/data/global/pg_control (8KB, 0%) checksum 249bc1e064d9b703ca81e6690656917d9820abed",
"P01 INFO: backup file pg-primary:/var/lib/pgsql/9.5/data/pg_log/postgresql.log (7.7KB, 0%) checksum 435e75c0c6f5aff3bc5cd599903788cb2106e054",
"P03 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/1249 (360KB, 17%) checksum a3c60a4101e5bf5e94e2587bde89cdf327d37050",
"P01 INFO: backup file pg-primary:/var/lib/pgsql/9.5/data/pg_hba.conf (4.1KB, 17%) checksum 1c0bca2f7f44d354aaaefb2c21fd1290b7379690",
"P02 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/2608 (432KB, 37%) checksum c40d1680963f1236d1cf4c86a8812ea2b447d272",
"P01 INFO: backup file pg-primary:/var/lib/pgsql/9.5/data/backup_label (238B, 37%) checksum 61c3215caf3ab96db583083aaefbfaf962c5ac13",
"P02 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/2658 (112KB, 42%) checksum 9d78b3a57afbc4be6fa8d5c69c75c9f13b0fe3bd",
"P03 INFO: backup file pg-standby:/var/lib/pgsql/9.5/data/base/12378/2673 (320KB, 57%) checksum f4b0a61891f7ef84984be9e0c6ef44d2a63fe30f",
" [filtered 34 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.4 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.18: --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 4905) 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" : "s3",
"image" : "minio/minio:RELEASE.2019-06-04T01-15-58Z",
"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 --compat",
"update-hosts" : false
},
"type" : "host",
"value" : {
"ip" : "172.17.0.2"
}
},
{
"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.3"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo mkdir -p /build/pgbackrest-release-2.18"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo cp -r /pgbackrest/libc /build/pgbackrest-release-2.18"
],
"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.18"
],
"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.18"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo yum install build-essential gcc make openssl-devel libxml2-devel \\",
" postgresql-devel perl-ExtUtils-Embed"
],
"cmd-extra" : "-y 2>&1",
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"perl -V | grep USE_64_BIT_INT"
],
"host" : "build",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"cd /build/pgbackrest-release-2.18/src && ./configure"
],
"host" : "build",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"make -s -C /build/pgbackrest-release-2.18/src"
],
"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.4"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest-release-2.18/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 yum install perl perl-Time-HiRes perl-Digest-SHA perl-JSON-PP"
],
"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 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.18 - 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.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" : {
"file" : "/var/lib/pgsql/9.6/data/postgresql.conf",
"host" : "pg-primary",
"option" : {
"listen_addresses" : {
"value" : "'*'"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.6/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.6/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.6/data"
}
},
"global" : {
"log-level-stderr" : {
"value" : "off"
},
"log-timestamp" : {
"value" : "n"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/9.6/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.18 - '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.6/data",
"",
"[global]",
"repo1-path=/var/lib/pgbackrest"
]
}
},
{
"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"
},
"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-9.6.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/9.6/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.6/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.6/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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --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.6-1/0000000100000000/000000010000000000000001-ceb47f443685ca9fceb6c8e2f85857b2e11240a9.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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --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() with label \"pgBackRest backup started at 2019-10-01 15:02:56\": backup begins after the next regular checkpoint completes",
"P00 INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028",
" [filtered 864 lines of output]",
"P01 INFO: backup file /var/lib/pgsql/9.6/data/base/1/12312 (0B, 100%)",
"P01 INFO: backup file /var/lib/pgsql/9.6/data/base/1/12307 (0B, 100%)",
"P00 INFO: full backup size = 20.9MB",
"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 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" : [
"20191001-150256F"
]
}
},
{
"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 3 lines of output]",
"P00 INFO: backup start archive = 000000010000000000000003, lsn = 0/3000028",
"P01 INFO: backup file /var/lib/pgsql/9.6/data/global/pg_control (8KB, 100%) checksum 5e8f67260faeedc733597b09999734cf3ad93ef8",
"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 (9.6-1): 000000010000000000000002/000000010000000000000003",
"",
" full backup: 20191001-150256F",
" timestamp start/stop: 2019-10-01 15:02:56 / 2019-10-01 15:03:09",
" wal start/stop: 000000010000000000000002 / 000000010000000000000002",
" database size: 20.9MB, backup size: 20.9MB",
" repository size: 2.5MB, repository backup size: 2.5MB",
"",
" diff backup: 20191001-150256F_20191001-150310D",
" timestamp start/stop: 2019-10-01 15:03:10 / 2019-10-01 15:03:14",
" wal start/stop: 000000010000000000000003 / 000000010000000000000003",
" database size: 20.9MB, backup size: 8.2KB",
" repository size: 2.5MB, repository backup size: 421B",
" backup reference list: 20191001-150256F"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-9.6.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/9.6/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-9.6.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-9.6.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 11 lines of output]",
"Oct 01 15:03:17 pg-primary postmaster[889]: but could not open file \"/var/lib/pgsql/9.6/data/global/pg_control\": No such file or directory",
"Oct 01 15:03:17 pg-primary systemd[1]: postgresql-9.6.service: main process exited, code=exited, status=2/INVALIDARGUMENT",
"Oct 01 15:03:17 pg-primary systemd[1]: Failed to start PostgreSQL 9.6 database server.",
"Oct 01 15:03:17 pg-primary systemd[1]: Unit postgresql-9.6.service entered failed state.",
"Oct 01 15:03:17 pg-primary systemd[1]: postgresql-9.6.service failed."
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres find /var/lib/pgsql/9.6/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-9.6.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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --type=incr",
"P00 INFO: last backup label = 20191001-150256F_20191001-150310D, version = 2.18",
"P00 INFO: execute non-exclusive pg_start_backup() with label \"pgBackRest backup started at 2019-10-01 15:03:32\": 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 last backup, enabling delta checksum",
" [filtered 9 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.6/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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --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 = 20191001-150256F_20191001-150332I, version = 2.18",
"P00 INFO: execute non-exclusive pg_start_backup() with label \"pgBackRest backup started at 2019-10-01 15:03:38\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000007, lsn = 0/7000028",
"P01 INFO: backup file /var/lib/pgsql/9.6/data/global/pg_control (8KB, 100%) checksum c388ea032a89e9cfd75740ee398050e852daf2ee",
" [filtered 7 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --output=json info"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"[",
" {",
" \"archive\" : [",
" {",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"id\" : \"9.6-1\",",
" \"max\" : \"000000020000000000000007\",",
" \"min\" : \"000000010000000000000002\"",
" }",
" ],",
" \"backup\" : [",
" {",
" \"archive\" : {",
" \"start\" : \"000000010000000000000002\",",
" \"stop\" : \"000000010000000000000002\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 21928404,",
" \"repository\" : {",
" \"delta\" : 2581605,",
" \"size\" : 2581605",
" },",
" \"size\" : 21928404",
" },",
" \"label\" : \"20191001-150256F\",",
" \"prior\" : null,",
" \"reference\" : null,",
" \"timestamp\" : {",
" \"start\" : 1569942176,",
" \"stop\" : 1569942189",
" },",
" \"type\" : \"full\"",
" },",
" {",
" \"archive\" : {",
" \"start\" : \"000000010000000000000003\",",
" \"stop\" : \"000000010000000000000003\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 8421,",
" \"repository\" : {",
" \"delta\" : 421,",
" \"size\" : 2581605",
" },",
" \"size\" : 21928404",
" },",
" \"label\" : \"20191001-150256F_20191001-150310D\",",
" \"prior\" : \"20191001-150256F\",",
" \"reference\" : [",
" \"20191001-150256F\"",
" ],",
" \"timestamp\" : {",
" \"start\" : 1569942190,",
" \"stop\" : 1569942194",
" },",
" \"type\" : \"diff\"",
" },",
" {",
" \"archive\" : {",
" \"start\" : \"000000020000000000000006\",",
" \"stop\" : \"000000020000000000000006\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 9421,",
" \"repository\" : {",
" \"delta\" : 869,",
" \"size\" : 2581765",
" },",
" \"size\" : 21929036",
" },",
" \"label\" : \"20191001-150256F_20191001-150332I\",",
" \"prior\" : \"20191001-150256F_20191001-150310D\",",
" \"reference\" : [",
" \"20191001-150256F\"",
" ],",
" \"timestamp\" : {",
" \"start\" : 1569942212,",
" \"stop\" : 1569942215",
" },",
" \"type\" : \"incr\"",
" },",
" {",
" \"archive\" : {",
" \"start\" : \"000000020000000000000007\",",
" \"stop\" : \"000000020000000000000007\"",
" },",
" \"backrest\" : {",
" \"format\" : 5,",
" \"version\" : \"2.18\"",
" },",
" \"database\" : {",
" \"id\" : 1",
" },",
" \"info\" : {",
" \"delta\" : 8421,",
" \"repository\" : {",
" \"delta\" : 421,",
" \"size\" : 2581765",
" },",
" \"size\" : 21929036",
" },",
" \"label\" : \"20191001-150256F_20191001-150338I\",",
" \"prior\" : \"20191001-150256F_20191001-150332I\",",
" \"reference\" : [",
" \"20191001-150256F\",",
" \"20191001-150256F_20191001-150332I\"",
" ],",
" \"timestamp\" : {",
" \"start\" : 1569942218,",
" \"stop\" : 1569942221",
" },",
" \"type\" : \"incr\"",
" }",
" ],",
" \"cipher\" : \"aes-256-cbc\",",
" \"db\" : [",
" {",
" \"id\" : 1,",
" \"system-id\" : 6742850204448383308,",
" \"version\" : \"9.6\"",
" }",
" ],",
" \"name\" : \"demo\",",
" \"status\" : {",
" \"code\" : 0,",
" \"message\" : \"ok\"",
" }",
" }",
"]"
]
}
},
{
"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 directory from the pgBackRest into command",
" copy temp_pgbackrest_data (data)",
" from program",
" 'pgbackrest --output=json info | tr ''\\n'' '' ''' (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\" | 2019-10-01 15:03:41+00 | 000000020000000000000007",
"(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.6/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 20191001-150256F|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 874 lines of output]",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --type=full",
"P00 DETAIL: archive retention on backup 20191001-150256F, archiveId = 9.6-1, start = 000000010000000000000002",
"P00 DETAIL: no archive to remove, archiveId = 9.6-1",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest 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" : [
"20191001-150346F"
]
}
},
{
"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\\: 20191001-150256F|archive retention on backup 20191001-150346F|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 873 lines of output]",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-full=2 --stanza=demo --start-fast --type=full",
"P00 INFO: expire full backup set: 20191001-150256F, 20191001-150256F_20191001-150310D, 20191001-150256F_20191001-150332I, 20191001-150256F_20191001-150338I",
"P00 INFO: remove expired backup 20191001-150256F_20191001-150338I",
"P00 INFO: remove expired backup 20191001-150256F_20191001-150332I",
" [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/9.6/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 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" : [
"20191001-150400F_20191001-150417D"
]
}
},
{
"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: 20191001-150400F_20191001-150417D"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
" [filtered 9 lines of output]",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=1 --repo1-retention-full=2 --stanza=demo --start-fast --type=diff",
"P00 INFO: expire diff backup set: 20191001-150400F_20191001-150417D, 20191001-150400F_20191001-150421I",
"P00 INFO: remove expired backup 20191001-150400F_20191001-150421I",
"P00 INFO: remove expired backup 20191001-150400F_20191001-150417D"
]
}
},
{
"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.6/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 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" : [
"20191001-150400F_20191001-150426D"
]
}
},
{
"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 8 lines of output]",
"P00 INFO: execute non-exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000020000000000000012, lsn = 0/120000F8",
"P00 INFO: new backup label = 20191001-150400F_20191001-150432D",
"P00 INFO: backup command end: completed successfully",
"P00 INFO: expire command begin 2.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-diff=2 --repo1-retention-full=2 --stanza=demo --start-fast --type=diff"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest 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" : [
"20191001-150400F_20191001-150432D"
]
}
},
{
"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 20191001-150400F_20191001-150426D|remove archive"
]
},
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: expire command begin 2.18: --log-level-console=detail --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/var/lib/pgbackrest --repo1-retention-archive=1 --repo1-retention-archive-type=diff --repo1-retention-diff=2 --repo1-retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20191001-150346F, archiveId = 9.6-1, start = 000000020000000000000009, stop = 000000020000000000000009",
"P00 DETAIL: archive retention on backup 20191001-150400F, archiveId = 9.6-1, start = 00000002000000000000000B, stop = 00000002000000000000000B",
"P00 DETAIL: archive retention on backup 20191001-150400F_20191001-150426D, archiveId = 9.6-1, start = 00000002000000000000000F, stop = 00000002000000000000000F",
"P00 DETAIL: archive retention on backup 20191001-150400F_20191001-150432D, archiveId = 9.6-1, start = 000000020000000000000012",
"P00 DETAIL: remove archive: archiveId = 9.6-1, start = 00000002000000000000000A, stop = 00000002000000000000000A",
"P00 DETAIL: remove archive: archiveId = 9.6-1, start = 00000002000000000000000C, stop = 00000002000000000000000E",
"P00 DETAIL: remove archive: archiveId = 9.6-1, start = 000000020000000000000010, stop = 000000020000000000000011",
"P00 INFO: expire command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-9.6.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/9.6/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.6/data'",
"P00 DETAIL: remove invalid file '/var/lib/pgsql/9.6/data/backup_label.old'",
"P00 DETAIL: remove invalid file '/var/lib/pgsql/9.6/data/base/12470/pg_internal.init'",
" [filtered 914 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-9.6.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/9.6/data/base/24576"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"7.0M\t/var/lib/pgsql/9.6/data/base/24576"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest 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" : [
"20191001-150400F_20191001-150444I"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo \\",
" --set=20191001-150400F_20191001-150444I 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: 20191001-150400F, 20191001-150400F_20191001-150432D",
" database list: postgres (12470), test1 (24576), test2 (24577)"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-9.6.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-9.6.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/9.6/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.6/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",
" 12469 | template0",
" 12470 | 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 psql -Atc \"select current_timestamp\""
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"2019-10-01 15:05:16.213181+00"
]
}
},
{
"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-9.6.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=2019-10-01 15:05:16.213181+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.6/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.6/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 2019-10-01 15:05:18",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"recovery_target_time = '2019-10-01 15:05:16.213181+00'",
"recovery_target_action = 'promote'"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-9.6.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/9.6/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 2019-10-01 15:05:08 UTC",
"LOG: starting point-in-time recovery to 2019-10-01 15:05:16.213181+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"000000040000000000000017\" from archive",
"LOG: redo starts at 0/17000028",
"LOG: consistent recovery state reached at 0/170000F8",
"LOG: restored log file \"000000040000000000000018\" from archive",
"LOG: recovery stopping before commit of transaction 639, time 2019-10-01 15:05:16.653536+00",
"LOG: redo done at 0/18020E10",
"LOG: last completed transaction was at log time 2019-10-01 15:05:15.72855+00",
"LOG: selected new timeline ID: 5",
"LOG: archive recovery complete",
" [filtered 3 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 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" : [
"20191001-150400F_20191001-150507D"
]
}
},
{
"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 systemctl stop postgresql-9.6.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=2019-10-01 15:05:16.213181+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.6/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 systemctl start postgresql-9.6.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/9.6/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 2019-10-01 15:05:26 UTC",
"LOG: starting point-in-time recovery to 2019-10-01 15:05:16.213181+00",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: restored log file \"000000050000000000000019\" from archive",
"LOG: redo starts at 0/19000028",
"LOG: consistent recovery state reached at 0/190000F8",
"LOG: redo done at 0/190000F8",
"LOG: restored log file \"000000050000000000000019\" from archive",
" [filtered 7 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"20191001-150400F_20191001-150507D"
]
},
"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.6-1): 000000020000000000000009/000000050000000000000019",
"",
" full backup: 20191001-150346F",
" timestamp start/stop: 2019-10-01 15:03:46 / 2019-10-01 15:03:59",
" wal start/stop: 000000020000000000000009 / 000000020000000000000009",
" database size: 20.9MB, backup size: 20.9MB",
" repository size: 2.5MB, repository backup size: 2.5MB",
"",
" full backup: 20191001-150400F",
" timestamp start/stop: 2019-10-01 15:04:00 / 2019-10-01 15:04:15",
" wal start/stop: 00000002000000000000000B / 00000002000000000000000B",
" database size: 20.9MB, backup size: 20.9MB",
" repository size: 2.5MB, repository backup size: 2.5MB",
"",
" diff backup: 20191001-150400F_20191001-150432D",
" timestamp start/stop: 2019-10-01 15:04:32 / 2019-10-01 15:04:36",
" wal start/stop: 000000020000000000000012 / 000000020000000000000012",
" database size: 20.9MB, backup size: 97.6KB",
" repository size: 2.5MB, repository backup size: 11.8KB",
" backup reference list: 20191001-150400F",
"",
" incr backup: 20191001-150400F_20191001-150444I",
" timestamp start/stop: 2019-10-01 15:04:44 / 2019-10-01 15:04:56",
" wal start/stop: 000000030000000000000014 / 000000030000000000000014",
" database size: 34.5MB, backup size: 13.7MB",
" repository size: 4MB, repository backup size: 1.6MB",
" backup reference list: 20191001-150400F, 20191001-150400F_20191001-150432D",
"",
" diff backup: 20191001-150400F_20191001-150507D",
" timestamp start/stop: 2019-10-01 15:05:07 / 2019-10-01 15:05:15",
" wal start/stop: 000000040000000000000017 / 000000040000000000000017",
" database size: 27.7MB, backup size: 6.9MB",
" repository size: 3.3MB, repository backup size: 846.7KB",
" backup reference list: 20191001-150400F",
"",
" incr backup: 20191001-150400F_20191001-150524I",
" timestamp start/stop: 2019-10-01 15:05:24 / 2019-10-01 15:05:29",
" wal start/stop: 000000050000000000000019 / 000000050000000000000019",
" database size: 27.7MB, backup size: 2.0MB",
" repository size: 3.3MB, repository backup size: 211.1KB",
" backup reference list: 20191001-150400F, 20191001-150400F_20191001-150507D"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-9.6.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=2019-10-01 15:05:16.213181+00\" \\",
" --set=20191001-150400F_20191001-150507D --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.6/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 systemctl start postgresql-9.6.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/9.6/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 2019-10-01 15:05:08 UTC",
"LOG: starting point-in-time recovery to 2019-10-01 15:05:16.213181+00",
"LOG: restored log file \"00000004.history\" from archive",
"LOG: restored log file \"000000040000000000000017\" from archive",
"LOG: redo starts at 0/17000028",
"LOG: consistent recovery state reached at 0/170000F8",
"LOG: restored log file \"000000040000000000000018\" from archive",
"LOG: recovery stopping before commit of transaction 639, time 2019-10-01 15:05:16.653536+00",
"LOG: redo done at 0/18020E10",
"LOG: last completed transaction was at log time 2019-10-01 15:05:15.72855+00",
"LOG: restored log file \"00000005.history\" from archive",
"LOG: restored log file \"00000006.history\" from archive",
" [filtered 5 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"echo \"172.17.0.2 demo-bucket.s3.us-east-1.amazonaws.com s3.us-east-1.amazonaws.com\" | tee -a /etc/hosts"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : "root"
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mc config host add demo https://172.17.0.2 accessKey1 verySecretKey1 --insecure"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"mc mb demo/demo-bucket --insecure"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest/pgbackrest.conf",
"host" : "pg-primary",
"option" : {
"global" : {
"process-max" : {
"value" : "4"
},
"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.6/data",
"",
"[global]",
"process-max=4",
"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" : [
"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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --process-max=4 --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --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() with label \"pgBackRest backup started at 2019-10-01 15:05:46\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000070000000000000019, lsn = 0/19000028",
" [filtered 1136 lines of output]",
"P02 INFO: backup file /var/lib/pgsql/9.6/data/base/1/12312 (0B, 100%)",
"P03 INFO: backup file /var/lib/pgsql/9.6/data/base/1/12307 (0B, 100%)",
"P00 INFO: full backup size = 27.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-9.6.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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --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.18: --log-level-console=info --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-cipher-pass=<redacted> --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=<redacted> --repo1-s3-key-secret=<redacted> --repo1-s3-region=us-east-1 --repo1-type=s3 --stanza=demo",
"P00 INFO: http statistics: objects 2, sessions 2, requests 15, retries 0, closes 0",
"P00 INFO: stanza-delete command end: completed successfully"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl start postgresql-9.6.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.5"
}
},
{
"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 scp build:/build/pgbackrest-release-2.18/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 yum install perl perl-Time-HiRes perl-Digest-SHA perl-JSON-PP"
],
"cmd-extra" : "-y 2>&1",
"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.6/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.6/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.6/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.6/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-9.6.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-9.6.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 backup"
],
"host" : "repository",
"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.6/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.6-1): 000000080000000000000020/000000080000000000000021",
"",
" full backup: 20191001-150700F",
" timestamp start/stop: 2019-10-01 15:07:00 / 2019-10-01 15:07:17",
" wal start/stop: 000000080000000000000020 / 000000080000000000000020",
" database size: 27.7MB, backup size: 27.7MB",
" repository size: 3.2MB, repository backup size: 3.2MB",
"",
" full backup: 20191001-150719F",
" timestamp start/stop: 2019-10-01 15:07:19 / 2019-10-01 15:07:28",
" wal start/stop: 000000080000000000000021 / 000000080000000000000021",
" database size: 27.7MB, backup size: 27.7MB",
" 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" : "62",
"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 ERROR: [062]: raised from remote process on 'pg-primary': stop file exists for all stanzas"
]
}
},
{
"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" : "62",
"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 ERROR: [062]: raised from remote process on 'pg-primary': stop file exists for stanza demo"
]
}
},
{
"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.6"
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo scp build:/build/pgbackrest-release-2.18/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 yum install perl perl-Time-HiRes perl-Digest-SHA perl-JSON-PP"
],
"cmd-extra" : "-y 2>&1",
"host" : "pg-standby",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo 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.6/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.6/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.6/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.6/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 2019-10-01 15:08:05",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"standby_mode = 'on'"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.6/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/9.6/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 systemctl start postgresql-9.6.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/9.6/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 2019-10-01 15:07:21 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/21000130",
"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/220223D0 | 2019-10-01 15:08:14.421665+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 | 2019-10-01 15:08:15.959757+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 no primary was found"
]
},
"host" : "pg-standby",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"P00 INFO: check command begin 2.18: --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-host=repository --stanza=demo",
"P00 INFO: switch wal not performed because no primary was found",
"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.6/32 md5\" \\",
" >> /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 systemctl reload postgresql-9.6.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.4 port=5432 user=replicator"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/9.6/data",
"recovery-option=primary_conninfo=host=172.17.0.4 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.4:*: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-9.6.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/9.6/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 2019-10-01 15:08:24",
"primary_conninfo = 'host=172.17.0.4 port=5432 user=replicator'",
"restore_command = 'pgbackrest --stanza=demo archive-get %f \"%p\"'",
"standby_mode = 'on'"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.6/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/9.6/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 systemctl start postgresql-9.6.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/9.6/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 \"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 | now ",
"----------------+-------------------------------",
" Important Data | 2019-10-01 15:08:32.158457+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 | 2019-10-01 15:08:32.637339+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.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" : {
"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.6/data",
"recovery-option=primary_conninfo=host=172.17.0.4 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-9.6.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_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.18: --log-level-console=info --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --repo1-host=repository --stanza=demo",
"P00 INFO: WAL segment 000000080000000000000028 successfully archived to 'archive/demo/9.6-1/0000000800000000/000000080000000000000028-a3c280237354bb49a25b408233c229c502d1d0e3.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.18: [/var/lib/pgsql/9.6/data/pg_xlog] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --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.18: [/var/lib/pgsql/9.6/data/pg_xlog] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --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",
"P01 DETAIL: pushed WAL file '000000080000000000000025' to the archive",
"P01 DETAIL: pushed WAL file '000000080000000000000026' to the archive",
"P01 DETAIL: pushed WAL file '000000080000000000000027' to the archive",
"P00 INFO: archive-push-async command end: completed successfully",
"",
"-------------------PROCESS START-------------------",
"P00 INFO: archive-push-async command begin 2.18: [/var/lib/pgsql/9.6/data/pg_xlog] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --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.18: [000000080000000000000021, 000000080000000000000022, 000000080000000000000023, 000000080000000000000024, 000000080000000000000025, 000000080000000000000026, 000000080000000000000027, 000000080000000000000028] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --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: found 000000080000000000000022 in the archive",
"P01 DETAIL: unable to find 000000080000000000000023 in the archive",
"P01 DETAIL: unable to find 000000080000000000000024 in the archive",
" [filtered 20 lines of output]",
"P00 INFO: archive-get-async command begin 2.18: [000000080000000000000023, 000000080000000000000024, 000000080000000000000025, 000000080000000000000026, 000000080000000000000027, 000000080000000000000028, 000000080000000000000029, 00000008000000000000002A] --log-level-console=off --log-level-file=detail --log-level-stderr=off --no-log-timestamp --pg1-path=/var/lib/pgsql/9.6/data --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",
"P01 DETAIL: found 000000080000000000000024 in the archive",
"P01 DETAIL: found 000000080000000000000025 in the archive",
"P01 DETAIL: found 000000080000000000000026 in the archive",
"P01 DETAIL: found 000000080000000000000027 in the archive",
"P01 DETAIL: found 000000080000000000000028 in the archive",
"P01 DETAIL: unable to find 000000080000000000000029 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.6/data"
}
},
"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"
]
}
},
{
"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() with label \"pgBackRest backup started at 2019-10-01 15:08:53\": 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/2A0000D0, checkpoint 0/2A000060",
"P01 INFO: backup file pg-primary:/var/lib/pgsql/9.6/data/global/pg_control (8KB, 0%) checksum 6b9e0dde3a3ffc712adabe871584d18237ba8572",
"P01 INFO: backup file pg-primary:/var/lib/pgsql/9.6/data/pg_log/postgresql.log (5.6KB, 0%) checksum 55fb3383a0f8d1796e744aa1c09f93b57b03e22e",
"P03 INFO: backup file pg-standby:/var/lib/pgsql/9.6/data/base/12470/1249 (360KB, 17%) checksum b931fa805060036355e7344e341954a72ed17618",
"P01 INFO: backup file pg-primary:/var/lib/pgsql/9.6/data/pg_hba.conf (4.1KB, 17%) checksum 1c0bca2f7f44d354aaaefb2c21fd1290b7379690",
"P02 INFO: backup file pg-standby:/var/lib/pgsql/9.6/data/base/12470/2608 (440KB, 37%) checksum f7c58f2ac09a3758e973800302d86170a3fcaacb",
"P03 INFO: backup file pg-standby:/var/lib/pgsql/9.6/data/base/12470/2673 (304KB, 51%) checksum d8fe221ad23500cbed95ded6ab21149d272330a3",
" [filtered 37 lines of output]"
]
}
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-9.6.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : false,
"run-as-user" : null
},
"type" : "exe"
},
{
"key" : {
"bash-wrap" : true,
"cmd" : [
"sudo systemctl stop postgresql-9.6.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-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" : {
"bash-wrap" : true,
"cmd" : [
"sudo -u postgres sh -c 'cd /var/lib/pgsql && \\",
" /usr/pgsql-10/bin/pg_upgrade \\",
" --old-bindir=/usr/pgsql-9.6/bin \\",
" --new-bindir=/usr/pgsql-10/bin \\",
" --old-datadir=/var/lib/pgsql/9.6/data \\",
" --new-datadir=/var/lib/pgsql/10/data \\",
" --old-options=\" -c config_file=/var/lib/pgsql/9.6/data/postgresql.conf\" \\",
" --new-options=\" -c config_file=/var/lib/pgsql/10/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 70 lines of output]",
"Checking for hash indexes ok",
"",
"Upgrade Complete",
"----------------",
"Optimizer statistics are not transferred by pg_upgrade so,",
" [filtered 4 lines of output]"
]
}
},
{
"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"
},
"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/10/data"
}
}
}
},
"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" : {
"demo" : {
"pg1-path" : {
"value" : "/var/lib/pgsql/10/data"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"pg1-path=/var/lib/pgsql/10/data",
"recovery-option=primary_conninfo=host=172.17.0.4 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/10/data"
},
"pg2-path" : {
"value" : "/var/lib/pgsql/10/data"
}
},
"global" : {
"backup-standby" : {
"value" : "n"
}
}
}
},
"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=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.6/data/pg_hba.conf \\",
" /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 -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.18: --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/10/data --pg2-path=/var/lib/pgsql/10/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-10.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-10.service"
],
"host" : "pg-primary",
"load-env" : true,
"output" : true,
"run-as-user" : null
},
"type" : "exe",
"value" : {
"output" : [
"● postgresql-10.service - PostgreSQL 10 database server",
" Loaded: loaded (/usr/lib/systemd/system/postgresql-10.service; disabled; vendor preset: disabled)",
" Active: active (running) since Tue 2019-10-01 15:09:13 UTC; 477ms ago",
" Docs: https://www.postgresql.org/docs/10/static/",
" Process: 3994 ExecStartPre=/usr/pgsql-10/bin/postgresql-10-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)",
" Main PID: 3999 (postmaster)",
" CGroup: /docker/49ddd840c5d508c04d2ac793d9b50d00d6f3aee6f49af3421cd0c36a94057620/system.slice/postgresql-10.service",
" ├─3999 /usr/pgsql-10/bin/postmaster -D /var/lib/pgsql/10/data/",
" ├─4000 postgres: logger process ",
" ├─4002 postgres: checkpointer process ",
" ├─4003 postgres: writer process ",
" ├─4004 postgres: wal writer process ",
" ├─4005 postgres: autovacuum launcher process ",
" ├─4006 postgres: archiver process ",
" ├─4007 postgres: stats collector process ",
" └─4008 postgres: bgworker: 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/9.6/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.6/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-10/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/10/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-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 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/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"
]
}
}
]
}
}
}