1.

Oracle物理構造|データファイル・制御ファイル・REDOログ

編集
この記事の要点
  • Oracle データベースの物理構造とは、データベースを構成するOS 上の実ファイル群のこと
  • 主要な物理ファイルは データファイル制御ファイルREDO ログファイル の 3 種類
  • 補助的な物理ファイルとして 一時ファイルアーカイブログパラメータファイル (SPFILE / PFILE)パスワードファイル がある
  • 論理構造(表領域・セグメント・エクステント・ブロック)と対になる概念で、論理構造は物理ファイル上にマッピングされる
  • 冗長化・バックアップ・リカバリの設計はすべて物理構造の理解が前提になる

Oracle の物理構造とは

Oracle データベースの物理構造とは、データベースを構成するOS 上の実ファイルの集合を指します。ユーザがテーブル・ビュー・索引・ストアドプロシージャといった「論理的な」オブジェクトを扱う一方で、それらは必ずディスク上の物理ファイルに格納されます。バックアップ・リカバリ・パフォーマンスチューニングを行うには、まずどんなファイルがどんな役割を持つかを知っておく必要があります。

物理ファイルの全体像

種別役割必須/任意
データファイル表・索引・データ本体の永続化先必須
制御ファイルDB 構成のメタ情報(DBID、ファイル位置、SCN)必須
オンライン REDO ログファイルすべての変更履歴を時系列で記録必須
一時ファイルソートやハッシュ結合の作業領域実用上必須
アーカイブログファイルREDO の永続バックアップ(ARCHIVELOG モード時)任意
SPFILE / PFILE初期化パラメータの保管先必須
パスワードファイルSYSDBA 等の特権ユーザ認証用任意
アラートログ / トレースファイル稼働ログ・エラー記録運用上必須

1. データファイル (Data File)

テーブルや索引、LOB といったユーザデータの実体を格納する物理ファイルです。拡張子は通常 .dbf。1 つ以上の表領域 (TABLESPACE) に紐付き、表領域は複数のデータファイルで構成できます。データファイルの中はさらにセグメント → エクステント → データブロックという論理単位で管理されます。

-- データファイルの一覧確認
SELECT file_id, file_name, tablespace_name, bytes/1024/1024 AS mb
FROM dba_data_files
ORDER BY tablespace_name, file_id;

-- データファイルを追加(USERS 表領域に 1GB 追加)
ALTER TABLESPACE users
  ADD DATAFILE '/u01/app/oracle/oradata/orcl/users02.dbf'
  SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE 10G;

2. 制御ファイル (Control File)

制御ファイルは、データベースの物理構造を記述する小さなバイナリファイルです。DBID、データファイルと REDO ログファイルの場所、現在の SCN(System Change Number)、バックアップ履歴(RMAN 使用時)などを保持します。これが壊れると DB が起動できなくなるため、必ず複数の場所にミラーリングするのが鉄則です。

-- 制御ファイルの位置確認
SELECT name FROM v$controlfile;

-- 制御ファイルのバックアップ(人間可読の SQL 形式で)
ALTER DATABASE BACKUP CONTROLFILE TO TRACE
  AS '/tmp/ctl_backup.sql' REUSE;

3. オンライン REDO ログファイル (Online Redo Log)

すべてのトランザクション変更が確定前に逐次書き込まれるファイルで、障害復旧の生命線です。2 つ以上のログ・グループを循環書き込みします。各グループはメンバーと呼ばれる実ファイルで構成され、複数メンバーに同時書き込みすることで多重化できます。

-- REDO ログの構成確認
SELECT group#, member FROM v$logfile;
SELECT group#, bytes/1024/1024 AS mb, status, archived
FROM v$log;

-- ログ・スイッチ(手動切替)
ALTER SYSTEM SWITCH LOGFILE;

4. 一時ファイル (Temp File)

大きなソート、ハッシュ結合、グローバル一時表などの作業領域として使うファイルです。TEMP 表領域に属し、データファイルと違い永続データを保持しないため、消失しても DB の整合性は崩れません(再作成は必要)。

5. アーカイブログ (Archive Log)

ARCHIVELOG モードで運用していると、オンライン REDO ログが上書きされる前に別ディレクトリ(高速リカバリ領域)に永続コピーされます。これがアーカイブログで、ポイントインタイムリカバリやスタンバイ DB の同期に不可欠です。

-- ARCHIVELOG モードかどうか
SELECT log_mode FROM v$database;

-- 高速リカバリ領域の使用状況
SELECT * FROM v$recovery_file_dest;

6. パラメータファイル (SPFILE / PFILE)

インスタンス起動時に読み込まれる初期化パラメータを保持します。バイナリの SPFILE(推奨)とテキストの PFILE があり、SPFILE はオンラインで ALTER SYSTEM SET ... SCOPE=BOTH で書き換え可能です。

7. パスワードファイル / アラートログ

  • パスワードファイル: SYSDBA 等の特権ユーザを OS 認証以外でログインさせる際に使う
  • アラートログ: インスタンスの起動・停止、ログスイッチ、ORA エラーが時系列で記録される運用の必読ログ
  • トレースファイル: 障害時に Oracle が出力する詳細ダンプ

物理構造と論理構造の対応

論理物理
データベースすべての物理ファイル群
表領域 (TABLESPACE)1 つ以上のデータファイル
セグメント(表・索引等)データファイル内の領域
エクステント連続したデータブロックの塊
データブロックOS ブロックの倍数(既定 8KB)

運用上のポイント

  • 制御ファイルと REDO ログファイルは必ず多重化(別ディスクに配置)
  • 本番運用はARCHIVELOG モード+ RMAN バックアップが基本
  • SPFILE はオンラインで変更可能なため、PFILE 直接編集はトラブル時のみ
  • アラートログは監視ツールで常時チェックし、ORA-600 / ORA-7445 を早期検出する

子ページから選択してください

本サイトでは、各物理ファイルの詳細を子ページで解説しています。サイドメニューからデータファイル・制御ファイル・REDO ログファイルを選択してください。

関連記事

編集
Post Share
子ページ
  1. データファイル
  2. 制御ファイル
  3. REDOログファイル (物理構造 Oracle)
同階層のページ
  1. 物理構造
  2. 論理構造

最近更新/作成されたページ