PmaControl logo PmaControl
  • Главная
  • PmaControl
    • ИИ-агенты 13 on-premise агентов
    • Тарифы Community, Cloud, On-Premise, Premium
    • Документация Руководства, API, архитектура
    • История версий Все стабильные версии 5.x
    • Маркетплейс Плагины сообщества
    • Клиенты 28+ компаний
    • FAQ 25 вопросов / 7 категорий
    Базы данных
    • MariaDB 35 статей
    • MySQL 15 статей
    • Galera Cluster 6 статей
    • MaxScale 4 статьи
    • ProxySQL 3 статьи
    • Amazon Aurora MySQL 0 статьи
    • Azure Database 0 статьи
    • ClickHouse 0 статьи
    • GCP CloudSQL 0 статьи
    • Percona Server 0 статьи
    • SingleStore 0 статьи
    • TiDB 0 статьи
    • Vitess 0 статьи
    Решения
    • Поддержка 24×7 Экстренная помощь MariaDB & MySQL
    • Observabilité SQL Мониторинг, алерты, топология
    • Haute disponibilité Репликация, failover, Galera
    • Disaster Recovery Backup, restore, RPO/RTO
    • Sécurité & conformité Аудит, GDPR, SOC2
    • Migration & upgrade Zero downtime, pt-osc, gh-ost
  • Тарифы
  • Ресурсы
    • Документация Технические руководства и API
    • Центр оптимизации MySQL Markdown-индекс, метрики, параметры, инциденты
    • FAQ 25 частых вопросов
    • Отзывы Отзывы клиентов и кейсы
    • Блог Статьи и аналитика
    • Roadmap Планируемые функции
    Области экспертизы
    • Observabilité SQL Мониторинг, алерты, топология Dot3
    • Haute disponibilité Репликация, failover, Galera
    • Sécurité & conformité Аудит, GDPR, SOC2, ISO 27001
    • Disaster Recovery Backup, restore, RPO/RTO
    • Performance & optimisation Digests, EXPLAIN, tuning
    • Migration & upgrade Zero downtime, pt-osc
    Быстрые ссылки
    • Wiki GitHub 26 страниц — установка, движок, плагины
    • Исходный код Официальный репозиторий GitHub
    • Поддержка 24×7 Экстренная помощь MariaDB & MySQL
    • Записаться на демо 30 мин — реальная архитектура
  • Поддержка 24×7
  • Записаться на демо
Записаться на демо
🇫🇷 FR Français 🇬🇧 EN English 🇵🇱 PL Polski 🇷🇺 RU Русский 🇨🇳 ZH 中文 🇸🇦 AR العربية
Ресурсы › Центр оптимизации MySQL › Проверки состояния MySQL

Проверки состояния MySQL

Структурированная Markdown-документация для диагностики, измерения и оптимизации MySQL.

Эта страница является оригинальной документацией PmaControl. Она сохраняет практичную структуру индекса для работ по оптимизации MySQL, не копируя сторонний контент и не завися от внешнего продукта.

Цель

Health check MySQL проверяет эксплуатационное состояние сервера: доступность, запас по ресурсам, согласованность лимитов, отсутствие критичных сигналов и минимальное качество конфигурации.

Основные проверки

  1. Uptime и недавние перезапуски.
  2. Насыщение соединений относительно max_connections.
  3. Доля дисковых чтений из buffer pool.
  4. Временные таблицы, созданные на диске.
  5. Ошибки соединений и Aborted_clients.
  6. Долгие блокировки, deadlock-и и ожидающие запросы.
  7. Свободное место для datadir, binary logs и redo logs.

Базовый SQL

SHOW GLOBAL STATUS LIKE 'Uptime';
SHOW GLOBAL STATUS LIKE 'Max_used_connections';
SHOW GLOBAL STATUS LIKE 'Created_tmp_disk_tables';
SHOW ENGINE INNODB STATUS\G

Интерпретация

