プロとしてのOracle入門を読むことにした

§1. データベースとは

データベース管理システムはかつてはカード型や階層型,ネットワーク型というものがあったようだが,ここ半世紀はRDBMS(Relational DataBase Management System)全盛時代.RDBMSは情報を「テーブル」単位でまとめ,「テーブル」と「テーブル」の関係を表す.

RDBMSを最初に商品化したのは,Oracle社のOracle Database.Oracleはマルチプラットフォームで充実したドキュメントがあることで知られる.

§2. Oracle の仕組み

Oracleの内部構造は次のような図で表される

r5zu1

(出典 http://www.atmarkit.co.jp/ait/articles/0509/16/news131.html)

下の「制御ファイル」「データファイル」「REDOログファイル」「アーカイブログファイル」は全てハードディスク上(のデータベース)にある.

一方,上半分の「共有プール」「データベースバッファキャッシュ」「REDOログバッファ」はメモリ上(のインスタンス)にある.

水色で囲まれたCKPT,PMON,LGWR等は全てバックグラウンドプロセスである.

  • データベース
    データベースが必要とするデータには主に二つある

    • ユーザーが使用するデータ
    • Oracleが管理上必要なデータ(データディクショナリ)
      • 制御ファイル
        データベースの物理構造(ハードディスク上の保存場所やファイル名等の物理的にデータが保存されている場所)が保存されている.
      • REDOログファイル
        処理をやり直すために必要なデータが記録されているファイル
        冗長化されていることが特徴.ただし,REDOログファイルが肥大化しないよう決まったサイズのファイルを複数用意し,それらを循環して保存する.
  • インスタンス
    インスタンス上にある構成要素は主に次の二つ

    • SGA(System Global Area)
      データベースに保存されているデータを読み込み,様々な作業を行うための作業領域.行う作業によって作業領域は細かく分けられている

      • データベースバッファキャッシュ
        データファイルから読み込んだデータを置いておく領域.データを破棄するタイミングはLRU(Least Recently Used)で決定される.
        破棄される前には,DBWR(DataBase WRiter) がハードディスクに自動的に保存する.
      • REDOログバッファ
        データの更新処理が発生すると,更新前後のデータを一旦REDOログバッファにコピーしておく.そして,LGWR(LoG WRiter)が自動的にREDOログファイルに更新内容を保存する.
      • 共有プール
        共有するものを貯めておく領域

        • ディクショナリキャッシュ
          データディクショナリの作業場所
        • ライブラリキャッシュ
          「SQLの実行計画」(Oracleからデータを取得する際の方法や順序)と呼ばれるデータが置かれる
    • バックグラウンドプロセス
      • DBWR
        変更内容をデータファイルに書き込むプロセス
      • LGWR
        REDOログバッファにコピーされた更新前後のデータをREDOログファイルに書き込むプロセス
      • CKPT(ChecK PoinT)
        DBWRがデータファイルに書き込むタイミングを指示するプロセス.あとはデータファイルと制御ファイルに,データベースが正常であることをを担保する情報を書き込む.
      • SMON(System MONitor)
        Oracleを監視するプロセス.万が一障害が発生した場合はREDOログファイルなどから復旧を行う.
      • PMON(Process MONitor)
        ユーザーが実行しているプロセスを監視する.
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中