Вы выполняете длинный запрос на резервном сервере, и некоторые модификации, которые реплицируются с основного сервера, конфликтуют с вашим запросом. В частности, VACUUM
удалил некоторые старые версии строк, которые ваш запрос все еще может использовать.
PostgreSQL должен сделать выбор: либо отложить применение изменений из основного, либо отменить запрос, блокирующий репликация.
Как ведет себя PostgreSQL, определяется параметром max_standby_streaming_delay
. Значение по умолчанию дает запросу 30 секунд до окончания sh, прежде чем он будет отменен.
У вас есть три варианта:
Повторите запрос и надеюсь, что на этот раз он будет выполнен успешно .
Увеличение max_standby_streaming_delay
в режиме ожидания.
Риск, который вы запускаете, заключается в том, что репликация отстанет.
Установите для параметра hot_standby_feedback
значение on
в режиме ожидания, тогда основной не будет VACUUM
версий строк, которые могут все еще понадобиться резерву.
Риск, который вы запускаете, - это раздувание таблицы на основном сервере, потому что автовакуум не может делать свою работу.