У меня Postgres 11.5-alpine работает в кубернетах в системе «лидер-последователь», которая уже некоторое время хорошо работает с потоковой репликацией.
Я решил прикрыть свои основы, записав архив WAL на общий сетевой диск (BLOB-объект Azure через драйвер CSI blobfuse). Драйвер работает нормально, все записывается в blob и читается - отлично!
Теперь я перешел к настройке моей archive_command в yaml kubernetes, используя ключ args. Внутри аргументов у меня есть следующее:
"-c", "archive_mode=on", "-c", "archive_command=/bin/true/"
Это отлично работает, и вызывается / bin / true - развертывание работает, и модули работают хорошо. Хорошая вещь!
Теперь я ввожу фактическую команду копирования архива WAL следующим образом:
"-c", "archive_mode=on", "-c", "archive_command=cp %p /var/walarchive/%f"
И я получаю следующее из моего развернутого модуля в журнале:
postgres: недопустимый аргумент: "\% p" Попробуйте "postgres --help" для получения дополнительной информации.
Я пробовал избегать% p, пробовал использовать одинарные кавычки по обе стороны от всей команды. Все приводит к одному и тому же сообщению об ошибке.
Я подозреваю, что что-то не так с аргументом, переданным в точку входа контейнера, и это будет глупое простое исправление. По крайней мере, я на это надеюсь.
Кто-нибудь сталкивался с этой проблемой раньше?