Откат
Данный раздел рассматривает процесс отката СУБД Pangolin.
Процесс отката/восстановления встроен в процесс обновления. Отдельный запуск скрипта отката не предусмотрен.
Откат возможен только на исходную версию, с которой производилось обновление. Для ориентирования по поддерживаемым версиям обновления воспользуйтесь таблицей.
Содержание
- Восстановление после неудачного обновления с переносом данных
- Восстановление после неудачного обновления исполняемых файлов
Описание
Действия, описанные ниже, нужно выполнять суперпользователем.
Для определения необходимости восстановления СУБД к исходному состоянию, необходимо изучить лог.
-
Определите причину падения. Поиск падения осуществляется по ключевым словам в логе, такие как:
['failed!', 'failed: true', 'fatal:']
. -
Локализуйте место падения по названию задачи:
TASK [print msg ERROR (update_errors)]
.Пример сообщения о падении
ok: [master] => changed=false
{
"ansible_facts": {
"update_errors": {
"aggregate": true,
"components": {
"finally": false
"pangolin_auth_reencrypt": false
"pangolin_backup_tools": false
"pangolin_certs_rotate": false
"pangolin_checks": false
"pangolin_configuration": false
"pangolin_dbms": false
"pangolin_diagnostic_tool": false
"pangolin_manager": false
"pangolin_pooler": true
"pangolin_security_utilities": false
"pangolin_tuner": false
},
"hosts": {
"etcd": true,
"master": true,
"replica": true
},
"types": {
"configuration": {
"finally": true,
"main": true
},
"etcd": {
"finally": true,
"main": true
},
"patroni": {
"finally": true,
"main": true
},
"pg": {
"bootstrap": true,
"major_main_migrate_master_db": true,
"major_main_migrate_replica_db": true,
"major_main_start_after_migrate_db": true,
"major_post": true,
"major_pre": true,
"not_started_db": true,
"remove_pgaudit": true,
"role_switched": true,
"started_db": true
},
"src": {
"install_pg_probackup": true,
"main": true
}
}
}
}
}где:
-
components
- информация о том, на каком этапе упало обновление; -
hosts
- информация о том, на каком из хостов возникла ошибка; -
types
- информация о типе ошибки.
Если ошибка произошла при работе механизма обновления, то ключ
aggregate
должен иметь значениеtrue
. В секцииcomponents
только один ключ должен иметь значениеtrue
- это и будет означать место падения. -
-
Более детальное объяснение можно найти по названию задачи:
TASK [print msg ERROR about fail component]
. Пример развернутого сообщения об ошибкеmsg: RLM.FAIL__E05008:Обнаружена ошибка при настройке компонента pangolin-pooler.__RLM.FAIL
Возможные вари анты ошибок падения при обновлении:
«FAIL__E03099:В процессе обновления системных каталогов возникли ошибки. Процесс дальнейшего обновления остановлен. Автоматическое восстановление невозможно. Необходимо произвести анализ состояния стенда вручную и восстановить его к исходному состоянию или дообновить.FAIL;
«FAIL__E05002:В процессе обновления возникла ошибка. Восстановление СУБД для данного типа ошибки недоступно. Ознакомьтесь с логами.FAIL»;
«FAIL__E03098:В процессе обновления системных каталогов возникли ошибки. Процесс дальнейшего обновления остановлен. Будет запущено автоматическое восстановление.FAIL»;
«FAIL__E03100:В процессе синхронизации узлов кластера возникли ошибки. Процесс дальнейшего обновления остановлен. Автоматическое восстановление невозможно. Необходимо произвести анализ состояния стенда вручную и восстановить его к исходному состоянию или дообновить.FAIL»;
«FAIL__E03103:В процессе запуска лидирующего узла возникли ошибки. Не удалось получить корректный статус роли. Процесс дальнейшего обновления остановлен. Автоматическое восстановление невозможно. Необходимо произвести анализ состояния стенда вручную и восстановить его к исходному состоянию или дообновить.FAIL»;
«FAIL__E03103:В процессе запуска лидирующего узла возникли ошибки. Не удалось получить корректный статус роли. Процесс дальнейшего обновления остановлен. Автоматическое восстановление невозможно. Необходимо произвести анализ состояния стенда вручную и восстановить его к исходному состоянию или дообновить.FAIL»;
«FAIL__E05006:Не удалось выполнить восстановление версии из локальной резервной копии.FAIL»;
«FAIL__E05007:В процессе сбора необходимой для старта обновления СУБД информации произошла ошибка. СУБД находится в исходном состоянии, восстановление не требуется.FAIL»;
«FAIL__E05010:Обнаружена ошибка в процессе подготовки перед обновлением СУБД Pangolin.FAIL»
«FAIL__E05012:Обновление невозможно продолжить, так как не удается остановить, работающую утилиту перешифрования паролей pangolin-auth-reencrypt.FAIL».
-
Восстанавливать СУБД нужно, если последней строкой записи является:
- «В процессе обновления возникла ошибка»;
- «Восстановление СУБД Pangolin в автоматическом режиме недоступно для этого типа ошибки»;
- «Автоматическое восстановление СУБД отключено»;
- «Восстановление СУБД Pangolin запущено»;
-
Восстанавливать СУБД не нужно, если после дней строкой записи является:
- «Обновление СУБД Pangolin успешно завершено»;
- «Восстановление СУБД Pangolin успешно завершено».
Откат вручную к исходной версии и состоянию кластера
Восстановление после неудачного обновления с переносом данных
Восстановление после неудачного обновления с переносом данных.
Восстановление после неудачного обновления исполняемых файлов
Восстановление после неудачного обновления исполняемых файлов.