2016-06-02 11:10:24 -04:00
{
"co6" : {
"all" : {
"user-guide" : [
{
"key" : {
2016-07-02 10:22:52 -04:00
"image" : "backrest/co6-db-9.4-doc-pre",
2016-06-02 11:10:24 -04:00
"mount" : "/backrest:/backrest",
"name" : "db-master",
"os" : "co6",
"user" : "vagrant"
},
"type" : "host",
"value" : {
2016-09-07 08:29:21 -04:00
"ip" : "172.17.0.2"
2016-06-02 11:10:24 -04:00
}
},
{
"key" : {
"cmd" : [
2016-07-02 10:22:52 -04:00
"sudo yum install perl perl-Time-HiRes perl-parent perl-JSON \\",
2016-06-02 11:10:24 -04:00
" perl-Digest-SHA perl-DBD-Pg"
],
2016-07-02 10:22:52 -04:00
"cmd-extra" : "-y",
2016-06-02 11:10:24 -04:00
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
2016-07-02 10:22:52 -04:00
"sudo rm -f /usr/bin/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -f /usr/bin/pg_backrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/lib/perl5/BackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/share/perl5/BackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/lib/perl5/pgBackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/share/perl5/pgBackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
2016-09-14 17:36:43 -05:00
"sudo cp -r ~/pgbackrest-release-1.08/lib/pgBackRest \\",
2016-06-02 11:10:24 -04:00
" /usr/share/perl5"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo find /usr/share/perl5/pgBackRest -type f -exec chmod 644 {} +"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo find /usr/share/perl5/pgBackRest -type d -exec chmod 755 {} +"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
2016-09-14 17:36:43 -05:00
"sudo cp ~/pgbackrest-release-1.08/bin/pgbackrest /usr/bin/pgbackrest"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo mkdir -m 770 /var/log/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/log/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"pgBackRest 1.08 - General help",
2016-06-02 11:10:24 -04:00
"",
"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.",
2016-07-02 10:22:52 -04:00
" check Check the configuration.",
2016-06-02 11:10:24 -04:00
" expire Expire backups that exceed retention.",
" help Get help.",
" info Retrieve information about backups.",
" restore Restore a database cluster.",
" start Allow pgBackRest processes to run.",
" stop Stop pgBackRest processes from running.",
" version Get version.",
"",
"Use 'pgbackrest help [command]' for more information."
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 initdb"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"Initializing database: [ OK ]\r"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-master",
"option" : {
"listen_addresses" : {
"value" : "'*'"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-master",
"option" : {
"log_line_prefix" : {
"value" : "''"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'",
"log_line_prefix = ''"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-master",
"option" : {
"log_filename" : {
"value" : "'postgresql.log'"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'",
"log_filename = 'postgresql.log'",
"log_line_prefix = ''"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/pgsql/9.4/data"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data"
]
}
},
{
"key" : {
"cmd" : [
"sudo mkdir /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-master",
"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" : {
"cmd" : [
"sudo service postgresql-9.4 restart"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
2016-07-02 10:22:52 -04:00
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
" successfully stored in the archive at "
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 INFO: check start: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: switch xlog 000000010000000000000001",
"P00 ERROR: [148]: /var/lib/pgbackrest/backup/demo does not exist",
"P00 INFO: WAL segment 000000010000000000000001 successfully stored in the archive at '/var/lib/pgbackrest/archive/demo/9.4-1/0000000100000000/000000010000000000000001-d16fcfc06564d78809655451bc6be26e53f0b20f.gz'",
"P00 INFO: check stop"
2016-07-02 10:22:52 -04:00
]
}
},
2016-06-02 11:10:24 -04:00
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 WARN: option retention-full is not set, the repository may run out of space",
2016-09-07 08:29:21 -04:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
2016-09-14 17:36:43 -05:00
"P00 INFO: backup start: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --repo-path=/var/lib/pgbackrest --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 2016-09-14 22:13:59\": backup begins after the next regular checkpoint completes",
"P00 INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028",
" [filtered 763 lines of output]",
"P01 INFO: backup file /var/lib/pgsql/9.4/data/base/1/11886 (0B, 99%)",
"P00 INFO: backup file /var/lib/pgsql/9.4/data/global/pg_control (8KB, 100%) checksum b70a10463c57c6ecacf2fa0bb8dc80ceac6a5da8",
"P00 INFO: full backup size = 19.3MB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000010000000000000002, lsn = 0/20000F0",
2016-06-02 11:10:24 -04:00
" [filtered 4 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221409F"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 9 lines of output]",
"P01 INFO: backup file /var/lib/pgsql/9.4/data/backup_label (236B, 11%) checksum 654a358ed7b94162c4955e81856c7bdd89abc162",
"P00 INFO: backup file /var/lib/pgsql/9.4/data/global/pg_control (8KB, 100%) checksum fc3ff5901abc2010b432d6e8500e3b5043d9a1ca",
"P00 INFO: diff backup size = 8.9KB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000010000000000000004, lsn = 0/40000F0",
2016-06-02 11:10:24 -04:00
" [filtered 4 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"(full|incr|diff) backup"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
"",
2016-09-14 17:36:43 -05:00
" full backup: 20160914-221409F",
" start / stop timestamp: 2016-09-14 22:13:59 / 2016-09-14 22:14:09",
2016-06-02 11:10:24 -04:00
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
2016-09-14 17:36:43 -05:00
" diff backup: 20160914-221409F_20160914-221413D",
" start / stop timestamp: 2016-09-14 22:14:09 / 2016-09-14 22:14:13",
" database size: 19.3MB, backup size: 8.9KB",
" repository size: 2.2MB, repository backup size: 670B",
" backup reference list: 20160914-221409F"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres rm /var/lib/pgsql/9.4/data/global/pg_control"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -f /var/lib/pgsql/9.4/pgstartup.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"err-expect" : "1",
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo cat /var/lib/pgsql/9.4/pgstartup.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"could not find the database system"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"postmaster: could not find the database system",
"Expected to find it in the directory \"/var/lib/pgsql/9.4/data\",",
"but could not open file \"/var/lib/pgsql/9.4/data/global/pg_control\": No such file or directory"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres find /var/lib/pgsql/9.4/data -mindepth 1 -delete"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 2 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: backup start: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo --type=incr",
"P00 INFO: last backup label = 20160914-221409F_20160914-221413D, version = 1.08",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-09-14 22:14:29\": backup begins after the next regular checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000006, lsn = 0/6000028",
"P00 INFO: local process 1 start for host db-1",
" [filtered 16 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 2 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: backup start: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo --start-fast --type=incr",
"P00 INFO: last backup label = 20160914-221409F_20160914-221432I, version = 1.08",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-09-14 22:14:34\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000007, lsn = 0/7000028",
"P00 INFO: local process 1 start for host db-1",
" [filtered 11 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo chmod 550 /var/lib/pgbackrest/temp"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"err-expect" : "122",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"ERROR:"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 4 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-09-14 22:14:38\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000008, lsn = 0/8000028",
"P00 ERROR: [122]: unable to create /var/lib/pgbackrest/temp/demo.tmp: Permission denied",
"P00 INFO: backup stop"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest/temp"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"err-expect" : "132",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"ERROR:"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 3 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: last backup label = 20160914-221409F_20160914-221437I, version = 1.08",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-09-14 22:14:40\": backup begins after the requested immediate checkpoint completes",
"P00 ERROR: [132]: ERROR: a backup is already in progress",
2016-06-02 11:10:24 -04:00
" HINT: Run pg_stop_backup() and try again.:",
2016-09-14 17:36:43 -05:00
" select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS.US TZ'), pg_xlogfile_name(lsn), lsn::text from pg_start_backup('pgBackRest backup started at 2016-09-14 22:14:40', true) as lsn"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"stop-auto" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 2 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: backup start: --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo --start-fast --stop-auto --type=incr",
"P00 INFO: last backup label = 20160914-221409F_20160914-221437I, version = 1.08",
"P00 WARN: the cluster is already in backup mode but no 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 2016-09-14 22:14:42\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000009, lsn = 0/9000028",
"P00 INFO: local process 1 start for host db-1",
" [filtered 11 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-full" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
2016-09-14 17:36:43 -05:00
"archive retention on backup 20160914-221409F|remove archive"
2016-06-02 11:10:24 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 772 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start: --log-level-console=detail --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20160914-221409F, start = 000000010000000000000002",
"P00 DETAIL: remove archive: start = 000000010000000000000001, stop = 000000010000000000000001",
"P00 INFO: expire stop"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221457F"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
2016-09-14 17:36:43 -05:00
"expire full backup set\\: 20160914-221409F|archive retention on backup 20160914-221457F|remove archive"
2016-06-02 11:10:24 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 772 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start: --log-level-console=info --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-full=2 --stanza=demo",
"P00 INFO: expire full backup set: 20160914-221409F, 20160914-221409F_20160914-221413D, 20160914-221409F_20160914-221432I, 20160914-221409F_20160914-221437I, 20160914-221409F_20160914-221446I",
"P00 INFO: remove expired backup 20160914-221409F_20160914-221446I",
"P00 INFO: remove expired backup 20160914-221409F_20160914-221437I",
2016-06-02 11:10:24 -04:00
" [filtered 3 lines of output]"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-diff" : {
"value" : "1"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-diff=1",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221507F_20160914-221512D"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
2016-09-14 17:36:43 -05:00
"expire diff backup set: 20160914-221507F_20160914-221512D"
2016-06-02 11:10:24 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 13 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start: --log-level-console=info --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-diff=1 --retention-full=2 --stanza=demo",
"P00 INFO: expire diff backup set: 20160914-221507F_20160914-221512D, 20160914-221507F_20160914-221518I",
"P00 INFO: remove expired backup 20160914-221507F_20160914-221518I",
"P00 INFO: remove expired backup 20160914-221507F_20160914-221512D"
2016-09-07 08:29:21 -04:00
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-diff" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-diff=2",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221507F_20160914-221523D"
2016-09-07 08:29:21 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 10 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/14000128",
"P00 INFO: new backup label = 20160914-221507F_20160914-221528D",
"P00 INFO: backup stop",
"P00 INFO: expire start: --log-level-console=info --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-diff=2 --retention-full=2 --stanza=demo"
2016-09-07 08:29:21 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221507F_20160914-221528D"
2016-09-07 08:29:21 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=detail \\",
" --retention-archive-type=diff --retention-archive=1 expire"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
2016-09-14 17:36:43 -05:00
"archive retention on backup 20160914-221507F_20160914-221523D|remove archive"
2016-09-07 08:29:21 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 INFO: expire start: --log-level-console=detail --repo-path=/var/lib/pgbackrest --retention-archive=1 --retention-archive-type=diff --retention-diff=2 --retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20160914-221457F, start = 00000002000000000000000A, stop = 00000002000000000000000A",
"P00 DETAIL: archive retention on backup 20160914-221507F, start = 00000002000000000000000C, stop = 00000002000000000000000C",
"P00 DETAIL: archive retention on backup 20160914-221507F_20160914-221523D, start = 000000020000000000000010, stop = 000000020000000000000010",
"P00 DETAIL: archive retention on backup 20160914-221507F_20160914-221528D, start = 000000020000000000000014",
"P00 DETAIL: remove archive: start = 00000002000000000000000B, stop = 00000002000000000000000B",
"P00 DETAIL: remove archive: start = 00000002000000000000000D, stop = 00000002000000000000000F",
"P00 DETAIL: remove archive: start = 000000020000000000000011, stop = 000000020000000000000013",
"P00 INFO: expire stop"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"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|check\\/clean db path|restore global\\/pg_control"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 786 lines of output]",
"P01 DETAIL: restore file /var/lib/pgsql/9.4/data/base/1/11886 - exists and is zero size (0B, 99%)",
"P00 INFO: wrote /var/lib/pgsql/9.4/data/recovery.conf",
"P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started)",
"P00 INFO: restore file /var/lib/pgsql/9.4/data/global/pg_control (8KB, 100%) checksum 76995912e5fd1616f45b65ecb7e4edcf40b82a49",
"P00 INFO: restore stop"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create database test1;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create database test2;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create table test1_table (id int); \\",
" insert into test1_table (id) values (1);\" test1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"INSERT 0 1"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create table test2_table (id int); \\",
" insert into test2_table (id) values (2);\" test2"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"INSERT 0 1"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres du -sh /var/lib/pgsql/9.4/data/base/16384"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"6.4M\t/var/lib/pgsql/9.4/data/base/16384"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --db-include=test2 restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from test2_table;\" test2"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" id ",
"----",
" 2",
"(1 row)"
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"psql: FATAL: relation mapping file \"base/16384/pg_filenode.map\" contains invalid data"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres du -sh /var/lib/pgsql/9.4/data/base/16384"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"152K\t/var/lib/pgsql/9.4/data/base/16384"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"drop database test1;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"DROP DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select oid, datname from pg_database order by oid;\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"test2"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" oid | datname ",
"-------+-----------",
" 1 | template1",
" 12135 | template0",
" 12140 | postgres",
" 16385 | test2",
"(4 rows)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -Atc \"select current_timestamp\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"2016-09-14 22:16:02.80936+00"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: ...le important_table; commit; select * from important_...",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
2016-09-14 17:36:43 -05:00
" --type=time \"--target=2016-09-14 22:16:02.80936+00\" restore"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/recovery.conf"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery_target_time"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'",
2016-09-14 17:36:43 -05:00
"recovery_target_time = '2016-09-14 22:16:02.80936+00'"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery stopping before|last completed transaction|starting point-in-time recovery"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"LOG: database system was interrupted; last known up at 2016-09-14 22:15:57 UTC",
2016-06-02 11:10:24 -04:00
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
2016-09-14 17:36:43 -05:00
"LOG: starting point-in-time recovery to 2016-09-14 22:16:02.80936+00",
2016-06-02 11:10:24 -04:00
"LOG: restored log file \"00000004.history\" from archive",
2016-09-07 08:29:21 -04:00
"LOG: restored log file \"000000040000000000000019\" from archive",
"LOG: redo starts at 0/19000028",
"LOG: consistent recovery state reached at 0/190000F0",
"LOG: restored log file \"00000004000000000000001A\" from archive",
2016-09-14 17:36:43 -05:00
"LOG: recovery stopping before commit of transaction 686, time 2016-09-14 22:16:02.995886+00",
2016-09-07 08:29:21 -04:00
"LOG: redo done at 0/1A0157F0",
2016-09-14 17:36:43 -05:00
"LOG: last completed transaction was at log time 2016-09-14 22:16:02.579762+00",
2016-06-02 11:10:24 -04:00
"LOG: selected new timeline ID: 5",
"LOG: restored log file \"00000004.history\" from archive",
2016-09-07 08:29:21 -04:00
" [filtered 4 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: ...le important_table; commit; select * from important_...",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221507F_20160914-221601D"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
2016-09-14 17:36:43 -05:00
" --type=time \"--target=2016-09-14 22:16:02.80936+00\" restore"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: select * from important_table",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
2016-07-02 10:22:52 -04:00
"starting point-in-time recovery|consistent recovery state reached"
2016-06-02 11:10:24 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"LOG: database system was interrupted; last known up at 2016-09-14 22:16:13 UTC",
2016-06-02 11:10:24 -04:00
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
2016-09-14 17:36:43 -05:00
"LOG: starting point-in-time recovery to 2016-09-14 22:16:02.80936+00",
2016-06-02 11:10:24 -04:00
"LOG: restored log file \"00000005.history\" from archive",
2016-09-07 08:29:21 -04:00
"LOG: restored log file \"00000005000000000000001B\" from archive",
"LOG: redo starts at 0/1B000028",
"LOG: consistent recovery state reached at 0/1B0000F0",
"LOG: redo done at 0/1B0000F0",
"LOG: restored log file \"00000005000000000000001B\" from archive",
" [filtered 8 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
2016-09-14 17:36:43 -05:00
"20160914-221507F_20160914-221601D"
2016-06-02 11:10:24 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
"",
2016-09-14 17:36:43 -05:00
" full backup: 20160914-221457F",
" start / stop timestamp: 2016-09-14 22:14:48 / 2016-09-14 22:14:57",
2016-06-02 11:10:24 -04:00
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
2016-09-14 17:36:43 -05:00
" full backup: 20160914-221507F",
" start / stop timestamp: 2016-09-14 22:14:58 / 2016-09-14 22:15:07",
2016-06-02 11:10:24 -04:00
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
2016-09-14 17:36:43 -05:00
" diff backup: 20160914-221507F_20160914-221528D",
" start / stop timestamp: 2016-09-14 22:15:25 / 2016-09-14 22:15:28",
" database size: 19.3MB, backup size: 11.7KB",
2016-09-07 08:29:21 -04:00
" repository size: 2.2MB, repository backup size: 1.1KB",
2016-09-14 17:36:43 -05:00
" backup reference list: 20160914-221507F",
2016-09-07 08:29:21 -04:00
"",
2016-09-14 17:36:43 -05:00
" incr backup: 20160914-221507F_20160914-221545I",
" start / stop timestamp: 2016-09-14 22:15:38 / 2016-09-14 22:15:45",
2016-09-07 08:29:21 -04:00
" database size: 31.9MB, backup size: 12.7MB",
" repository size: 3.7MB, repository backup size: 1.5MB",
2016-09-14 17:36:43 -05:00
" backup reference list: 20160914-221507F",
2016-09-07 08:29:21 -04:00
"",
2016-09-14 17:36:43 -05:00
" diff backup: 20160914-221507F_20160914-221601D",
" start / stop timestamp: 2016-09-14 22:15:56 / 2016-09-14 22:16:01",
2016-06-02 11:10:24 -04:00
" database size: 25.7MB, backup size: 6.5MB",
2016-09-14 17:36:43 -05:00
" repository size: 3MB, repository backup size: 790.1KB",
" backup reference list: 20160914-221507F",
2016-06-02 11:10:24 -04:00
"",
2016-09-14 17:36:43 -05:00
" incr backup: 20160914-221507F_20160914-221617I",
" start / stop timestamp: 2016-09-14 22:16:12 / 2016-09-14 22:16:17",
2016-06-02 11:10:24 -04:00
" database size: 25.6MB, backup size: 1.9MB",
2016-09-07 08:29:21 -04:00
" repository size: 3MB, repository backup size: 214.8KB",
2016-09-14 17:36:43 -05:00
" backup reference list: 20160914-221507F, 20160914-221507F_20160914-221601D"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
2016-09-14 17:36:43 -05:00
" --type=time \"--target=2016-09-14 22:16:02.80936+00\" \\",
" --set=20160914-221507F_20160914-221601D restore"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery stopping before|last completed transaction|starting point-in-time recovery"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"LOG: database system was interrupted; last known up at 2016-09-14 22:15:57 UTC",
2016-06-02 11:10:24 -04:00
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
2016-09-14 17:36:43 -05:00
"LOG: starting point-in-time recovery to 2016-09-14 22:16:02.80936+00",
2016-06-02 11:10:24 -04:00
"LOG: restored log file \"00000004.history\" from archive",
2016-09-07 08:29:21 -04:00
"LOG: restored log file \"000000040000000000000019\" from archive",
"LOG: redo starts at 0/19000028",
"LOG: consistent recovery state reached at 0/190000F0",
"LOG: restored log file \"00000004000000000000001A\" from archive",
2016-09-14 17:36:43 -05:00
"LOG: recovery stopping before commit of transaction 686, time 2016-09-14 22:16:02.995886+00",
2016-09-07 08:29:21 -04:00
"LOG: redo done at 0/1A0157F0",
2016-09-14 17:36:43 -05:00
"LOG: last completed transaction was at log time 2016-09-14 22:16:02.579762+00",
2016-06-02 11:10:24 -04:00
"LOG: restored log file \"00000005.history\" from archive",
2016-09-14 17:36:43 -05:00
"LOG: restored log file \"00000006.history\" from archive",
" [filtered 5 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
2016-07-02 10:22:52 -04:00
"image" : "backrest/co6-backup-doc-pre",
2016-06-02 11:10:24 -04:00
"mount" : "/backrest:/backrest",
"name" : "backup",
"os" : "co6",
"user" : "vagrant"
},
"type" : "host",
"value" : {
2016-09-07 08:29:21 -04:00
"ip" : "172.17.0.3"
2016-06-02 11:10:24 -04:00
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"global" : {
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[global]",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"demo" : {
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
"db1-host" : {
2016-06-02 11:10:24 -04:00
"value" : "db-master"
},
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
"db1-path" : {
2016-06-02 11:10:24 -04:00
"value" : "/var/lib/pgsql/9.4/data"
2016-07-30 09:42:35 -04:00
},
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
"db1-user" : {
2016-07-30 09:42:35 -04:00
"value" : "postgres"
2016-06-02 11:10:24 -04:00
}
},
"global" : {
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
"db1-host=db-master",
"db1-path=/var/lib/pgsql/9.4/data",
"db1-user=postgres",
2016-06-02 11:10:24 -04:00
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/pgsql/9.4/data"
}
},
"global" : {
"backup-host" : {
"value" : "backup"
},
2016-07-30 09:42:35 -04:00
"backup-user" : {
"value" : "backrest"
},
2016-06-02 11:10:24 -04:00
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
},
"reset" : true
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"backup-host=backup",
2016-07-30 09:42:35 -04:00
"backup-user=backrest",
2016-06-02 11:10:24 -04:00
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo find /var/lib/pgbackrest -delete"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
2016-07-02 10:22:52 -04:00
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo check"
],
"host" : "db-master",
"output" : true
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo check"
],
"host" : "backup",
"output" : true
},
2016-07-30 09:42:35 -04:00
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 ERROR: [148]: /var/lib/pgbackrest/backup/demo does not exist"
2016-07-30 09:42:35 -04:00
]
}
2016-07-02 10:22:52 -04:00
},
2016-06-02 11:10:24 -04:00
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo backup"
],
"host" : "backup",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 WARN: option retention-full is not set, the repository may run out of space",
2016-09-07 08:29:21 -04:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
2016-09-14 17:36:43 -05:00
"P00 WARN: no prior backup exists, incr backup has been changed to full"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo backup"
],
"host" : "backup",
"output" : false
},
"type" : "exe"
},
2016-07-02 10:22:52 -04:00
{
"key" : {
"cmd" : [
"sudo mkdir -m 750 /var/spool/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/spool/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"archive-async" : {
"value" : "y"
},
"spool-path" : {
"value" : "/var/spool/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"",
"[global]",
"archive-async=y",
"backup-host=backup",
2016-07-30 09:42:35 -04:00
"backup-user=backrest",
2016-07-02 10:22:52 -04:00
"repo-path=/var/lib/pgbackrest",
"spool-path=/var/spool/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"WAL segment"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 INFO: check start: --backup-host=backup --backup-user=backrest --db-path=/var/lib/pgsql/9.4/data --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: switch xlog 00000008000000000000001F",
"P00 INFO: WAL segment 00000008000000000000001F successfully stored in the archive at '/var/lib/pgbackrest/archive/demo/9.4-1/0000000800000000/00000008000000000000001F-b239c502ad31c4defa67ae603a162b1d1e61ad00.gz'",
"P00 INFO: check stop"
2016-07-02 10:22:52 -04:00
]
}
},
2016-06-02 11:10:24 -04:00
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo backup"
],
"err-expect" : "137",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"stop file exists for all stanzas"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 WARN: option retention-full is not set, the repository may run out of space",
2016-09-07 08:29:21 -04:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
2016-09-14 17:36:43 -05:00
"P00 ERROR: [137]: stop file exists for all stanzas"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 WARN: stop file already exists for all stanzas"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo backup"
],
"err-expect" : "137",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"stop file exists for stanza demo"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 WARN: option retention-full is not set, the repository may run out of space",
2016-09-07 08:29:21 -04:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
2016-09-14 17:36:43 -05:00
"P00 ERROR: [137]: stop file exists for stanza demo"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
2016-07-02 10:22:52 -04:00
"image" : "backrest/co6-db-9.4-doc-pre",
2016-06-02 11:10:24 -04:00
"mount" : "/backrest:/backrest",
"name" : "db-standby",
"os" : "co6",
"user" : "vagrant"
},
"type" : "host",
"value" : {
2016-09-07 08:29:21 -04:00
"ip" : "172.17.0.4"
2016-06-02 11:10:24 -04:00
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-standby",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/pgsql/9.4/data"
},
"recovery-option" : {
"value" : "standby_mode=on"
}
},
"global" : {
"backup-host" : {
"value" : "backup"
},
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"recovery-option=standby_mode=on",
"",
"[global]",
"backup-host=backup",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/recovery.conf"
],
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"standby_mode = 'on'",
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-standby",
"option" : {
"hot_standby" : {
"value" : "on"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"hot_standby = on"
]
}
},
{
"key" : {
"cmd" : [
"sudo rm /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/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" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"LOG: database system was interrupted; last known up at 2016-09-14 22:17:07 UTC",
2016-06-02 11:10:24 -04:00
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
"LOG: entering standby mode",
"LOG: restored log file \"00000008.history\" from archive",
2016-09-07 08:29:21 -04:00
"LOG: restored log file \"00000008000000000000001E\" from archive",
"LOG: redo starts at 0/1E000028",
"LOG: consistent recovery state reached at 0/1E0000F0",
2016-07-02 10:22:52 -04:00
"LOG: database system is ready to accept read only connections",
2016-09-07 08:29:21 -04:00
"LOG: restored log file \"00000008000000000000001F\" from archive"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from replicated_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"replicated_table\" does not exist",
"LINE 1: select * from replicated_table;",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select *, current_timestamp from pg_switch_xlog()\";"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" pg_switch_xlog | now ",
"----------------+-------------------------------",
" 0/20017990 | 2016-09-14 22:17:56.033458+00",
2016-06-02 11:10:24 -04:00
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from replicated_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message | now ",
"----------------+-------------------------------",
2016-09-14 17:36:43 -05:00
" Important Data | 2016-09-14 22:18:00.680846+00",
2016-06-02 11:10:24 -04:00
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" create user replicator password 'jw8s0F4' replication\";"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE ROLE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
2016-09-07 08:29:21 -04:00
" \"host replication replicator 172.17.0.4/32 md5\" \\",
2016-06-02 11:10:24 -04:00
" >> /var/lib/pgsql/9.4/data/pg_hba.conf'"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 reload"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-standby",
"option" : {
"demo" : {
"recovery-option" : {
2016-09-07 08:29:21 -04:00
"value" : "primary_conninfo=host=172.17.0.2 port=5432 user=replicator"
2016-06-02 11:10:24 -04:00
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/pgsql/9.4/data",
"recovery-option=standby_mode=on",
2016-09-07 08:29:21 -04:00
"recovery-option=primary_conninfo=host=172.17.0.2 port=5432 user=replicator",
2016-06-02 11:10:24 -04:00
"",
"[global]",
"backup-host=backup",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
2016-09-07 08:29:21 -04:00
" \"172.17.0.2:*:replication:replicator:jw8s0F4\" \\",
2016-06-02 11:10:24 -04:00
" >> /home/postgres/.pgpass'"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres chmod 600 /home/postgres/.pgpass"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 stop"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/recovery.conf"
],
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
"primary_conninfo = 'host=172.17.0.2 port=5432 user=replicator'",
2016-06-02 11:10:24 -04:00
"standby_mode = 'on'",
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"file" : "/var/lib/pgsql/9.4/data/postgresql.conf",
"host" : "db-standby",
"option" : {
"hot_standby" : {
"value" : "on"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"hot_standby = on"
]
}
},
{
"key" : {
"cmd" : [
"sudo rm /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo service postgresql-9.4 start"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/pgsql/9.4/data/pg_log/postgresql.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"started streaming WAL from primary"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-07-02 10:22:52 -04:00
" [filtered 8 lines of output]",
2016-09-07 08:29:21 -04:00
"LOG: restored log file \"00000008000000000000001F\" from archive",
"LOG: restored log file \"000000080000000000000020\" from archive",
"LOG: started streaming WAL from primary at 0/21000000 on timeline 8"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message | now ",
"----------------+-------------------------------",
2016-09-14 17:36:43 -05:00
" Important Data | 2016-09-14 22:18:12.907213+00",
2016-06-02 11:10:24 -04:00
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from stream_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" message | now ",
"----------------+-------------------------------",
" Important Data | 2016-09-14 22:18:13.350198+00",
2016-06-02 11:10:24 -04:00
"(1 row)"
]
}
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"demo" : {
"db2-host" : {
"value" : "db-standby"
},
"db2-path" : {
"value" : "/var/lib/pgsql/9.4/data"
},
"db2-user" : {
"value" : "postgres"
}
},
"global" : {
"backup-standby" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db1-host=db-master",
"db1-path=/var/lib/pgsql/9.4/data",
"db1-user=postgres",
"db2-host=db-standby",
"db2-path=/var/lib/pgsql/9.4/data",
"db2-user=postgres",
"",
"[global]",
"backup-standby=y",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"backup file db-master|replay on the standby"
]
},
"host" : "backup",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 4 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-09-14 22:18:14\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000080000000000000022, lsn = 0/22000028",
"P00 INFO: wait for replay on the standby to reach 0/22000028",
"P00 INFO: replay on the standby reached 0/220000C8",
"P00 INFO: local process 1 start for host db-1",
"P00 INFO: local process 2 start for host db-2",
"P01 INFO: backup file db-master:/var/lib/pgsql/9.4/data/pg_hba.conf (4.1KB, 0%) checksum 58731e81ad21675e504278f39333f56620a52837",
"P01 INFO: backup file db-master:/var/lib/pgsql/9.4/data/pg_log/postgresql.log (2.1KB, 0%) checksum 18c1423f9610b31315260341331aaedf001066e1",
"P00 INFO: local process 1 stop for db-1",
"P01 INFO: backup file db-master:/var/lib/pgsql/9.4/data/backup_label (238B, 0%) checksum 8a231bb4edeeaaf3871c36561a9b83e495b6d309",
"P02 INFO: backup file db-standby:/var/lib/pgsql/9.4/data/base/12140/12008 (392KB, 20%) checksum 48d12083de4b3c0595038110410bb82c5b77e34b",
"P02 INFO: backup file db-standby:/var/lib/pgsql/9.4/data/base/12140/11890 (344KB, 38%) checksum a0171ce874ca3b1351c0082a19832ce84eda0ff0",
" [filtered 26 lines of output]",
"P00 INFO: local process 2 stop for db-2",
"P02 INFO: backup file db-standby:/var/lib/pgsql/9.4/data/base/12140/32771 (0B, 99%)",
"P00 INFO: backup file db-master:/var/lib/pgsql/9.4/data/global/pg_control (8KB, 100%) checksum 2c457903a98d39e527c4977461ce9e600c341402",
"P00 INFO: incr backup size = 1.8MB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
" [filtered 5 lines of output]"
]
}
2016-06-02 11:10:24 -04:00
}
]
}
},
"default" : {
"all" : {
"user-guide" : [
{
"key" : {
2016-07-02 10:22:52 -04:00
"image" : "backrest/u14-db-9.4-doc-pre",
2016-06-02 11:10:24 -04:00
"mount" : "/backrest:/backrest",
"name" : "db-master",
"os" : "u14",
"user" : "vagrant"
},
"type" : "host",
"value" : {
2016-09-07 08:29:21 -04:00
"ip" : "172.17.0.2"
2016-06-02 11:10:24 -04:00
}
},
{
"key" : {
"cmd" : [
2016-07-02 10:22:52 -04:00
"sudo apt-get install libdbd-pg-perl"
2016-06-02 11:10:24 -04:00
],
2016-07-02 10:22:52 -04:00
"cmd-extra" : "-y",
2016-06-02 11:10:24 -04:00
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
2016-07-02 10:22:52 -04:00
"sudo rm -f /usr/bin/pgbackrest"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
2016-07-02 10:22:52 -04:00
"sudo rm -f /usr/bin/pg_backrest"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
2016-07-02 10:22:52 -04:00
"sudo rm -rf /usr/lib/perl5/BackRest"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
2016-07-02 10:22:52 -04:00
"sudo rm -rf /usr/share/perl5/BackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/lib/perl5/pgBackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm -rf /usr/share/perl5/pgBackRest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
2016-09-14 17:36:43 -05:00
"sudo cp -r ~/pgbackrest-release-1.08/lib/pgBackRest \\",
2016-07-02 10:22:52 -04:00
" /usr/share/perl5"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo find /usr/share/perl5/pgBackRest -type f -exec chmod 644 {} +"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo find /usr/share/perl5/pgBackRest -type d -exec chmod 755 {} +"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
2016-09-14 17:36:43 -05:00
"sudo cp ~/pgbackrest-release-1.08/bin/pgbackrest /usr/bin/pgbackrest"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chmod 755 /usr/bin/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo mkdir -m 770 /var/log/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/log/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"pgBackRest 1.08 - General help",
2016-06-02 11:10:24 -04:00
"",
"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.",
2016-07-02 10:22:52 -04:00
" check Check the configuration.",
2016-06-02 11:10:24 -04:00
" expire Expire backups that exceed retention.",
" help Get help.",
" info Retrieve information about backups.",
" restore Restore a database cluster.",
" start Allow pgBackRest processes to run.",
" stop Stop pgBackRest processes from running.",
" version Get version.",
"",
"Use 'pgbackrest help [command]' for more information."
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_createcluster 9.4 demo"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"Creating new cluster 9.4/demo ...",
" config /etc/postgresql/9.4/demo",
" data /var/lib/postgresql/9.4/demo",
" locale C",
" socket /var/run/postgresql",
" port 5432"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/9.4/demo/postgresql.conf",
"host" : "db-master",
"option" : {
"listen_addresses" : {
"value" : "'*'"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/9.4/demo/postgresql.conf",
"host" : "db-master",
"option" : {
"log_line_prefix" : {
"value" : "''"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"listen_addresses = '*'",
"log_line_prefix = ''"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/postgresql/9.4/demo"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo"
]
}
},
{
"key" : {
"cmd" : [
"sudo mkdir /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/lib/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/9.4/demo/postgresql.conf",
"host" : "db-master",
"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_line_prefix = ''",
"max_wal_senders = 3",
"wal_level = hot_standby"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo restart"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
2016-07-02 10:22:52 -04:00
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
" successfully stored in the archive at "
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 INFO: check start: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: switch xlog 000000010000000000000001",
"P00 ERROR: [148]: /var/lib/pgbackrest/backup/demo does not exist",
"P00 INFO: WAL segment 000000010000000000000001 successfully stored in the archive at '/var/lib/pgbackrest/archive/demo/9.4-1/0000000100000000/000000010000000000000001-735ef5f4bcf5ae26ae7d2583e812ea6fdf2e3de1.gz'",
"P00 INFO: check stop"
2016-07-02 10:22:52 -04:00
]
}
},
2016-06-02 11:10:24 -04:00
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 WARN: option retention-full is not set, the repository may run out of space",
2016-09-07 08:29:21 -04:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
2016-09-14 17:36:43 -05:00
"P00 INFO: backup start: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --repo-path=/var/lib/pgbackrest --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 2016-09-14 22:18:52\": backup begins after the next regular checkpoint completes",
"P00 INFO: backup start archive = 000000010000000000000002, lsn = 0/2000028",
" [filtered 759 lines of output]",
"P01 INFO: backup file /var/lib/postgresql/9.4/demo/base/1/11885 (0B, 99%)",
"P00 INFO: backup file /var/lib/postgresql/9.4/demo/global/pg_control (8KB, 100%) checksum 7edc8d9f90c5abbc2fb5791bd9ae9da4739ac6e8",
"P00 INFO: full backup size = 19.3MB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000010000000000000002, lsn = 0/20000F0",
2016-06-02 11:10:24 -04:00
" [filtered 4 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221900F"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 8 lines of output]",
"P01 INFO: backup file /var/lib/postgresql/9.4/demo/backup_label (236B, 2%) checksum f2ff365e921dc88889e26fdc44fbdbf438af8a09",
"P00 INFO: backup file /var/lib/postgresql/9.4/demo/global/pg_control (8KB, 100%) checksum 294d48b39ef845f5cbb38137d860e9db09203595",
"P00 INFO: diff backup size = 8.2KB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
"P00 INFO: backup stop archive = 000000010000000000000003, lsn = 0/3000128",
2016-06-02 11:10:24 -04:00
" [filtered 4 lines of output]"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"(full|incr|diff) backup"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
"",
2016-09-14 17:36:43 -05:00
" full backup: 20160914-221900F",
" start / stop timestamp: 2016-09-14 22:18:52 / 2016-09-14 22:19:00",
2016-06-02 11:10:24 -04:00
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
2016-09-14 17:36:43 -05:00
" diff backup: 20160914-221900F_20160914-221904D",
" start / stop timestamp: 2016-09-14 22:19:01 / 2016-09-14 22:19:04",
2016-06-02 11:10:24 -04:00
" database size: 19.3MB, backup size: 8.2KB",
2016-09-14 17:36:43 -05:00
" repository size: 2.2MB, repository backup size: 343B",
" backup reference list: 20160914-221900F"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres rm /var/lib/postgresql/9.4/demo/global/pg_control"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"could not find the database system"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"The PostgreSQL server failed to start. Please check the log output:",
"postgres: could not find the database system",
"Expected to find it in the directory \"/var/lib/postgresql/9.4/demo\",",
"but could not open file \"/var/lib/postgresql/9.4/demo/global/pg_control\": No such file or directory"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres find /var/lib/postgresql/9.4/demo -mindepth 1 -delete"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 2 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: backup start: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo --type=incr",
"P00 INFO: last backup label = 20160914-221900F_20160914-221904D, version = 1.08",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-09-14 22:19:20\": backup begins after the next regular checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000005, lsn = 0/5000028",
"P00 INFO: local process 1 start for host db-1",
" [filtered 15 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 2 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: backup start: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo --start-fast --type=incr",
"P00 INFO: last backup label = 20160914-221900F_20160914-221923I, version = 1.08",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-09-14 22:19:25\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000006, lsn = 0/6000028",
"P00 INFO: local process 1 start for host db-1",
" [filtered 10 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo chmod 550 /var/lib/pgbackrest/temp"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"err-expect" : "122",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"ERROR:"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 4 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-09-14 22:19:29\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000007, lsn = 0/7000028",
"P00 ERROR: [122]: unable to create /var/lib/pgbackrest/temp/demo.tmp: Permission denied",
"P00 INFO: backup stop"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo chmod 750 /var/lib/pgbackrest/temp"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr \\",
" --log-level-console=info backup"
],
"err-expect" : "132",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"ERROR:"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 3 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: last backup label = 20160914-221900F_20160914-221928I, version = 1.08",
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-09-14 22:19:31\": backup begins after the requested immediate checkpoint completes",
"P00 ERROR: [132]: ERROR: a backup is already in progress",
2016-06-02 11:10:24 -04:00
" HINT: Run pg_stop_backup() and try again.:",
2016-09-14 17:36:43 -05:00
" select to_char(current_timestamp, 'YYYY-MM-DD HH24:MI:SS.US TZ'), pg_xlogfile_name(lsn), lsn::text from pg_start_backup('pgBackRest backup started at 2016-09-14 22:19:31', true) as lsn"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"stop-auto" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 2 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: backup start: --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo --start-fast --stop-auto --type=incr",
"P00 INFO: last backup label = 20160914-221900F_20160914-221928I, version = 1.08",
"P00 WARN: the cluster is already in backup mode but no 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 2016-09-14 22:19:33\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000020000000000000008, lsn = 0/8000028",
"P00 INFO: local process 1 start for host db-1",
" [filtered 10 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-full" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
2016-09-14 17:36:43 -05:00
"archive retention on backup 20160914-221900F|remove archive"
2016-06-02 11:10:24 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 768 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start: --log-level-console=detail --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20160914-221900F, start = 000000010000000000000002",
"P00 DETAIL: remove archive: start = 000000010000000000000001, stop = 000000010000000000000001",
"P00 INFO: expire stop"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221947F"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=full \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
2016-09-14 17:36:43 -05:00
"expire full backup set\\: 20160914-221900F|archive retention on backup 20160914-221947F|remove archive"
2016-06-02 11:10:24 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 768 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start: --log-level-console=info --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-full=2 --stanza=demo",
"P00 INFO: expire full backup set: 20160914-221900F, 20160914-221900F_20160914-221904D, 20160914-221900F_20160914-221923I, 20160914-221900F_20160914-221928I, 20160914-221900F_20160914-221937I",
"P00 INFO: remove expired backup 20160914-221900F_20160914-221937I",
"P00 INFO: remove expired backup 20160914-221900F_20160914-221928I",
2016-06-02 11:10:24 -04:00
" [filtered 3 lines of output]"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-diff" : {
"value" : "1"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-diff=1",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221956F_20160914-222001D"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff \\",
" --log-level-console=info backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
2016-09-14 17:36:43 -05:00
"expire diff backup set: 20160914-221956F_20160914-222001D"
2016-06-02 11:10:24 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 12 lines of output]",
"P00 INFO: backup stop",
"P00 INFO: expire start: --log-level-console=info --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-diff=1 --retention-full=2 --stanza=demo",
"P00 INFO: expire diff backup set: 20160914-221956F_20160914-222001D, 20160914-221956F_20160914-222007I",
"P00 INFO: remove expired backup 20160914-221956F_20160914-222007I",
"P00 INFO: remove expired backup 20160914-221956F_20160914-222001D"
2016-09-07 08:29:21 -04:00
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"retention-diff" : {
"value" : "2"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"retention-diff=2",
"retention-full=2",
"start-fast=y",
"stop-auto=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221956F_20160914-222011D"
2016-09-07 08:29:21 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [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 = 000000020000000000000012, lsn = 0/12000128",
"P00 INFO: new backup label = 20160914-221956F_20160914-222017D",
"P00 INFO: backup stop",
"P00 INFO: expire start: --log-level-console=info --repo-path=/var/lib/pgbackrest --retention-archive=2 --retention-diff=2 --retention-full=2 --stanza=demo"
2016-09-07 08:29:21 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221956F_20160914-222017D"
2016-09-07 08:29:21 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=detail \\",
" --retention-archive-type=diff --retention-archive=1 expire"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
2016-09-14 17:36:43 -05:00
"archive retention on backup 20160914-221956F_20160914-222011D|remove archive"
2016-09-07 08:29:21 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 INFO: expire start: --log-level-console=detail --repo-path=/var/lib/pgbackrest --retention-archive=1 --retention-archive-type=diff --retention-diff=2 --retention-full=2 --stanza=demo",
"P00 DETAIL: archive retention on backup 20160914-221947F, start = 000000020000000000000009, stop = 000000020000000000000009",
"P00 DETAIL: archive retention on backup 20160914-221956F, start = 00000002000000000000000A, stop = 00000002000000000000000A",
"P00 DETAIL: archive retention on backup 20160914-221956F_20160914-222011D, start = 00000002000000000000000E, stop = 00000002000000000000000E",
"P00 DETAIL: archive retention on backup 20160914-221956F_20160914-222017D, start = 000000020000000000000012",
"P00 DETAIL: remove archive: start = 00000002000000000000000B, stop = 00000002000000000000000D",
"P00 DETAIL: remove archive: start = 00000002000000000000000F, stop = 000000020000000000000011",
"P00 INFO: expire stop"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"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|check\\/clean db path|restore global\\/pg_control"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 693 lines of output]",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/base/12134/PG_VERSION - exists and matches backup (4B, 99%) checksum 8dbabb96e032b8d9f1993c0e4b9141e71ade01a1",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/base/1/PG_VERSION - exists and matches backup (4B, 99%) checksum 8dbabb96e032b8d9f1993c0e4b9141e71ade01a1",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/PG_VERSION - exists and matches backup (4B, 99%) checksum 8dbabb96e032b8d9f1993c0e4b9141e71ade01a1",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/global/12086 - exists and is zero size (0B, 99%)",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/global/12038 - exists and is zero size (0B, 99%)",
" [filtered 84 lines of output]",
"P01 DETAIL: restore file /var/lib/postgresql/9.4/demo/base/1/11885 - exists and is zero size (0B, 99%)",
"P00 INFO: wrote /var/lib/postgresql/9.4/demo/recovery.conf",
"P00 INFO: restore global/pg_control (copied last to ensure aborted restores cannot be started)",
"P00 INFO: restore file /var/lib/postgresql/9.4/demo/global/pg_control (8KB, 100%) checksum 4435a2bff8fd027f0b07673a1d21d7a0a08fc617",
"P00 INFO: restore stop"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create database test1;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create database test2;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create table test1_table (id int); \\",
" insert into test1_table (id) values (1);\" test1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"INSERT 0 1"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"create table test2_table (id int); \\",
" insert into test2_table (id) values (2);\" test2"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"INSERT 0 1"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres du -sh /var/lib/postgresql/9.4/demo/base/16384"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"6.4M\t/var/lib/postgresql/9.4/demo/base/16384"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
" --db-include=test2 restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from test2_table;\" test2"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" id ",
"----",
" 2",
"(1 row)"
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"psql: FATAL: relation mapping file \"base/16384/pg_filenode.map\" contains invalid data"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres du -sh /var/lib/postgresql/9.4/demo/base/16384"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"152K\t/var/lib/postgresql/9.4/demo/base/16384"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"drop database test1;\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"DROP DATABASE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select oid, datname from pg_database order by oid;\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"test2"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" oid | datname ",
"-------+-----------",
" 1 | template1",
" 12134 | template0",
" 12139 | postgres",
" 16385 | test2",
"(4 rows)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=diff backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -Atc \"select current_timestamp\""
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"2016-09-14 22:20:56.007702+00"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: ...le important_table; commit; select * from important_...",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
2016-09-14 17:36:43 -05:00
" --type=time \"--target=2016-09-14 22:20:56.007702+00\" restore"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-9.4-demo.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/postgresql/9.4/demo/recovery.conf"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery_target_time"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'",
2016-09-14 17:36:43 -05:00
"recovery_target_time = '2016-09-14 22:20:56.007702+00'"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-9.4-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery stopping before|last completed transaction|starting point-in-time recovery"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"LOG: database system was interrupted; last known up at 2016-09-14 22:20:51 UTC",
2016-06-02 11:10:24 -04:00
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
2016-09-14 17:36:43 -05:00
"LOG: starting point-in-time recovery to 2016-09-14 22:20:56.007702+00",
2016-06-02 11:10:24 -04:00
"LOG: restored log file \"00000004.history\" from archive",
2016-09-14 17:36:43 -05:00
"LOG: incomplete startup packet",
" [filtered 3 lines of output]",
"FATAL: the database system is starting up",
2016-09-07 08:29:21 -04:00
"LOG: restored log file \"000000040000000000000018\" from archive",
2016-09-14 17:36:43 -05:00
"LOG: recovery stopping before commit of transaction 686, time 2016-09-14 22:20:56.265593+00",
2016-09-07 08:29:21 -04:00
"LOG: redo done at 0/180157F0",
2016-09-14 17:36:43 -05:00
"LOG: last completed transaction was at log time 2016-09-14 22:20:55.778517+00",
2016-06-02 11:10:24 -04:00
"LOG: selected new timeline ID: 5",
2016-09-14 17:36:43 -05:00
"LOG: restored log file \"00000004.history\" from archive",
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
" [filtered 6 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: ...le important_table; commit; select * from important_...",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres ls -1 /var/lib/pgbackrest/backup/demo | tail -4 | head -1"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"20160914-221956F_20160914-222055D"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --type=incr backup"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
2016-09-14 17:36:43 -05:00
" --type=time \"--target=2016-09-14 22:20:56.007702+00\" restore"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-9.4-demo.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"important_table\" does not exist",
"LINE 1: select * from important_table",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-9.4-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
2016-07-02 10:22:52 -04:00
"starting point-in-time recovery|consistent recovery state reached"
2016-06-02 11:10:24 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"LOG: database system was interrupted; last known up at 2016-09-14 22:21:07 UTC",
2016-06-02 11:10:24 -04:00
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
2016-09-14 17:36:43 -05:00
"LOG: starting point-in-time recovery to 2016-09-14 22:20:56.007702+00",
2016-06-02 11:10:24 -04:00
"LOG: restored log file \"00000005.history\" from archive",
2016-09-14 17:36:43 -05:00
"LOG: incomplete startup packet",
2016-09-07 08:29:21 -04:00
"LOG: restored log file \"000000050000000000000019\" from archive",
"LOG: redo starts at 0/19000028",
"LOG: consistent recovery state reached at 0/190000F0",
"LOG: redo done at 0/190000F0",
2016-09-14 17:36:43 -05:00
"FATAL: the database system is starting up",
" [filtered 11 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest info"
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
2016-09-14 17:36:43 -05:00
"20160914-221956F_20160914-222055D"
2016-06-02 11:10:24 -04:00
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"stanza: demo",
" status: ok",
"",
2016-09-14 17:36:43 -05:00
" full backup: 20160914-221947F",
" start / stop timestamp: 2016-09-14 22:19:39 / 2016-09-14 22:19:47",
2016-06-02 11:10:24 -04:00
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
2016-09-14 17:36:43 -05:00
" full backup: 20160914-221956F",
" start / stop timestamp: 2016-09-14 22:19:48 / 2016-09-14 22:19:56",
2016-06-02 11:10:24 -04:00
" database size: 19.3MB, backup size: 19.3MB",
" repository size: 2.2MB, repository backup size: 2.2MB",
"",
2016-09-14 17:36:43 -05:00
" diff backup: 20160914-221956F_20160914-222017D",
" start / stop timestamp: 2016-09-14 22:20:13 / 2016-09-14 22:20:17",
2016-09-07 08:29:21 -04:00
" database size: 19.3MB, backup size: 8.2KB",
2016-09-14 17:36:43 -05:00
" repository size: 2.2MB, repository backup size: 346B",
" backup reference list: 20160914-221956F",
2016-09-07 08:29:21 -04:00
"",
2016-09-14 17:36:43 -05:00
" incr backup: 20160914-221956F_20160914-222037I",
" start / stop timestamp: 2016-09-14 22:20:30 / 2016-09-14 22:20:37",
2016-09-07 08:29:21 -04:00
" database size: 31.8MB, backup size: 12.7MB",
" repository size: 3.7MB, repository backup size: 1.5MB",
2016-09-14 17:36:43 -05:00
" backup reference list: 20160914-221956F",
2016-09-07 08:29:21 -04:00
"",
2016-09-14 17:36:43 -05:00
" diff backup: 20160914-221956F_20160914-222055D",
" start / stop timestamp: 2016-09-14 22:20:50 / 2016-09-14 22:20:55",
2016-06-02 11:10:24 -04:00
" database size: 25.7MB, backup size: 6.5MB",
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
" repository size: 3MB, repository backup size: 788.6KB",
2016-09-14 17:36:43 -05:00
" backup reference list: 20160914-221956F",
2016-06-02 11:10:24 -04:00
"",
2016-09-14 17:36:43 -05:00
" incr backup: 20160914-221956F_20160914-222110I",
" start / stop timestamp: 2016-09-14 22:21:07 / 2016-09-14 22:21:10",
2016-06-02 11:10:24 -04:00
" database size: 25.6MB, backup size: 1.9MB",
2016-07-30 09:42:35 -04:00
" repository size: 2.9MB, repository backup size: 214.3KB",
2016-09-14 17:36:43 -05:00
" backup reference list: 20160914-221956F, 20160914-221956F_20160914-222055D"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta \\",
2016-09-14 17:36:43 -05:00
" --type=time \"--target=2016-09-14 22:20:56.007702+00\" \\",
" --set=20160914-221956F_20160914-222055D restore"
2016-06-02 11:10:24 -04:00
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-9.4-demo.log"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from important_table\""
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-9.4-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"recovery stopping before|last completed transaction|starting point-in-time recovery"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"LOG: database system was interrupted; last known up at 2016-09-14 22:20:51 UTC",
2016-06-02 11:10:24 -04:00
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
2016-09-14 17:36:43 -05:00
"LOG: starting point-in-time recovery to 2016-09-14 22:20:56.007702+00",
2016-06-02 11:10:24 -04:00
"LOG: restored log file \"00000004.history\" from archive",
"LOG: incomplete startup packet",
2016-09-14 17:36:43 -05:00
" [filtered 3 lines of output]",
"FATAL: the database system is starting up",
2016-09-07 08:29:21 -04:00
"LOG: restored log file \"000000040000000000000018\" from archive",
2016-09-14 17:36:43 -05:00
"LOG: recovery stopping before commit of transaction 686, time 2016-09-14 22:20:56.265593+00",
2016-09-07 08:29:21 -04:00
"LOG: redo done at 0/180157F0",
2016-09-14 17:36:43 -05:00
"LOG: last completed transaction was at log time 2016-09-14 22:20:55.778517+00",
2016-06-02 11:10:24 -04:00
"LOG: restored log file \"00000005.history\" from archive",
2016-07-02 10:22:52 -04:00
"LOG: restored log file \"00000006.history\" from archive",
2016-09-07 08:29:21 -04:00
" [filtered 8 lines of output]"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
2016-07-02 10:22:52 -04:00
"image" : "backrest/u14-backup-doc-pre",
2016-06-02 11:10:24 -04:00
"mount" : "/backrest:/backrest",
"name" : "backup",
"os" : "u14",
"user" : "vagrant"
},
"type" : "host",
"value" : {
2016-09-07 08:29:21 -04:00
"ip" : "172.17.0.3"
2016-06-02 11:10:24 -04:00
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"global" : {
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[global]",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"demo" : {
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
"db1-host" : {
2016-06-02 11:10:24 -04:00
"value" : "db-master"
},
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
"db1-path" : {
2016-06-02 11:10:24 -04:00
"value" : "/var/lib/postgresql/9.4/demo"
2016-07-30 09:42:35 -04:00
},
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
"db1-user" : {
2016-07-30 09:42:35 -04:00
"value" : "postgres"
2016-06-02 11:10:24 -04:00
}
},
"global" : {
"start-fast" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
"db1-host=db-master",
"db1-path=/var/lib/postgresql/9.4/demo",
"db1-user=postgres",
2016-06-02 11:10:24 -04:00
"",
"[global]",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/postgresql/9.4/demo"
}
},
"global" : {
"backup-host" : {
"value" : "backup"
},
2016-07-30 09:42:35 -04:00
"backup-user" : {
"value" : "backrest"
},
2016-06-02 11:10:24 -04:00
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
},
"reset" : true
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"backup-host=backup",
2016-07-30 09:42:35 -04:00
"backup-user=backrest",
2016-06-02 11:10:24 -04:00
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo find /var/lib/pgbackrest -delete"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
2016-07-02 10:22:52 -04:00
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo check"
],
"host" : "db-master",
"output" : true
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo check"
],
"host" : "backup",
"output" : true
},
2016-07-30 09:42:35 -04:00
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 ERROR: [148]: /var/lib/pgbackrest/backup/demo does not exist"
2016-07-30 09:42:35 -04:00
]
}
2016-07-02 10:22:52 -04:00
},
2016-06-02 11:10:24 -04:00
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo backup"
],
"host" : "backup",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 WARN: option retention-full is not set, the repository may run out of space",
2016-09-07 08:29:21 -04:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
2016-09-14 17:36:43 -05:00
"P00 WARN: no prior backup exists, incr backup has been changed to full"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo backup"
],
"host" : "backup",
"output" : false
},
"type" : "exe"
},
2016-07-02 10:22:52 -04:00
{
"key" : {
"cmd" : [
"sudo mkdir -m 750 /var/spool/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo chown postgres:postgres /var/spool/pgbackrest"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-master",
"option" : {
"global" : {
"archive-async" : {
"value" : "y"
},
"spool-path" : {
"value" : "/var/spool/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"",
"[global]",
"archive-async=y",
"backup-host=backup",
2016-07-30 09:42:35 -04:00
"backup-user=backrest",
2016-07-02 10:22:52 -04:00
"repo-path=/var/lib/pgbackrest",
"spool-path=/var/spool/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --log-level-console=info check"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"WAL segment"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 INFO: check start: --backup-host=backup --backup-user=backrest --db-path=/var/lib/postgresql/9.4/demo --log-level-console=info --repo-path=/var/lib/pgbackrest --stanza=demo",
"P00 INFO: switch xlog 00000008000000000000001E",
"P00 INFO: WAL segment 00000008000000000000001E successfully stored in the archive at '/var/lib/pgbackrest/archive/demo/9.4-1/0000000800000000/00000008000000000000001E-d76a5a05f87dbf84b82ec0cb5e05521afd37b9cd.gz'",
"P00 INFO: check stop"
2016-07-02 10:22:52 -04:00
]
}
},
2016-06-02 11:10:24 -04:00
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo backup"
],
"err-expect" : "137",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"stop file exists for all stanzas"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 WARN: option retention-full is not set, the repository may run out of space",
2016-09-07 08:29:21 -04:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
2016-09-14 17:36:43 -05:00
"P00 ERROR: [137]: stop file exists for all stanzas"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest stop"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 WARN: stop file already exists for all stanzas"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo stop"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo backup"
],
"err-expect" : "137",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"stop file exists for stanza demo"
]
},
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"P00 WARN: option retention-full is not set, the repository may run out of space",
2016-09-07 08:29:21 -04:00
" HINT: to retain full backups indefinitely (without warning), set option 'retention-full' to the maximum.",
2016-09-14 17:36:43 -05:00
"P00 ERROR: [137]: stop file exists for stanza demo"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo start"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
2016-07-02 10:22:52 -04:00
"image" : "backrest/u14-db-9.4-doc-pre",
2016-06-02 11:10:24 -04:00
"mount" : "/backrest:/backrest",
"name" : "db-standby",
"os" : "u14",
"user" : "vagrant"
},
"type" : "host",
"value" : {
2016-09-07 08:29:21 -04:00
"ip" : "172.17.0.4"
2016-06-02 11:10:24 -04:00
}
},
{
"key" : {
"file" : "/etc/postgresql/9.4/demo/postgresql.conf",
"host" : "db-standby",
"option" : {
"log_filename" : {
"value" : "'postgresql.log'"
},
"log_line_prefix" : {
"value" : "''"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"log_filename = 'postgresql.log'",
"log_line_prefix = ''"
]
}
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-standby",
"option" : {
"demo" : {
"db-path" : {
"value" : "/var/lib/postgresql/9.4/demo"
},
"recovery-option" : {
"value" : "standby_mode=on"
}
},
"global" : {
"backup-host" : {
"value" : "backup"
},
"repo-path" : {
"value" : "/var/lib/pgbackrest"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"recovery-option=standby_mode=on",
"",
"[global]",
"backup-host=backup",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/postgresql/9.4/demo/recovery.conf"
],
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"standby_mode = 'on'",
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"file" : "/etc/postgresql/9.4/demo/postgresql.conf",
"host" : "db-standby",
"option" : {
"hot_standby" : {
"value" : "on"
}
}
},
"type" : "cfg-postgresql",
"value" : {
"config" : [
"hot_standby = on",
"log_filename = 'postgresql.log'",
"log_line_prefix = ''"
]
}
},
{
"key" : {
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-9.4-demo.log"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-9.4-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"entering standby mode|database system is ready to accept read only connections"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
"LOG: database system was interrupted; last known up at 2016-09-14 22:22:05 UTC",
2016-06-02 11:10:24 -04:00
"LOG: creating missing WAL directory \"pg_xlog/archive_status\"",
"LOG: entering standby mode",
2016-07-02 10:22:52 -04:00
"LOG: incomplete startup packet",
2016-09-14 17:36:43 -05:00
"LOG: restored log file \"00000008.history\" from archive",
" [filtered 2 lines of output]",
"LOG: redo starts at 0/1D000028",
"LOG: consistent recovery state reached at 0/1D0000F0",
2016-07-02 10:22:52 -04:00
"LOG: database system is ready to accept read only connections",
2016-09-14 17:36:43 -05:00
"LOG: restored log file \"00000008000000000000001E\" from archive"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message ",
"----------------",
" Important Data",
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select * from replicated_table;\""
],
"err-expect" : "1",
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"does not exist"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"ERROR: relation \"replicated_table\" does not exist",
"LINE 1: select * from replicated_table;",
" ^"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \"select *, current_timestamp from pg_switch_xlog()\";"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
" pg_switch_xlog | now ",
"----------------+-------------------------------",
2016-09-14 17:36:43 -05:00
" 0/1F017990 | 2016-09-14 22:22:38.947007+00",
2016-06-02 11:10:24 -04:00
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from replicated_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
" message | now ",
"----------------+-------------------------------",
2016-09-14 17:36:43 -05:00
" Important Data | 2016-09-14 22:22:41.328703+00",
2016-06-02 11:10:24 -04:00
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" create user replicator password 'jw8s0F4' replication\";"
],
"host" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
"CREATE ROLE"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
2016-09-07 08:29:21 -04:00
" \"host replication replicator 172.17.0.4/32 md5\" \\",
2016-06-02 11:10:24 -04:00
" >> /etc/postgresql/9.4/demo/pg_hba.conf'"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo reload"
],
"host" : "db-master",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "db-standby",
"option" : {
"demo" : {
"recovery-option" : {
2016-09-07 08:29:21 -04:00
"value" : "primary_conninfo=host=172.17.0.2 port=5432 user=replicator"
2016-06-02 11:10:24 -04:00
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db-path=/var/lib/postgresql/9.4/demo",
"recovery-option=standby_mode=on",
2016-09-07 08:29:21 -04:00
"recovery-option=primary_conninfo=host=172.17.0.2 port=5432 user=replicator",
2016-06-02 11:10:24 -04:00
"",
"[global]",
"backup-host=backup",
"repo-path=/var/lib/pgbackrest"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres sh -c 'echo \\",
2016-09-07 08:29:21 -04:00
" \"172.17.0.2:*:replication:replicator:jw8s0F4\" \\",
2016-06-02 11:10:24 -04:00
" >> /home/postgres/.pgpass'"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres chmod 600 /home/postgres/.pgpass"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo stop"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres pgbackrest --stanza=demo --delta restore"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/lib/postgresql/9.4/demo/recovery.conf"
],
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
"primary_conninfo = 'host=172.17.0.2 port=5432 user=replicator'",
2016-06-02 11:10:24 -04:00
"standby_mode = 'on'",
"restore_command = '/usr/bin/pgbackrest --stanza=demo archive-get %f \"%p\"'"
]
}
},
{
"key" : {
"cmd" : [
"sudo rm /var/log/postgresql/postgresql-9.4-demo.log"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo pg_ctlcluster 9.4 demo start"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres sleep 1"
],
"host" : "db-standby",
"output" : false
},
"type" : "exe"
},
{
"key" : {
"cmd" : [
"sudo -u postgres cat /var/log/postgresql/postgresql-9.4-demo.log"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"started streaming WAL from primary"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-14 17:36:43 -05:00
" [filtered 11 lines of output]",
2016-09-07 08:29:21 -04:00
"LOG: restored log file \"00000008000000000000001E\" from archive",
2016-09-14 17:36:43 -05:00
"LOG: restored log file \"00000008000000000000001F\" from archive",
"LOG: started streaming WAL from primary at 0/20000000 on timeline 8"
2016-06-02 11:10:24 -04:00
]
}
},
{
"key" : {
"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" : "db-master",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message | now ",
"----------------+-------------------------------",
2016-09-14 17:36:43 -05:00
" Important Data | 2016-09-14 22:22:54.155025+00",
2016-06-02 11:10:24 -04:00
"(1 row)"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u postgres psql -c \" \\",
" select *, current_timestamp from stream_table\""
],
"highlight" : {
"filter" : false,
"filter-context" : 2,
"list" : [
"Important Data"
]
},
"host" : "db-standby",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
" message | now ",
"----------------+-------------------------------",
2016-09-14 17:36:43 -05:00
" Important Data | 2016-09-14 22:22:54.609891+00",
2016-06-02 11:10:24 -04:00
"(1 row)"
]
}
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
},
{
"key" : {
"file" : "/etc/pgbackrest.conf",
"host" : "backup",
"option" : {
"demo" : {
"db2-host" : {
"value" : "db-standby"
},
"db2-path" : {
"value" : "/var/lib/postgresql/9.4/demo"
},
"db2-user" : {
"value" : "postgres"
}
},
"global" : {
"backup-standby" : {
"value" : "y"
}
}
}
},
"type" : "cfg-pgbackrest",
"value" : {
"config" : [
"[demo]",
"db1-host=db-master",
"db1-path=/var/lib/postgresql/9.4/demo",
"db1-user=postgres",
"db2-host=db-standby",
"db2-path=/var/lib/postgresql/9.4/demo",
"db2-user=postgres",
"",
"[global]",
"backup-standby=y",
"repo-path=/var/lib/pgbackrest",
"start-fast=y"
]
}
},
{
"key" : {
"cmd" : [
"sudo -u backrest pgbackrest --stanza=demo --log-level-console=detail backup"
],
"highlight" : {
"filter" : true,
"filter-context" : 2,
"list" : [
"backup file db-master|replay on the standby"
]
},
"host" : "backup",
"output" : true
},
"type" : "exe",
"value" : {
"output" : [
2016-09-07 08:29:21 -04:00
" [filtered 4 lines of output]",
2016-09-14 17:36:43 -05:00
"P00 INFO: execute exclusive pg_start_backup() with label \"pgBackRest backup started at 2016-09-14 22:22:56\": backup begins after the requested immediate checkpoint completes",
"P00 INFO: backup start archive = 000000080000000000000021, lsn = 0/21000028",
"P00 INFO: wait for replay on the standby to reach 0/21000028",
"P00 INFO: replay on the standby reached 0/210000C8",
"P00 INFO: local process 1 start for host db-1",
"P00 INFO: local process 2 start for host db-2",
"P00 INFO: local process 1 stop for db-1",
"P01 INFO: backup file db-master:/var/lib/postgresql/9.4/demo/backup_label (238B, 0%) checksum 0e510fed19118b75f2d388154cb529011f6265b5",
"P02 INFO: backup file db-standby:/var/lib/postgresql/9.4/demo/base/12139/12007 (392KB, 20%) checksum cca28e2285617f18e4632bd97e80b944d25e84a4",
"P02 INFO: backup file db-standby:/var/lib/postgresql/9.4/demo/base/12139/11889 (344KB, 38%) checksum e74efcf5780e4df35609f4ee00f599aa620172fc",
" [filtered 26 lines of output]",
"P00 INFO: local process 2 stop for db-2",
"P02 INFO: backup file db-standby:/var/lib/postgresql/9.4/demo/base/12139/32771 (0B, 99%)",
"P00 INFO: backup file db-master:/var/lib/postgresql/9.4/demo/global/pg_control (8KB, 100%) checksum 64ec46ec334614665a35521ce2e1d9ef291cb659",
"P00 INFO: incr backup size = 1.8MB",
"P00 INFO: execute exclusive pg_stop_backup() and wait for all WAL segments to archive",
v1.06: Backup from Standby and Bug Fixes
Bug Fixes:
* Fixed an issue where a tablespace link that referenced another link would not produce an error, but instead skip the tablespace entirely. (Reported by Michael Vitale.)
* Fixed an issue where options that should not allow multiple values could be specified multiple times in pgbackrest.conf without an error being raised. (Reported by Michael Vitale.)
* Fixed an issue where the protocol-timeout option was not automatically increased when the db-timeout option was increased. (Reported by Todd Vernick.)
Features:
* Backup from a standby cluster. A connection to the primary cluster is still required to start/stop the backup and copy files that are not replicated, but the vast majority of files are copied from the standby in order to reduce load on the master.
* More flexible configuration for databases. Master and standby can both be configured on the backup server and pgBackRest will automatically determine which is the master. This means no configuration changes for backup are required after failing over from a master to standby when a separate backup server is used.
* Exclude directories during backup that are cleaned, recreated, or zeroed by PostgreSQL at startup. These include pgsql_tmp and pg_stat_tmp. The postgresql.auto.conf.tmp file is now excluded in addition to files that were already excluded: backup_label.old, postmaster.opts, postmaster.pid, recovery.conf, recovery.done.
* Experimental support for non-exclusive backups in PostgreSQL 9.6 beta4. Changes to the control/catalog/WAL versions in subsequent betas may break compatibility but pgBackRest will be updated with each release to keep pace.
Refactoring:
* Simplify protocol creation and identifying which host is local/remote.
* Removed all OP_* function constants that were used only for debugging, not in the protocol, and replaced with __PACKAGE__.
* Improvements in Db module: separated out connect() function, allow executeSql() calls that do not return data, and improve error handling.
* Improve error message for links that reference links in manifest build.
* Added hints to error message when relative paths are detected in archive-push or archive-get.
* Improve backup log messages to indicate which host the files are being copied from.
2016-08-25 11:49:09 -04:00
" [filtered 5 lines of output]"
]
}
2016-06-02 11:10:24 -04:00
}
]
}
}
}