Базы данных
PostgreSQL, CloudNativePG, Amazon RDS и MySQL InnoDB Cluster: репликация, переключения, пулы соединений и восстановление.
8 статей
- RDS отказывал в подключениях при 10% CPU: дефолтные пулы, умноженные на репликиНагрузочные тесты упирались в ровное плато ~420 подключений, и просили «базу побольше». Реальный потолок — max_connections против дефолтных пулов Npgsql.
- Argo CD показывал Synced, а API-сервер молча выкинул мой фиксМесяцы без метрик, фикс уже в git и зелёный Synced. Поля не было в схеме CRD, API-сервер его отрезал, и никто не пожаловался.
- Реплика Postgres 23 часа крутилась в цикле pg_rewind: пересоздавать, а не чинитьПосле failover реплика CloudNativePG не смогла сделать rewind: её WAL-сегменты были нулевого размера, а каталог данных — в десять раз меньше, чем у primary. 23 часа никто не заметил, потому что метрики оператора не собирались.
- Переезд продового Postgres с RDS Multi-AZ instance на Multi-AZ DB clusterПлановый cutover почти без потери данных — и три ловушки: «техработы», которые не остановили запись, пароли, которые RDS не даёт скопировать, и дамп за 25 минут через VPN против 31 секунды внутри VPC.
- Перевод CloudNativePG на плагин Barman Cloud без разрыва архиваCNPG убирает встроенную поддержку barmanObjectStore. У переключения нет валидного промежуточного состояния, у базы не было ни одного базового бэкапа, а один путь решает, работает ли ещё point-in-time recovery.
- ONLINE_UNCERTAIN: когда MySQL-оператор и база не согласныRouter флапает, оператор два дня висит в блокировке, CRD застыл на 2/3 — а все три члена InnoDB Cluster здоровы. Лечится одним rescan метаданных.
- Три инцидента, которые были одним: IP базы, зашитый в конфиг500 на логине, бэкенды в CrashLoopBackOff и зависший деплой выглядели как три проблемы. Все три оказались одним захардкоженным IP базы в конфиге pgbouncer.
- Пять дней на 1/3 при зелёных дашбордах: когда статус CRD врётMySQL InnoDB Cluster пять дней работал без HA, а статус ресурса, фаза подов и readiness gate показывали здоровье. Все три сигнала шли от одного зависшего оператора.