― 停止モードの違いを徹底理解 ―
Oracle Database の起動・停止は日々の運用の中で頻繁に実施されますが、特に「停止モード」の違いを正確に理解することは非常に重要です。
本記事では、Oracle 単一インスタンス構成における起動と停止の手順を、初心者にもわかりやすく解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
🔰 1. 前提:操作に必要な環境
起動・停止を行うには、以下の条件を満たしておく必要があります。
【図解】前提条件
+---------------------------------------+
| OracleがインストールされているLinux環境 |
+---------------------------------------+
│
▼
+-----------------------------+
| oracleユーザーでログイン |
+-----------------------------+
│
▼
+---------------------------------------------+
| ORACLE_HOME / ORACLE_SID / PATH が設定済み |
+---------------------------------------------+
│
▼
+-----------------------------+
| SYSDBA権限でsqlplusに接続可能 |
+-----------------------------+
🚀 2. 起動処理の流れとコマンド
Oracleの起動には3つのフェーズがあります。通常の STARTUP コマンドではこれらが順に実行されます。
【図解】Oracle Databaseの起動フェーズ
STARTUP 実行
└─→ NOMOUNT(インスタンス起動:SGA+プロセス)
└─→ MOUNT(制御ファイル読み込み)
└─→ OPEN(データファイル・REDOログオープン)
✅ 起動手順
# 環境変数設定
$ export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
$ export ORACLE_SID=orcl
$ export PATH=$ORACLE_HOME/bin:$PATH
# SYSDBAで接続
$ sqlplus / as sysdba
# 起動コマンド
SQL> STARTUP
⛔ 3. 停止モードの違い(徹底解説)
Oracle Database の SHUTDOWN コマンドには、以下の4つのモードがあります。
| モード | 特徴と挙動(詳細) |
|---|---|
NORMAL | 現在ログインしているユーザーがすべてログアウトするまで待機。新規接続不可。セッションが終了するまでDBは停止しない。実運用では非推奨。 |
IMMEDIATE | 新規接続を拒否し、現在のSQL文は中断。全セッションを強制切断し、未完了トランザクションは自動でロールバック。その後、即座に停止。最も安全かつ推奨されるモード。 |
TRANSACTIONAL | 新規接続は拒否。すでに実行中のトランザクションが完了するまで待機し、その後セッション切断→停止。バッチ処理などに適するが実務使用頻度は少ない。 |
ABORT | 即時強制停止。整合性やロールバックを無視してインスタンスを終了。次回 STARTUP 時にインスタンスリカバリ(クラッシュリカバリ)が強制実行される。最終手段。 |
【図解】SHUTDOWNモードのイメージ
┌────────────┐
│ NORMAL │
│ → 待機型(ログアウト待ち)│
└────────────┘
┌──────────────┐
│ IMMEDIATE │
│ → 即切断+ロールバック │
└──────────────┘
┌────────────────┐
│ TRANSACTIONAL │
│ → トランザクション完了まで待機 │
└────────────────┘
┌────────────┐
│ ABORT │
│ → 即時停止(危険) │
└────────────┘
✅ 停止コマンド例(IMMEDIATE推奨)
$ sqlplus / as sysdba
SQL> SHUTDOWN IMMEDIATE
最も一般的で、安全に停止できるモードです。全セッションを自動で切断し、未完了トランザクションは Oracle がロールバックします。
❗ 強制停止が必要な場合(ABORT)
長時間フリーズしている場合や停止できない状況では以下を使用します。
SQL> SHUTDOWN ABORT
SQL> STARTUP
SQL> SHUTDOWN IMMEDIATE
ABORT後は必ずSTARTUP→SHUTDOWN IMMEDIATEを行い、正常状態へ戻すこと。
📊 4. 停止モードの比較表(実務向け)
| モード | 新規接続 | SQL中断 | トランザクション待機 | 停止タイミング | リカバリ必要 | 実務推奨度 |
|---|---|---|---|---|---|---|
| NORMAL | ✖ | ✖ | ✖ | ユーザーログアウト後 | 不要 | ×(非推奨) |
| IMMEDIATE | ✖ | ○ | ✖ | 即座 | 不要 | ◎(推奨) |
| TRANSACTIONAL | ✖ | ✖ | ○ | トランザクション完了後 | 不要 | △(特殊用途) |
| ABORT | ✖ | ✖ | ✖ | 即座 | 必要(次回) | ×(最終手段) |
🧠 5. 状態確認と補足コマンド
SQL*Plus上で状態確認
SQL> SELECT status FROM v$instance;
STATUS
-------
OPEN
プロセス確認(Linux)
$ ps -ef | grep pmon
oracle 12345 1 0 10:00 ? 00:00:00 ora_pmon_orcl
「ora_pmon_〇〇」があれば、Oracleインスタンスは起動中。
✅ 6. まとめ
| 項目 | 内容 |
|---|---|
| 起動コマンド | STARTUP |
| 停止モード(推奨) | SHUTDOWN IMMEDIATE(安全・即停止・リカバリ不要) |
| 停止モード(注意) | ABORTは整合性無視の緊急停止。その後にSTARTUP→IMMEDIATE推奨 |
| 停止モードの選び方 | 原則IMMEDIATE。TRANSACTIONALは特殊用途。NORMALは実務で使わない。 |
| 操作ユーザー | oracleユーザー、sqlplus / as sysdba で実行 |
Oracle Databaseの停止処理は、一歩間違えるとシステムトラブルに直結します。
停止モードの意味と違いを理解し、目的や状況に応じて正しく使い分けることが、安定運用への第一歩です。
[参考]
3 起動と停止
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?




コメント