データベースがオープンしない / 到達不能
症状
サービスに接続できない、'connection refused'、インスタンスが起動しない、リスナーが応答しない。
1. どこで壊れているか: ネットワーク、サービス、インスタンス
サーバーに到達できるか (ping/ssh)。DB プロセス/サービスは動作しているか (ps/systemctl/services.msc)。ポートはリッスンしているか (ss -ltnp / telnet host port)。これで問題をネットワーク / サービス / データベースインスタンスのいずれかの層に特定する。
2. サービスとリスナーを確認する
DB プロセスが起動していなければ起動を試みる。起動しているのに接続が失敗する場合は、リスナー/ポートと認証層を確認する。
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. ログを読む — 答えはそこにある
DB がオープンしない場合、理由はログに書かれている: alert log (Oracle)、postgresql.log / 起動ログ、mysqld エラーログ、SQL Server ERRORLOG、redis ログ。ディスクフル、ファイルの破損、権限、ポートの競合、ファイルの欠落 — すべてここに現れる。
4. 一般的な原因に対処する: ディスク、権限、ポート、破損
ディスクが 100% 満杯ではないか (最も一般的な原因)。データディレクトリの権限が壊れていないか。ポートが別のプロセスに使われていないか。(クラッシュ後に) リカバリが必要か。制御ファイル/redo ログが破損していないか。ログのメッセージに基づき、それぞれに対処する。
5. 復旧し、インシデント記録を残す
クラッシュリカバリは通常自動で完了するので、辛抱強く待つ。破損がある場合はバックアップ/PITR から復旧する (破損プレイブックを参照)。その後、根本原因分析 (RCA) を書く: 何が起きたか、なぜか、再発をどう防ぐか。