<Insert Picture Here>
日本オラクル株式会社
今さら聞けない !? Oracle 入門 ~前編~
Oracle Direct Seminar
<Insert Picture Here>
Agenda
1. Oracle の基本動作 2. Oracle のファイル群
3. Oracle のプロセス群と専用メモリ領域 4. データベース内部動作
1. Oracle の基本動作 2. Oracle のファイル群
3. Oracle のプロセス群と専用メモリ領域
今さら聞けない !? オラクル入門 ~後編~
4. データベース内部動作
クライアント データベース サーバ
Oracle データベースとは
プログラム
Oracle Database は高性能な RDBMS
Database エンジン Database エンジン SQL
文Select * from emp;
二次元の表形式
※ RDBMS:Relational DataBase Management System
クライアント データベース サーバ
SQL文
データベースアクセス
アプリケーション サーバ
サーバ・
プロセス
サーバ・
プロセス
サーバ・
プロセス ユーザ・
プロセス
ユーザ・
プロセス
ユーザ・
プロセス
サーバ・
プロセス
Oracle専用の メモリ領域 Oracle専用の
メモリ領域
メモリ上のデータを検索する
データベース サーバ
データベースアクセス
ユーザ・
プロセス
サーバ・
プロセス
Oracle専用の メモリ領域 Oracle専用の
メモリ領域
常駐プロセス 常駐プロセス
メモリ上のデータを検索する
ディスク上のデータを 読み込む
メモリ上の更新データを ディスクに書き込む
データベース サーバ
データベースアクセス
ユーザ・
プロセス
<Insert Picture Here>
Agenda
1. Oracle の基本動作 2. Oracle のファイル群
3. Oracle のプロセス群と専用メモリ領域 4. データベース内部動作
1. Oracle の基本動作 2. Oracle のファイル群
3. Oracle のプロセス群と専用メモリ領域
今さら聞けない !? オラクル入門 ~後編~
4. データベース内部動作
REDO
ログファイルREDO
ログファイルアーカイブ
REDOログファイル
アーカイブ
REDOログファイル
制御ファイル 制御ファイル パラメータファイル
パラメータファイル
表データを格納するファイル 以外にもいくつかのファイル が存在
Oracle のファイル群
データファイル データファイル
データ・ファイルと表領域
•
データ・ファイル•
データを物理的に格納したファイル。•
表領域•
データの論理的な管理単位。1
つ以上のデータファイルで構成される。•
データファイルはサイズや数を増やすことができる。emp表
emp
表 dept表dept
表 表領域表領域
・・・・・・
データファイル1 データファイル2
emp
emp
表表
sales表sales
表 表領域表領域
・・・・・・
データファイル1
人事系
人事系
会計系会計系
表領域の構成
• ユーザ・データ用表領域
•
各ユーザ用の表や索引を格納• SYSTEM 表領域
•
データディクショナリ(システム全体の情報)を格納• 一時表領域 ( TEMP 表領域)
•
ソート処理時にメモリ領域が足りない場合に一時的に使用する領域• UNDO 表領域 ( ロールバック情報専用表領域 )
•
トランザクション管理(Commit/Rollback
)や読み取り一貫性に必要なUNDO(
元に戻す)
情報を格納内部的に使う特別な表領域
トランザクション管理
10万円の銀行振込を行う場合
自分の口座の金額確認
自分の口座を減額
(-10万円)振り込み先口座を増額
(+10万円)データ更新確定
一つ の ト ラ ン ザ ク シ ョ ン
(コミット)
障害発生
更新処理を全て元に戻す ( ロールバック )
更新処理を全て元に戻す
( ロールバック )
UNDO 情報
変更前情報を生成
UNDO (ロールバック) セグメント
~UNDO情報格納用のオブジェクト~
新しいデータで 表を更新 表(テーブル)
トランザクションの更新 用途)
トランザクションのロールバック 読み取り一貫性
ロールバック時に 元に戻す
UNDO表領域
(ロールバック情報専用表領域)
• UNDO( ロールバック ) セグメントを格納する専用の表領域
• UNDO セグメントの数、大きさを Oracle が自動管理 (Oracle9i から )
UNDO
UNDO
表領域表領域
データファイル
・・・・・・
・・・・・・
UNDO
UNDO
セグメントセグメント
REDO
ログファイルREDO
ログファイルアーカイブ
REDOログファイル
アーカイブ
REDOログファイル
制御ファイル 制御ファイル パラメータファイル
パラメータファイル
Oracle のファイル群
データファイル データファイル
REDO
ログファイルREDO
ログファイルアーカイブ
REDOログファイル
アーカイブ
REDOログファイル
制御ファイル 制御ファイル パラメータファイル
パラメータファイル
データファイル データファイル
REDO ログ・ファイル
• 変更履歴を格納
• 障害時の復旧に使用
• COMMIT 発生時に書き込み
REDOログ・ファイル
データに加えられた変更を すべて記録
REDOログ・エントリ
更新1 旧データ → 新データ 更新2 旧データ → 新データ Commit
データベースへの変更情報を記録するファイル
UNDOとREDO
•
UNDO:元に戻す → ロールバック•
REDO:もう一度実行 → 障害時の復旧※ アーカイブ
REDO
ログ・ファイル:REDO
ログ・ファイルのバックアップ制御ファイル
制御ファイル
データベース情報: DB名称 ・バージョン
…
データ・ファイル情報: データ・ファイル名、現在の状態
…
REDOログ・ファイル情報: 最新のREDOログ・ファイルの情報 ログ履歴情報y
データベースの物理的な構造に関する情報を格納y
非常に重要なファイルの為、ミラー化をすることを推奨(Oracleの機能でミラー化可能)
パラメータ・ファイル
db_name = DB名
db_cache_size = 13905 db_block_size = 8192
log_buffer = 32768
shared_pool_size = 37970944 sort_area_size = 65536
background_dump_dest = /u01/app/oracle/admin/DB
名/bdump
control_files = ( /u01/app/oracle/oradata/DB
名/control01.ctl ) :
― パラメータの例 ―
各種パラメータが書かれた設定ファイル。データベースの起動時に読み込まれる。
テキスト形式の初期化パラメータ・ファイル または
バイナリ形式のサーバー・パラメータ・ファイル
(Oracle9i
から) y
制御ファイルの名前y
Oracle専用のメモリ領域サイズ etc…
Pfile SPfile
Oracle のファイル群 ~まとめ
• データファイル
表や索引のデータが格納されています
• REDO ログファイル、アーカイブ REDO ログファイル
障害時の復旧に使用する変更履歴が格納されています
アーカイブ
REDO
ログファイルはREDO
ログファイルのバックアップです• 制御ファイル、パラメータ・ファイル
データベースが稼働するための情報が格納されています
<Insert Picture Here>
Agenda
1. Oracle の基本動作 2. Oracle のファイル群
3. Oracle のプロセス群と専用メモリ領域 4. データベース内部動作
1. Oracle の基本動作 2. Oracle のファイル群
3. Oracle のプロセス群と専用メモリ領域
今さら聞けない !? オラクル入門 ~後編~
4. データベース内部動作
クライアント データベース サーバ
アプリケーション
SQL
文サーバ・
プロセス
サーバ・
プロセス サーバ・
プロセス
Oracle
専用の メモリ領域Oracle
専用のメモリ領域
データベースアクセス
ユーザ・
プロセス
ユーザ・
プロセス
ユーザ・
プロセス
サーバ・
プロセス
Oracle専用の メモリ領域 Oracle専用の
メモリ領域
常駐プロセス 常駐プロセス
メモリ上のデータを検索する
メモリ上の更新データを ディスクに書き込む
データベース サーバ
データベースアクセス
ユーザ・
プロセス
ディスク上のデータ を
読み込む
データファイル
REDO
ログファイル アーカイブREDOログファイル
制御ファイル パラメータファイル
インスタンス
サーバ・
プロセス
Oracle専用の メモリ領域 Oracle専用の
メモリ領域
常駐プロセス 常駐プロセス
メモリ上のデータを検索する
メモリ上の更新データを ディスクに書き込む
データベースアクセス
ユーザ・
プロセス
SGA SGA
バックグラウンド・プロセス バックグラウンド・プロセス
データベース
サーバ
ディスク上のデータ
を 読み込む
データファイル
REDO
ログファイル アーカイブREDOログファイル
制御ファイル
REDOログ・
バッファ 共有プール
データベース・
バッファ・キャッシュ
システム・グローバル領域 (SGA)
y 処理を高速にするための共有メモリー領域
・表データ
・索引データ
・UNDO情報
などを一時的に格納
・SQL文の情報
・DBの管理情報
などを保持
・更新履歴情報
を一時的に格納
z
SMON インスタンス回復を実施
z
PMON
ユーザプロセスの回復を実施z
DBWR (DBライター) データの書き込み
z
CKPT チェックポイントの処理実施
z
LGWR (
ログライター)
ログの書き込みz
ARCH アーカイブファイルを生成
SGA
データ・ファイル
REDO
制御ファイルアーカイブファイル アーカイブファイル PMONPMON SMONSMON
DBWRDBWR
CKPTCKPT
LGWR LGWR
ARCHARCH
バックグラウンド・プロセス
インスタンス インスタンス
システム・グローバル領域 (SGA)
システム・グローバル領域 (SGA)
プロセスプロセス プロセスプロセス プロセスプロセス プロセスプロセス
Oracleの処理実行の中心部分 メモリとプロセスから構成されます