Oracle Database 単一インスタンスの起動・停止ガイド

オラクルデータベースの基本

― 停止モードの違いを徹底理解 ―

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 後は必ず STARTUPSHUTDOWN 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は整合性無視の緊急停止。その後にSTARTUPIMMEDIATE推奨
停止モードの選び方原則IMMEDIATE。TRANSACTIONALは特殊用途。NORMALは実務で使わない。
操作ユーザーoracleユーザー、sqlplus / as sysdba で実行

Oracle Databaseの停止処理は、一歩間違えるとシステムトラブルに直結します。
停止モードの意味と違いを理解し、目的や状況に応じて正しく使い分けることが、安定運用への第一歩です。

[参考]
3 起動と停止

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました