Database won't open / unreachable
Symptom
Cannot connect to the service, 'connection refused', the instance does not start, the listener does not respond.
1. Where does it break: network, service or instance
Is the server reachable (ping/ssh)? Is the DB process/service running (ps/systemctl/services.msc)? Is the port listening (ss -ltnp / telnet host port)? This places the problem in one layer: network / service / database instance.
2. Check the service and the listener
If the DB process is not up, try starting it; if it is up but connections fail, look at the listener/port and the auth layer.
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 startMySQL
-- OS: systemctl status mysqld ; mysqladmin pingSQL Server
-- Services / SQL Server Configuration Manager; SQL Server Error LogRedis
redis-cli ping # expect PONG3. Read the logs — the answer is there
If the DB does not open, the reason is written to the log: alert log (Oracle), postgresql.log / startup, mysqld error log, SQL Server ERRORLOG, redis log. Full disk, corrupted file, permissions, port conflict, missing file — all show up here.
4. Address common causes: disk, permissions, port, corruption
Is the disk 100% full (the most common cause)? Are data directory permissions broken? Is the port taken by another process? Is recovery needed (after a crash)? Is a control file/redo log corrupted? Target each one based on the message in the log.
5. Recover and keep an incident record
Crash recovery usually completes automatically; be patient. If there is corruption, recover from backup/PITR (see the Corruption playbook). Afterwards, write a root cause analysis (RCA): what happened, why, and how to prevent recurrence.