Исходная ситуация
Заказчик обратился в службу технической поддержки с критическим инцидентом: производственная информационная система (MES) полностью потеряла возможность подключения к кластеру PostgreSQL. Также отсутствовала возможность подключения к базе данных средствами администрирования.
Инцидент имел максимальный приоритет, поскольку привел к остановке работы производственного приложения и риску простоя бизнес-процессов.
Проведенная диагностика
Специалисты технической поддержки выполнили комплексную диагностику инфраструктуры и установили основную причину возникновения проблемы.
В ходе анализа было выявлено:
- критическая нехватка свободного места на всех узлах кластера;
- значительный объем накопленных системных журналов;
- переход отказоустойчивого кластера в предаварийное состояние;
- невозможность выполнения штатной работы сервисов базы данных.
Дополнительно была проведена оценка состояния самой базы данных, чтобы исключить влияние избыточного роста таблиц и внутренних структур хранения данных.
Принятые технические решения
Для максимально быстрого восстановления работоспособности было принято решение отказаться от выполнения ресурсоемких операций обслуживания базы данных и сосредоточиться на восстановлении инфраструктуры кластера.
В рамках работ были выполнены:
- очистка устаревших системных журналов;
- освобождение дискового пространства на всех узлах;
- восстановление работы сервисов PostgreSQL;
- реинициализация отказавших узлов кластера;
- проверка состояния базы данных на предмет критического раздутия таблиц;
- расширение дискового пространства на всех узлах кластера для предотвращения повторного возникновения ситуации.
Что нельзя было делать
После анализа состояния кластера было установлено, что причиной отказа стала критическая нехватка свободного дискового пространства. В подобных условиях выполнение стандартных операций обслуживания базы данных могло привести к полной остановке кластера и увеличению времени восстановления.
Поэтому было принято решение не выполнять:
- сжатие (VACUUM FULL) и другие операции реорганизации таблиц, требующие значительного объема свободного места;
- перестроение индексов;
- любые ресурсоемкие операции обслуживания базы данных до восстановления работоспособности инфраструктуры;
- изменения конфигурации, не связанные с устранением первопричины инцидента.
Что было сделано
В течение одного рабочего дня удалось полностью восстановить функционирование кластера баз данных и вернуть производственную систему к штатной работе.
В результате проведенных работ специалисты:
- восстановили работоспособность отказоустойчивого кластера PostgreSQL;
- обеспечили корректную синхронизацию всех узлов;
- восстановили доступ производственного приложения к базе данных;
- увеличили запас свободного дискового пространства;
- подтвердили отсутствие критических проблем со структурой базы данных;
- подготовили рекомендации по дальнейшей эксплуатации и контролю использования дисковых ресурсов.
Заказчик подтвердил успешное устранение проблемы и корректную работу производственной системы после завершения работ.