DBAtlas · Атлас эксплуатации баз данных

База данных не открывается / недоступна

Симптом

Не удаётся подключиться к сервису, 'connection refused', экземпляр не запускается, listener не отвечает.

1. Где обрыв: сеть, сервис или экземпляр

Доступен ли сервер (ping/ssh)? Запущен ли процесс/сервис БД (ps/systemctl/services.msc)? Слушается ли порт (ss -ltnp / telnet host port)? Это локализует проблему на одном уровне: сеть / сервис / экземпляр базы данных.

2. Проверьте сервис и listener

Если процесс БД не запущен, попробуйте его запустить; если запущен, но подключения не проходят, проверьте listener/порт и уровень аутентификации.

Oracle

-- OS: lsnrctl status  (listener)
-- SQL*Plus: STARTUP;  (if the instance is down)
SELECT status FROM v$instance;

PostgreSQL

-- OS: systemctl status postgresql ; pg_isready -h host
-- Logs: the last lines tell why it did not start

MySQL

-- OS: systemctl status mysqld ; mysqladmin ping

SQL Server

-- Services / SQL Server Configuration Manager; SQL Server Error Log

Redis

redis-cli ping  # expect PONG

3. Читайте журналы — ответ там

Если БД не открывается, причина записана в журнале: alert log (Oracle), postgresql.log / startup, mysqld error log, SQL Server ERRORLOG, журнал redis. Заполненный диск, повреждённый файл, права доступа, конфликт портов, отсутствующий файл — всё видно здесь.

4. Разберите типичные причины: диск, права, порт, повреждение

Диск заполнен на 100% (самая частая причина)? Нарушены права на каталог данных? Порт занят другим процессом? Требуется восстановление (после сбоя)? Повреждён control file/redo log? Действуйте по каждому пункту исходя из сообщения в журнале.

5. Восстановите работу и зафиксируйте инцидент

Восстановление после сбоя (crash recovery) обычно завершается автоматически; наберитесь терпения. При повреждении восстанавливайтесь из бэкапа/PITR (см. плейбук «Повреждение данных»). После этого напишите анализ первопричины (RCA): что произошло, почему и как предотвратить повторение.

Открыть в DBAtlas →