1. Посмотрим список серверов:
$ barman list-server
10.18.69.88 - zakupki-001
10.18.69.89 - zakupki-002
2. Мы выбрали восстановление сервера 10.18.69.89, посмотрим список бэкапов для него:
$ barman list-backup 10.18.69.89
10.18.69.89 20160524T230816 - Tue May 24 23:08:23 2016 - Size: 6.0 GiB - WAL Size: 0 B
10.18.69.89 20160524T154826 - Tue May 24 15:48:33 2016 - Size: 6.0 GiB - WAL Size: 7.6 MiB
10.18.69.89 20160524T144811 - Tue May 24 14:48:18 2016 - Size: 6.0 GiB - WAL Size: 8.5 MiB
10.18.69.89 20160524T134839 - Tue May 24 13:48:46 2016 - Size: 6.0 GiB - WAL Size: 7.1 MiB
[skipped]
10.18.69.89 20160523T154010 - Mon May 23 15:40:17 2016 - Size: 6.0 GiB - WAL Size: 8.4 MiB
10.18.69.89 20160523T153545 - Mon May 23 15:39:38 2016 - Size: 6.0 GiB - WAL Size: 7.1 MiB
3. Определившись с датой бэкапа, выбираем его по ID, пусть будет 20160524T144811, посмотрим информацию о нём:
$ barman show-backup 10.18.69.89 20160524T144811
Backup 20160524T144811:
Server Name : 10.18.69.89
Status : DONE
PostgreSQL Version : 90214
PGDATA directory : /var/lib/pgsql/9.2/data
Base backup information:
Disk usage : 6.0 GiB (6.0 GiB with WALs)
Incremental size : 50.1 KiB (-100.00%)
Timeline : 1
Begin WAL : 0000000100000002000000E3
End WAL : 0000000100000002000000E3
WAL number : 1
WAL compression ratio: 75.54%
Begin time : 2016-05-24 14:48:11.749582+03:00
End time : 2016-05-24 14:48:18.293332+03:00
Begin Offset : 32
End Offset : 224
Begin XLOG : 2/E3000020
End XLOG : 2/E30000E0
WAL information:
No of files : 2
Disk usage : 8.5 MiB
WAL rate : 2.99/hour
Compression ratio : 73.48%
Last available : 0000000100000002000000E5
Catalog information:
Retention Policy : VALID
Previous Backup : 20160524T134839
Next Backup : 20160524T154826
4. Восстанавливаем бэкап во временную папку на удаленном сервере (10.18.69.89):
$ barman recover --target-time="2016-05-24 14:48:18" --remote-ssh-command="ssh
Starting remote restore for server 10.18.69.89 using backup 20160524T144811
Destination directory: /tmp/20160524T144811/
Doing PITR. Recovery target time: '2016-05-24 14:48:18'
Copying the base backup.
Copying required WAL segments.
Generating recovery.conf
Identify dangerous settings in destination directory.
IMPORTANT
These settings have been modified to prevent data losses
postgresql.conf line 192: archive_command = false
Your PostgreSQL server has been successfully prepared for recovery!
***
После восстановления BARMAN добавляет в postgresql.conf комментарий к параметру archive_command.
Если нужно, чтобы дальнейшние бэкапы создавались с восстановленной базы, данный параметр нужно раскомментировать.
5. Если нам нужно стартануть с восстановленной базы, входим на сервер 10.18.69.89, делаем следующее:
Останавливаем postgres:
[root@host-001 ~]# service postgresql-9.2 stop
Stopping postgresql-9.2 service: [ OK ]
Стартуем:
[root@host-001 /]# su --login postgres --command="/usr/pgsql-9.2/bin/pg_ctl -D /tmp/20160524T144811 start"
server starting
Проверяем статус:
[root@host-001 /]# su --login postgres --command="/usr/pgsql-9.2/bin/pg_ctl -D /tmp/20160524T144811 status"
pg_ctl: server is running (PID: 59165)
/usr/pgsql-9.2/bin/postgres "-D" "/tmp/20160524T144811"