この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:guest
更新日時:2026-06-11 07:10:02

タイトル: インスタンス
SEOタイトル: Oracle インスタンス 完全ガイド(SGA / バックグラウンドプロセス / データベースとの分離 / 起動と停止)

この記事の要点
  • Oracle は インスタンス(メモリ + プロセス)とデータベース(ファイル群)に分離している
  • インスタンス = SGA(共有メモリ) + バックグラウンドプロセス。データベースを「使うための実行環境」
  • データベース = データファイル + REDO ログファイル + 制御ファイル。永続化された情報そのもの
  • 通常は1 インスタンス : 1 データベース。RAC では複数インスタンスが 1 つのデータベースを共有
  • インスタンスは STARTUP / SHUTDOWN で起動・停止する

インスタンスとは

Oracle Database は、ほかの一般的な RDBMS とは少し違う独特の用語体系を持ちます。中でも重要な区別が 「インスタンス」と「データベース」の分離です。

用語正体性質
インスタンスSGA(共有メモリ)+ バックグラウンドプロセス群揮発性 — OS のメモリ上に存在。電源を切ると消える
データベースデータファイル / REDO ログ / 制御ファイル / パラメータファイル永続性 — ディスク上のファイル群

インスタンスは「データベースを使うための実行環境」、データベースは「データそのもの」と覚えるのが分かりやすいでしょう。データベースは存在するが、起動していなければアクセスできません。「インスタンスを起動する」=「メモリを確保してバックグラウンドプロセスを立ち上げる」です。

インスタンスを構成する 2 つの要素

1. SGA(System Global Area)

すべてのプロセスから共有される共有メモリ領域です。主な構成要素は次の通りです。

領域役割
データベースバッファキャッシュデータファイルから読み込んだブロックをキャッシュ
REDO ログバッファ更新内容を一時的にバッファし、後で REDO ログファイルに書き出す
共有プールSQL 文の実行計画やディクショナリ情報をキャッシュ
Large Poolバックアップやパラレル処理など大きな割り当てが必要なオブジェクト用
Java Pool / Streams PoolJava プロシージャや Streams 機能用

2. バックグラウンドプロセス

SGA を読み書きし、データファイルやログファイルとやり取りする常駐プロセス群です。

プロセス役割
DBWn(DB Writer)バッファキャッシュの更新済みブロックをデータファイルに書き出す
LGWR(Log Writer)REDO ログバッファを REDO ログファイルに書き出す(COMMIT 時に重要)
CKPT(Checkpoint)チェックポイントを発生させ、制御ファイル・ヘッダを更新
SMON(System Monitor)クラッシュリカバリ、一時セグメントの解放
PMON(Process Monitor)異常終了したセッションのクリーンアップ
ARCn(Archiver)REDO ログをアーカイブ領域にコピー(ARCHIVELOG モード時)

データベースとの違い

「データベース」と呼ぶ実体は、ディスク上の以下のファイル群です。

  • データファイル(.dbf) — 実際のデータ本体
  • REDO ログファイル — 更新履歴。リカバリに必須
  • 制御ファイル — データベースの構成情報(ファイルの場所など)
  • パラメータファイル(spfile / pfile) — インスタンス起動時の設定
  • アーカイブログ(任意) — REDO ログを長期保存

これらは電源を落としてもディスク上に残ります。インスタンスは起動時に制御ファイルを読み、SGA を確保し、データファイル・REDO ログをマウントしてオープンします。

1 インスタンス : 1 データベースが基本

通常のシングル構成では 1 インスタンスが 1 データベースを開く関係です。一方、Oracle RAC(Real Application Clusters)では複数ノードの複数インスタンスが同一のデータベースを共有します。これは可用性とスケールアウトのための構成です。

構成インスタンス数データベース数
シングル11
RAC2 以上1(共有)
マルチテナント(CDB/PDB)11 CDB + 複数 PDB

起動と停止

インスタンスは SQL*Plus で SYSDBA 権限で接続して起動・停止します。

-- 起動
sqlplus / as sysdba
SQL> STARTUP;
-- NOMOUNT → MOUNT → OPEN の 3 段階を経て稼働状態に

-- 停止
SQL> SHUTDOWN IMMEDIATE;
-- 接続中のセッションをロールバックして停止
状態意味
NOMOUNTSGA とバックグラウンドプロセスは起動。データベースはまだ開いていない
MOUNT制御ファイルを読み込んだ状態。リカバリ作業はここで実施
OPENデータファイル・REDO ログがオープン。通常利用可能

SHUTDOWN の種類

コマンド挙動
SHUTDOWN NORMAL新規接続を拒否し、既存セッションが切れるまで待機
SHUTDOWN TRANSACTIONAL進行中トランザクション完了を待ってからセッション切断
SHUTDOWN IMMEDIATEセッションをロールバックして即時停止(一般的に使われる)
SHUTDOWN ABORT強制停止。次回起動時にクラッシュリカバリが必要

セッションとプロセスの関係

クライアントが Oracle に接続すると、セッションが確立されます。サーバ側には対応するサーバプロセス(専用サーバ構成)または共有サーバが割り当てられ、それぞれが PGA を持ちます。SGA を経由してデータをやり取りし、コミット時には LGWR が REDO ログを永続化します。

要素所有者共有範囲
SGAインスタンス全プロセスで共有
PGA各サーバプロセス個別(共有しない)
セッション各クライアント接続個別

FAQ

Q: インスタンス名(ORACLE_SID)とは?
A: 同じ OS 上で複数のインスタンスを区別する識別子。環境変数 ORACLE_SID で「どのインスタンスに接続するか」を切り替えます。

Q: PGA は SGA に含まれない?
A: 含まれません。PGA はサーバプロセスごとのメモリで、共有されません。詳細は PGA 記事を参照。

Q: インスタンスだけ再起動できる?
A: SHUTDOWNSTARTUP で実質的に再起動可能。データベース本体(ファイル)はそのままです。

Q: マルチテナント構成(CDB / PDB)ではどうなる?
A: 1 つの CDB インスタンスが複数の PDB を抱える構造になります。ALTER PLUGGABLE DATABASE で個別 PDB の起動・停止ができますが、インスタンスそのものは CDB に紐付きます。

関連