Часто возникающие ошибки
В этом разделе приведены часто встречающиеся ошибки. Список может дополняться.
- Остановка репликации на пассивный кластер
- Некорректная инициализация экземпляров кластера
- Некорректная инициализация worker на репликах кластера
- Соединение к кластеру продолжает работать после переключения статуса
Репликация данных на пассивный кластер может остановиться по нескольким причинам, например:
- на активном кластере были удалены
.xlogфайлы, записи из которых не успели реплицироваться на пассивный кластер; - один из кластеров был аварийно остановлен и запущен снова в пассивном режиме.
Чтобы восстановить репликацию, проделайте следующие шаги:
- Определите текущий активный кластер. Например, выполните HTTP GET-запрос на адрес /tcf/status любого экземпляра кластера.
- Определите HTTP-адрес Destination, который реплицирует данные на пассивный кластер.
Например, если вы используете Ansible Tarantool Enterprise (ATE) для обслуживания TCF, список серверов можно найти в инвентаре
tcf.yml. - Выполните HTTP POST-запрос на данный адрес Destination: /api/v1/rebootstrap. Данный запрос перезапускает репликатор с повторной инициализацией (rebootstrap).
- Проверьте, что в логах Destination есть информация об успешной репликации данных.
Также в логах не должно быть ошибки
missing xlog.
Иногда при инициализации экземпляров кластера возникает ошибка:
some instances are bootstrapped and some are not, only rebootstrap is supported in this case
Такая ошибка возникает, если при запуске кластера некоторые экземпляры были инициализированы (bootstrapped), а другие нет. Обычно это происходит из-за прерванного запуска или ошибок в начальной настройке.
Чтобы восстановить инициализацию экземпляров кластера, проделайте следующие шаги:
- Выполните HTTP GET-запрос на адрес /tcf/status, чтобы увидеть состояние всех экземпляров.
- Для восстановления корректного состояния всех экземпляров выполните HTTP POST-запрос: /api/v1/rebootstrap.
- После повторной инициализации убедитесь в отсутствии ошибки и успешной синхронизации.
Сообщения вида
tcf-worker: dml: too long waiting for user "dml-user" to be disabled (120.00 s elapsed)
при инициализации реплик кластера в течение длительного времени сигнализируют о некорректной обработке пользователя. В ролях TCF версии до 0.11.1 включительно (в частности в TDB 3.1.1 и предшествующих версиях) к этой ошибке приводит наличие у пользователя dml-user какого-либо разрешения на universe.
Чтобы восстановить инициализацию экземпляров кластера, проделайте одно из следующих действий:
- обновите версию ролей TCF до 0.11.2 или новее;
- переработайте права пользователя
dml-userтаким образом, чтобы они не включали разрешений наuniverse.
Если при смене статуса кластера с active на passive старое соединение пользователя из списка dml_users продолжает функционировать, необходимо проверить настройки пользователя. В случае, если ему назначена роль super, роли TCF не имеют возможности полноценно отключить такого пользователя. Начиная с TCF 0.11.2, при работе приложения также отображается следующее сообщение:
tcf-worker: dml: dml user "dml-user" should not be granted with "super" role since super users cannot be disabled. Cluster status switch cannot properly process running super users connections. Please, rework user "dml-user" permissions. This may become an error in the future
Чтобы гарантировать корректную работу пользователей из списка dml_users, необходимо настроить их таким образом, чтобы они не имели роли super.