Я включил архивирование WAL в файле конфигурации postgres. Когда я перезапустил службу Postgres, восстановление WAL не работает. В журналах не было записей о восстановлении.
Шаги, которые я выполнил:
Created directory for wal:
mkdir -p /var/lib/pgsql/wals/
mkdir -p /var/lib/pgsql/backups/
chown postgres:postgres -R /var/lib/pgsql/backups/
chown postgres:postgres -R /var/lib/pgsql/wals/
Edited the postgresql.conf with the below changes:
wal_level=archive
archive_mode=on
archive_command = 'test ! -f /var/lib/pgsql/wals/%f && cp %p /var/lib/pgsql/wals/%f'
sudo service postgresql restart 10
sudo su - postgres
pg_basebackup -D /var/lib/pgsql/data #created base backup
tar -C /var/lib/pgsql/data/ -czvf /var/lib/pgsql/backups/pg_basebackup_backup.tar.gz .
Удалил две строки данных в моей базе данных и остановил службу postgres
sudo service postgresql stop 10
Извлек базовую резервную копию
tar xvf /var/lib/pgsql/backups/pg_basebackup_backup.tar.gz -C /var/lib/pgsql/data
Создал recovery.conf с приведенным ниже содержимым и перезапустил службу postgres.
echo "restore_command = 'cp /var/lib/pgsql/wals/%f %p'">/var/lib/pgsql/recovery.conf
cp /var/lib/pgsql/recovery.conf /var/lib/pgsql/data/
sudo service postgresql stop 10
sudo service postgresql start 10
В журналах не было записей о восстановлении, и две строки, которые я удалил, не были восстановлены.
/usr/local/pgsql/data
, поэтому я ожидаю, что каталог wals будет/usr/local/pgsql/data/pg_wal
.. Вы создали символическую ссылку туда из/var/lib/pgsql/wals/
?.. - person Vao Tsun   schedule 22.02.2018