Health check не должен быть только красно-зеленым списком. Он должен объяснять влияние, приоритет и способ подтверждения диагноза.

Начните с идентификации и свежего снимка

Запишите имя узла, версию, роль, время наблюдения и влияние на приложение. Проверьте весь путь от приложения через прокси к базе: успешное SQL-соединение не доказывает доступность нужного узла записи для клиентов. Определите последний исправный период и сопоставьте перезапуски с развёртываниями, событиями узла и журналом ошибок.

SELECT NOW() AS observed_at, @@hostname AS hostname,
       VERSION() AS server_version, @@global.read_only AS read_only;
SHOW GLOBAL VARIABLES WHERE Variable_name IN (
  'max_connections', 'datadir', 'tmpdir', 'log_error'
);
SHOW GLOBAL STATUS WHERE Variable_name IN (
  'Uptime', 'Threads_connected', 'Threads_running',
  'Max_used_connections', 'Connection_errors_max_connections',
  'Aborted_clients', 'Aborted_connects', 'Innodb_log_waits',
  'Innodb_buffer_pool_reads', 'Innodb_buffer_pool_read_requests',
  'Created_tmp_tables', 'Created_tmp_disk_tables'
);

Оценивайте темпы и нагрузку, а не отдельные суммы

Для растущих счётчиков используйте две выборки за один непрерывный интервал. Доля физических чтений = ΔInnodb_buffer_pool_reads / ΔInnodb_buffer_pool_read_requests при положительном знаменателе. Это чтения мимо буферного пула, а не оценка исправности диска; сравните также чтения в секунду и задержку хранилища. Max_used_connections — максимум после сброса, а Threads_connected — текущее значение. Спящие соединения и активная работа по-разному расходуют ресурсы.

Доля дисковых временных таблиц — лишь подсказка. Переполнение MySQL TempTable в отображаемые файлы не полностью отражается в Created_tmp_disk_tables; низкая доля не доказывает работу только в RAM. Рост прерванных соединений требует проверки приложения, тайм-аутов и сети до вывода о неисправности базы.

Проверьте транзакции, реплики и узел

SELECT trx_id, trx_state, trx_started, trx_mysql_thread_id,
       trx_rows_locked, trx_rows_modified
FROM information_schema.innodb_trx
ORDER BY trx_started
LIMIT 20;
SHOW ENGINE INNODB STATUS\G

Старая транзакция может бездействовать, удерживая блокировки или задерживая очистку. До остановки определите владельца и бизнес-операцию: откат также занимает время. На реплике MySQL 8.0.22+ проверьте SHOW REPLICA STATUS\G: получение, применение, последние ошибки и отставание. MariaDB и старый MySQL используют команды и поля своей версии. Нулевое отставание не гарантирует свежесть: проверьте прикладную контрольную отметку и каждый канал.

df -h /var/lib/mysql
df -i /var/lib/mysql
vmstat 1 5

Замените пример пути фактическим datadir и проверьте отдельные разделы временных файлов и бинарных журналов. Оцените свободные байты, inode, задержку I/O, давление памяти и активный обмен со swap. Исключайте первый отчёт vmstat из интервальных сравнений. Подтвердите резервные копии успешным восстановлением, измеренным временем и требуемой точкой восстановления, а не только завершением задания.

Расставьте приоритеты

Сигнал Следующее действие
Недоступный узел записи или полный диск Немедленное восстановление, сохранение свидетельств
Рост ошибок, ожиданий или отставания Сопоставьте с текущим влиянием на клиентов
Исторический максимум без текущей нагрузки Анализ тренда и запаса ресурсов

Продолжение диагностики

  • В оценке производительности запишите ответственного, свидетельства и дату проверки.

Официальные источники

  • MySQL replication status
  • MySQL internal temporary tables
PmaControl
+33 6 63 28 27 47 contact@pmacontrol.com
Юридическая информация GitHub Контакты
Не ждите инцидента, чтобы понять свою архитектуру. © 2014-2026 PmaControl — 68Koncept