Пытаюсь поднять HA с быстрым переключением hot standby и в асинхронном режиме
Есть внешнее хранилище, на него кидаются xlog файлы:
restore_command = 'cp /mnt/nas/archive_xlogs/%f %p'
archive_cleanup_command = '/usr/pgsql-9.3/bin/pg_archivecleanup /mnt/nas/archive_xlogs %r'
При двукратной смене master<-->standby из за того, что xlog оказывается новее текущего standby сервер перестаёт синхронизироваться с master сервером.
В интернете выискал опцию, которая по идеии должна помогать в таком случае :
recovery_target_time = 'latest'
Но postgress ругается на значение latest:
FATAL: invalid input syntax for type timestamp with time zone: "latest"
сервер CentOS 6.5 x64,
postgress: на одном 9.3.5, на другом -- 9.3.4 (так исторически сложилось)
Просьба подсказать, как исправить?
Ну поскольку у вас всё на
Ну поскольку у вас всё на скриптах, то первое, что напрашивается - это вычислить скриптом нужное значение времени и подставить его в опцию.
Второе, что приходит на ум, что если дело в том, что xlog оказывается новее текущего standby, то выставлять время на сервере, так чтобы оно это компенсировало
Время на обих серверах
Время на обих серверах синхронизировано по ntp(требуется для установленного на сервер ПО), просто, на сколько я понимаю: при переключениях оказывается так, что незавершённый из-за переключения xlog-фай по имени/времени привязки данных совпадает с имеющимся на текущем standby сервере, если играться со временем --можно получить не консистентные данные...
По поводу вычисления нужного значения -- не очень понимаю, от куда его следует брать....
И не понятно, по чему не работает ключевое слово latest, вроде оно есть в поддержки аж с версии 9.1 (хотя не уверен, что это именно то, что мне нужно)....