Oracle DB の基礎概念

データベースとインスタンス

バックグラウンド・プロセスとSGA

Oracleのデータベースの構成

  • データベース
    • データファイル
    • REDOログ・ファイル
    • 制御ファイル
データファイル

実際のデータが格納されるファイルです。

REDOログ・ファイル

データベースに対する更新の履歴を記録しているファイルです。

制御ファイル

データベースを構成するファイルの情報を記憶するファイルです。

Oracleのプロセス構成

  • インスタンス
    • バックグラウンド・プロセス
      • PMON(プロセス・モニター)
      • SMON(システム・モニター)
      • DBWn(データベース・ライター)
      • LGWR(ログ・ライター)
      • CKPT(チェックポイント・プロセス)
      • ARCH(アーカイバー・プロセス)
PMON(プロセス・モニター)

他のプロセスの監視や、ロックの監視などを行います。

SMON(システム・モニター)

データベースの整合性チェックやデータベースの監視を行います。

DBWn(データベース・ライター)

データファイルへデータを書き込みます。
nは通常0になりますが、複数起動させることができます。

LGWR(ログ・ライター)

REDOログファイルに更新情報を書き込みます。

CKPT(チェックポイント・プロセス)

チェックポイントが発生したときにデータファイルと制御ファイルを更新し、データベースの整合性を維持します。

ARCH(アーカイバー・プロセス)

アーカイブ・ログ・モードの際にアーカイブ・ログを出力します。

SGA と PGA

  • インスタンス
    • SGA(System Global Area)
      • 共有プール
      • データベース・バッファ・キャッシュ
      • REDOログ・バッファ
      • JAVAプール
      • ラージ・プール
共有プール

SQL文やPL/SQLをキャッシングするライブラリ・キャッシュと、ディクショナリのデータをキャッシングするディクショナリ・キャッシュ等から構成されるキャッシュ領域です。

データベース・バッファ・キャッシュ

データファイル上のテーブルやインデックスのデータをキャッシングする領域です。

REDOログ・バッファ

REDOログファイルへ書き出す情報をバッファリングする領域です。

JAVAプール

JAVAストアドをキャッシングする領域です。

ラージ・プール

バックアップやリカバリ、マルチスレッドサーバーなどで利用される領域です。

Oracleのデータファイルの構造

  • データベース
    • データファイル
      • 表領域 [ セグメントn [ エクステントn [ ブロックn ] ] ]

Oracleのデータベースのデータファイルは、ブロックと呼ばれる単位に区切られています。
OracleのデータファイルのI/Oは実際のレコード単位ではなく、このブロックの単位で行われます。

SIDとデータベース名の違い

SID != DB名

SIDは System IDentifer の略で、データベースを識別する識別子です。

Oracleで必要な環境変数

ORACLE_HOME

Oracleをインストールしているディレクトリを指定します。

ORACLE_BASE

Oracle関連の最上位ディレクトリを指定します。
主に複数バージョンのOracleをマシン内に同居させる際に指定します。

ORA_NLS33

キャラクタ・セット関連のファイルが格納されているディレクトリを指定します。

ORACLE_DOC

ドキュメント関連のファイルが格納されているディレクトリを指定します。

ORACLE_SID

ローカル接続するSIDを指定します。

PATH

Oracleの実行ファイルのパスを設定します。

ディクショナリとは

USER_~で始まるディクショナリ

自分が所有しているオブジェクトのみを表示します。

ALL_~で始まるディクショナリ

自分が参照することが可能なオブジェクトのみを表示します。

DBA_~で始まるディクショナリ

DBに存在する全該当オブジェクトを表示します。