Oracle Database Server(DBサーバ)は、Oracleのデータベース管理ソフトウェアがインストールされるマシンです。インストール前に理解しておくべき基本的な3つの重要なコンポーネントがあります:
🔹1. Oracleデータベースソフトウェアファイル
-
バイナリや実行ファイルで構成されている。
-
マシンの物理ディスクに格納される。
🔹2. データベースの物理ファイル
-
実際のデータや、DB運用に必要な内部情報を保存するファイル。
-
これも物理ディスクに保存されており、データベースの一部とされる。
🔹3. データベースインスタンス(Oracleインスタンス)
-
Oracle DBを起動すると、メモリ上に作成される構造体。
-
主に、SGA(共有メモリ領域)などのバッファ/キャッシュや、バックグラウンドプロセスで構成される。
-
インスタンスが特定のDBと関連付けられることを**「マウント」**と呼ぶ。
-
インスタンス起動後、DBがオープンされ、ユーザーがアクセス可能になる。
🔹補足用語
-
ユーザープロセス(USER PROCESS):クライアントアプリケーションの処理を担当。
-
サーバープロセス(SERVER PROCESS):インスタンスに接続し、ユーザープロセスの要求を処理。
-
PGA(プログラム・グローバル・エリア):ユーザーごとの処理情報が格納されるメモリ領域。
🖥️ 実際のサーバー上のOracle構成
-
サーバーに3つのターミナルで接続。
-
ORCLインスタンスは停止中でも、物理ファイルはすでに確認可能(物理ドライブに存在)。
-
Oracleソフトウェアのファイルも所定のディレクトリに存在(詳細は後のレッスンで)。
-
実行可能ファイルは
BIN
ディレクトリに格納されている。
🔧 Oracleインスタンスに接続する前の準備
-
root
ユーザーからoracle
ユーザーに切り替える。 -
Oracleインスタンスが停止中なら、
ORA_
で始まるバックグラウンドプロセスは存在しない。 -
SQL*Plus で接続しようとしても、環境変数を設定していないとエラーになる。
📁 必要な環境変数の設定
-
ORACLE_HOME
:Oracleの実行ファイルの場所を指定。 -
ORACLE_SID
:インスタンス名(複数DBがある場合の識別子)。 -
PATH
:Linuxが実行ファイルを探す場所の一覧にOracleのBINを追加。 -
変数設定後、SQL*Plusから接続できるようになる(IDLE=インスタンスが起動していない状態)。
⚙️ 環境変数の自動設定スクリプト:oraenv
-
ORACLE_SID
とORACLE_HOME
の設定を自動化。 -
$ORACLE_HOME/bin
も自動でPATHに追加される。
✅ インスタンスの起動
-
必要な変数を設定した後、Oracleインスタンスを起動。
-
メモリ領域(SGA)やバッファが確保され、DBがマウントされる。
-
インスタンスがDBと関連付けられ、バックグラウンドプロセスが起動したことが確認できる。
🗂 Oracleデータベースの構成ファイル(物理ファイル)
✅ 1. 制御ファイル(Control File)
-
データベース全体に関する情報を保持するファイル。
-
DBごとに1つは必須(冗長性のため複数コピー可)。
-
バックアップのメタデータも含まれる。
-
このファイルなしではDBを起動できない。
✅ 2. データファイル(Data Files)
-
ユーザーデータ、アプリケーションデータ、メタデータ、データディクショナリを保存。
✅ 3. オンラインREDOログファイル
-
トランザクションの変更履歴を記録。
-
クラッシュ後のインスタンスリカバリで使用。
-
データファイルが失われていない場合、これにより復旧が可能。
📂 その他の関連ファイル
ファイル名 | 役割 |
---|---|
初期化パラメータファイル(initファイル) | インスタンスやDBの設定に使用される |
パスワードファイル | SYSDBAなどの特権ユーザーがリモート接続・管理する際に必要 |
バックアップファイル | メディア障害やユーザー誤操作時の復元用 |
アーカイブログファイル | データ変更履歴の保存。バックアップと併用してデータファイルの復元が可能 |
トレースファイル(Trace Files) | 各サーバープロセスやバックグラウンドプロセスがエラー発生時に出力 |
アラートログファイル(Alert Log) | DB全体のエラーやメッセージを時系列で記録するログファイル |
💽 ファイルの保存場所について
-
これら物理ファイルは、OSのファイルシステム上に直接保存される場合もあれば、
-
**ASM(自動ストレージ管理)**というOracle専用のストレージ管理機能で管理される場合もあります。
📁 Linuxサーバーにおける主要ディレクトリと環境変数
🔧 環境変数(3つ)
変数名 | 内容 |
---|---|
ORACLE_BASE | Oracle関連ファイルのベースディレクトリ(例:/u01/app/oracle ) |
ORACLE_HOME | Oracleの実行ファイル(バイナリ)が置かれている場所 |
ORACLE_SID | 使用するデフォルトのインスタンス名(例:ORCL、SALESなど) |
🔍 ディレクトリ構造の例
-
/u01/app/oracle
(=ORACLE_BASE)-
oradata/
:データベースごとにサブディレクトリ(例:oradata/ORCL
)が存在。物理ファイルが格納。 -
diag/
:診断関連ファイル(ログ、トレース)が格納。サブディレクトリが多数。 -
product/
:Oracleソフトウェア本体。バージョンごとに格納(例:product/19.0.0
など)。
-
Oracleサーバー構成の種類とRACについて
🔸1. 単一インスタンス構成(Single Instance Database Server)
-
構成内容:Oracleソフトウェアが1つのサーバにインストールされ、1つのデータベースと、それに対応する1つのインスタンス(メモリ上の構造)を持つ構成。
-
用途:一般的な中小規模のシステムで使われる。
-
特徴:単純でセットアップが容易。
🔸2. 複数インスタンス構成(Multiple Instance Configuration)
-
構成内容:1台のサーバ上に複数のOracleデータベースと、それぞれのインスタンスを持つ構成。
-
特徴:同一サーバ上で複数のデータベースを分離して運用できる。
-
用途:テスト環境や共有リソースの効率的な利用など。
🔸3. Oracle RAC(Real Application Cluster)
-
構成内容:複数のサーバ(ノード)上に、それぞれ Oracle インスタンスを起動し、1つの共有データベースを同時に操作可能にするクラスタ構成。
-
特徴:
-
各ノードにインスタンスがあり、それらは同一の物理ファイル(共有ストレージ)にアクセス。
-
高可用性(HA)とスケーラビリティを実現。
-
インターコネクトを通じてインスタンス間でメモリ情報をやり取りする。
-
-
利点:
-
処理性能(スループット)の向上
-
障害時の可用性確保
-
🧪 Oracle RAC 実例の紹介
-
実際に RAC クラスタに接続し、複数のノードを確認。
-
srvctl
(Server Control Utility)を使い、各ノード上のデータベースやインスタンスの状態を確認。 -
例:
-
データベースには2つのインスタンス(1つ目は1stノード、2つ目は2ndノード)が存在。
-
物理ファイル(データファイルやログファイルなど)は、両ノードから共通の共有ストレージ上に存在。
-
実際に
ORACLE_SID
を変更し、それぞれのノードで同じファイルパスであることを確認。
-
📦 共有ストレージとファイルの扱い
-
RAC では、すべてのインスタンスが同じ物理ファイル(データベースファイル)にアクセスする必要があるため、
-
ファイルは**共有ストレージ(例:SAN、NAS、ASMなど)**上に配置される。
-
各ノードの環境変数
ORACLE_SID
を切り替えることで、対象インスタンスへの接続を制御できる。