Резервное копирование образа докера postgresql из WAL с использованием wal-e

У меня есть образ, на котором установлен и работает Wal-e. Это успешно на backup-push отправляет мой WAL на удаленный диск.

Однако когда я бегу backup-fetchЯ получаю ошибку

wal_e.main   INFO     MSG: starting WAL-E
        DETAIL: The subcommand is "backup-fetch".
        STRUCTURED: time=2017-09-05T07:45:24.721673-00 pid=3839 wal_e.main   ERROR    MSG: attempting to overwrite a live data directory
        DETAIL: Found a postmaster.pid lockfile, and aborting
        HINT: Shut down postgres. If there is a stale lockfile, then remove it after being very sure postgres is not running.
        STRUCTURED: time=2017-09-05T07:45:24.750882-00 pid=3839

Так что я следую за ошибкой и закрываюсь с pg_ctl stop и я получаю:

pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.

Затем я перехожу к другому способу выключения pkill postgres,

Когда я делаю это, кажется, что он работает при выключении postgres, но затем вышибает меня из контейнера и запускает протокол перезапуска.

Чтобы исправить это, я мог бы избавиться от restart:always в моем файле compose, но я не хочу этого делать, так как это создает проблемы для моей целостности оркестровки.

Любые другие идеи о том, как восстановить из WAL с помощью wal-e на образе dog postgresql?

РЕДАКТИРОВАТЬ:

Я тоже пробовал бегать

docker exec -t postgres_1 pkill postgres; /usr/bin/envdir /etc/wal-e.d/env /usr/local/bin/wal-e backup-fetch /var/lib/postgresql/data LATEST

Который теоретически остановится, а затем восстановится одним махом, но он сделает то, что я ожидал. Стоп, который перезапускает контейнер, а затем возвращает ожидаемую ошибку:

-bash: /usr/bin/envdir: No such file or directory

0 ответов

Другие вопросы по тегам