Oracle Direct Seminar <Insert Picture Here> 今さら聞けない!? Oracle 入門 ~ 前編 ~ 日本オラクル株式会社
Agenda 1. Oracle の基本動作 2. Oracle のファイル群 3. Oracle のプロセス群と専用メモリ領域 4. データベース内部動作 今さら聞けない!? オラクル入門 ~ 後編 ~ 4. データベース内部動作 <Insert Picture Here> Copyright 2007, Oracle. All rights reserved. 2
Oracle データベースとは Oracle Database は高性能な RDBMS クライアント データベースサーバ Select * from emp; プログラム SQL 文 Database エンジン RDBMS:Relational DataBase Management System 二次元の表形式 Copyright 2007, Oracle. All rights reserved. 3
データベースアクセス クライアント ユーザ プロセス サーバ プロセス データベースサーバ ユーザ プロセス SQL 文 サーバ プロセス ユーザ プロセス サーバ プロセス アプリケーションサーバ Copyright 2007, Oracle. All rights reserved. 4
データベースアクセス ユーザ プロセス サーバ プロセス メモリ上のデータを検索する Oracle 専用のメモリ領域 データベースサーバ Copyright 2007, Oracle. All rights reserved. 5
データベースアクセス ユーザ プロセス サーバ プロセス メモリ上のデータを検索する Oracle 専用のメモリ領域 データベースサーバ 常駐プロセス ディスク上のデータを読み込む メモリ上の更新データをディスクに書き込む Copyright 2007, Oracle. All rights reserved. 6
Agenda 1. Oracle の基本動作 2. Oracle のファイル群 3. Oracle のプロセス群と専用メモリ領域 4. データベース内部動作 今さら聞けない!? オラクル入門 ~ 後編 ~ 4. データベース内部動作 <Insert Picture Here> Copyright 2007, Oracle. All rights reserved. 7
Oracle のファイル群 データファイルデータファイル 表データを格納するファイル以外にもいくつかのファイルが存在 REDO REDOログファイル パラメータファイルパラメータファイル アーカイブアーカイブ REDO REDO ログファイルログファイル 制御ファイル制御ファイル Copyright 2007, Oracle. All rights reserved. 8
データ ファイルと表領域 データ ファイル データを物理的に格納したファイル 表領域 データの論理的な管理単位 1 つ以上のデータファイルで構成される データファイルはサイズや数を増やすことができる 表領域 emp 表 dept 表 表領域 emp 表 sales 表 データファイル 1 データファイル 2 人事系 データファイル 1 会計系 Copyright 2007, Oracle. All rights reserved. 9
表領域の構成 ユーザ データ用表領域 各ユーザ用の表や索引を格納 内部的に使う特別な表領域 SYSTEM 表領域 データディクショナリ ( システム全体の情報 ) を格納 一時表領域 (TEMP 表領域 ) ソート処理時にメモリ領域が足りない場合に一時的に使用する領域 UNDO 表領域 ( ロールバック情報専用表領域 ) トランザクション管理 (Commit/Rollback) や読み取り一貫性に必要な UNDO( 元に戻す ) 情報を格納 Copyright 2007, Oracle. All rights reserved. 10
トランザクション管理 10 万円の銀行振込を行う場合 自分の口座の金額確認つのトラ自分の口座を減額 (-10 万円 ) ンザク振り込み先口座を増額 (+10 万円 ) ションデータ更新確定一( コミット ) 更新処理を全て元に戻す ( ロールバック ) 障害発生 Copyright 2007, Oracle. All rights reserved. 11
UNDO 情報 変更前情報を生成 UNDO ( ロールバック ) セグメント ~UNDO 情報格納用のオブジェクト ~ ロールバック時に元に戻す 表 ( テーブル ) 新しいデータで表を更新 用途 ) トランザクションのロールバック読み取り一貫性 トランザクションの更新 Copyright 2007, Oracle. All rights reserved. 12
UNDO 表領域 ( ロールバック情報専用表領域 ) UNDO( ロールバック ) セグメントを格納する専用の表領域 UNDOセグメントの数 大きさをOracleが自動管理 (Oracle9iから) UNDO 表領域 UNDO セグメント データファイル Copyright 2007, Oracle. All rights reserved. 13
Oracle のファイル群 データファイルデータファイル REDO REDO ログファイルログファイル アーカイブアーカイブ REDO REDO ログファイルログファイル パラメータファイルパラメータファイル 制御ファイル制御ファイル Copyright 2007, Oracle. All rights reserved. 14
REDO ログ ファイル データベースへの変更情報を記録するファイル 変更履歴を格納 障害時の復旧に使用 COMMIT 発生時に書き込み UNDO と REDO UNDO: 元に戻す ロールバック REDO: もう一度実行 障害時の復旧 REDO ログ ファイル 更新 1 旧データ 新データ 更新 2 旧データ 新データ Commit REDO ログ エントリ データに加えられた変更をすべて記録 アーカイブ REDO ログ ファイル :REDO ログ ファイルのバックアップ Copyright 2007, Oracle. All rights reserved. 15
制御ファイル データベースの物理的な構造に関する情報を格納 非常に重要なファイルの為 ミラー化をすることを推奨 (Oracle の機能でミラー化可能 ) 制御ファイル データベース情報 : DB 名称 バージョン データ ファイル情報 : データ ファイル名 現在の状態 REDOログ ファイル情報 : 最新のREDOログ ファイルの情報ログ履歴情報 Copyright 2007, Oracle. All rights reserved. 16
パラメータ ファイル 各種パラメータが書かれた設定ファイル データベースの起動時に読み込まれる 制御ファイルの名前 Oracle 専用のメモリ領域サイズ etc テキスト形式の初期化パラメータ ファイルまたはバイナリ形式のサーバー パラメータ ファイル (Oracle9i から ) SPfile Pfile パラメータの例 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 ) : Copyright 2007, Oracle. All rights reserved. 17
Oracle のファイル群 ~ まとめ データファイル 表や索引のデータが格納されています REDO ログファイル アーカイブ REDO ログファイル 障害時の復旧に使用する変更履歴が格納されていますアーカイブREDOログファイルはREDOログファイルのバックアップです 制御ファイル パラメータ ファイル データベースが稼働するための情報が格納されています Copyright 2007, Oracle. All rights reserved. 18
Agenda 1. Oracle の基本動作 2. Oracle のファイル群 3. Oracle のプロセス群と専用メモリ領域 4. データベース内部動作 今さら聞けない!? オラクル入門 ~ 後編 ~ 4. データベース内部動作 <Insert Picture Here> Copyright 2007, Oracle. All rights reserved. 19
データベースアクセス クライアント ユーザ プロセス サーバ プロセス データベースサーバ ユーザ プロセス ユーザ プロセス SQL 文 サーバ プロセス サーバ プロセス Oracle 専用のメモリ領域 アプリケーションサーバ Copyright 2007, Oracle. All rights reserved. 20
データベースアクセス ユーザ プロセス サーバ プロセス メモリ上のデータを検索する データベースサーバ 常駐プロセス Oracle 専用のメモリ領域 ディスク上のデータを読み込む メモリ上の更新データをディスクに書き込む データファイル REDO ログファイル アーカイブ REDOログファイル 制御ファイルパラメータファイル Copyright 2007, Oracle. All rights reserved. 21
データベースアクセス ユーザ プロセス サーバ プロセス メモリ上のデータを検索する データベースサーバ Oracle 専用の SGA メモリ領域 SGA バックグラウンド プロセス常駐プロセス インスタンス ディスク上のデータを読み込む メモリ上の更新データをディスクに書き込む データファイル REDO ログファイル アーカイブ REDOログファイル 制御ファイルパラメータファイル Copyright 2007, Oracle. All rights reserved. 22
システム グローバル領域 (SGA) 処理を高速にするための共有メモリー領域 データベース バッファ キャッシュ REDO ログ バッファ 共有プール 表データ 索引データ UNDO 情報 などを一時的に格納 更新履歴情報 を一時的に格納 SQL 文の情報 DB の管理情報 などを保持 Copyright 2007, Oracle. All rights reserved. 23
バックグラウンド プロセス PMON SMON DBWR SGA CKPT SMON インスタンス回復を実施 PMON ユーザプロセスの回復を実施 DBWR (DBライター) データの書き込み CKPT チェックポイントの処理実施 LGWR ( ログライター ) ログの書き込み ARCH アーカイブファイルを生成 LGWR データ ファイル 制御ファイル REDO ログファイル ARCH アーカイブファイル Copyright 2007, Oracle. All rights reserved. 24
インスタンス インスタンス システム グローバル領域 (SGA) プロセス プロセス プロセス プロセス Oracle の処理実行の中心部分 メモリとプロセスから構成されます Copyright 2007, Oracle. All rights reserved. 25
Agenda 1. Oracle の基本動作 2. Oracle のファイル群 3. Oracle のプロセス群と専用メモリ領域 4. データベース内部動作 今さら聞けない!? オラクル入門 ~ 後編 ~ 4. データベース内部動作 <Insert Picture Here> Copyright 2007, Oracle. All rights reserved. 26
詳しい説明 システム導入のご相談は Oracle Direct まずはお問合せください http://www.oracle.co.jp/direct 0120-155-096 Copyright 2007, Oracle. All rights reserved. 27
Copyright 2007, Oracle. All rights reserved. 28