ここからはじめる、oracle データベース入門・アーキテクチャー編 · ...
TRANSCRIPT
<Insert Picture Here>
第5回 「夜もよか~!! オラクル勉強会 presented by アシスト」
ここからはじめる、Oracle データベース入門・アーキテクチャー編
2013年5月15日
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 2
<Insert Picture Here>
Agenda
1. RDBMSとは
2. Oracleの基本動作
3. Oracleのファイル群
4. Oracleのプロセス群とメモリ領域
5. データベース内部動作
6. Oracleの運用管理
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 3
データベース データ
データベースとは
• 特定のテーマに沿ったデータを集めて管理し、容易に検索・抽出などの再利用をできるようにしたもの
• ウィキペディア(http://ja.wikipedia.org/)より引用
レシピ
レシピ
レシピ集
おいしい カレーを作りたい
登録
登録 参照
参照
おいしい スープを作りたい
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 4
データへの容易なアクセス
• 紙(データ)を綴じて本 (レシピ集)にする • データを一箇所にまとめる
• 索引をつくる • 本の特定のページをすぐに
参照できる
• 「おいしいカレーを作りたい」
• 多数の本(レシピ集)の分類
• 目的のレシピ集がどこにあるかわかるように
• 「和食」、「中華料理」 etc.
レシピ集での例
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 5
データの更新をおこなうには
• 多数の本(レシピ集)のうち、記述を変更したい本を選択
• 更新方法、その1)
• 本をまるごと差し替える
• 更新方法、その2)
• 該当の記述を特定、変更
• 索引を利用できると、すばやく記述を特定できる
古
新
レシピ集での例
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 6
データをみんなで利用するには
• 同時に複数人が利用できる?
• レシピ集を占有する?占有する範囲は?
• レシピ集、レシピ単位、材料や手順の単位
• データを更新するときのルールは?
• レシピ集の保管は?
同一データを変更できるのは、ひとりだけ
変更途中のデータでなければ、誰でもデータを変更できる
データの変更中も、他の人は変更前のデータを参照できる
許可が無いひとは、データを見たり変更したりすることができない
多数の本の管理は、専門の管理者にまかせ、利用者は気にしない
変更を確定する前であれば、いつでも変更を取り消すことができる
排他制御
同時実行、データの粒度
トランザクション
読取一貫性
セキュリティ
管理性
更新 参照 参照
レシピ集での例
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 7
現在主流 • 階層型データベース
• ネットワーク型データベース
• リレーショナル型データベース
階層型 ネットワーク型 リレーショナル型
データベースの種類
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
社員番号 社員名 給与 部門番号
1 大久保 5000 10
2 近藤 3000 20
3 伊藤 2500 10
4 西嶋 2000 20
5 河和 2750 30
8
RDB(リレーショナル・データベース)の特徴①
• データを2次元の表で管理する
• 表は列と行から構成されている
社員表
列(カラム)
行 (レコード)
フィールド
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
部門番号 部門名
10 OU
20 営業部
30 技術部
社員番号 社員名 給与 部門番号
1 大久保 5000 10
2 近藤 3000 20
3 伊藤 2500 10
4 西嶋 2000 20
5 河和 2750 30
9
RDB(リレーショナル・データベース)の特徴②
• 複数の表を関連付けすることができる
• 関連付けするために
主キー:行データを一意に決める背番号的なキー列
外部キー:マスター表のキー列を参照するキー列
社員表(ディテール)
部門表
主キー
主キー
外部キー リレーション
(マスター)
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 10
RDB(リレーショナル・データベース)の特徴③
• データを簡単に取り出したり、加工したりできる
• SQL(Structured Query Language)というが用意されている
SQLは米国規格協会(ANSI)、国際標準化機構(ISO)によりRDB用標準言語として認定されている
SQL
結果
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 11
データベース・マネジメント・システムとは
• 特にコンピュータ上で効率的にデータを管理する仕組みをデータベース・マネジメント・システム(DBMS)と呼ぶ
• RDBMS:管理対象が「リレーショナル・データベース」
• 一般に「データベース」と呼ぶときに、管理対象のデータの総体だけではなく、DBMSをさしていることもある
• Oracle Database も RDBMSのひとつ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 12
データを管理する上でできるべきこと
• トランザクション処理の実現 • トランザクション特性(ACID)を極力満たすこと
• A: Atomicity (原子性)
• C: Consistency (一貫性)
• I : Isolation (分離性)
• D: Durability (永続性)
• 問合せ処理
• データ利用者は格納されている「物理的」なデータ構造を意識することなく利用可能であること
• SQLを利用することで、RDBMSは適切にデータを処理
• メタデータ管理 • 多数のユーザが利用する為の名前空間(=スキーマ)を管理
• DBMS自身およびユーザにメタデータとして管理している情報を提供
DBMSの3大機能 指定の口座に
お金を振り込みたい
Aさん
処理1.Aさんの口座から減額
処理2.指定の口座へ増額
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 13
トランザクションの実現
• RDBはデータアクセスの最小単位を構成するトランザクションを実現
• トランザクションを利用することで整合性をも確保
• ACID :トランザクションが兼ね備えるべき基本的な性質
• A: Atomicity (原子性)
トランザクションを構成する一連の処理は、全部なされるか、いっさいなされないか、のどちらかの状態を取ること
• C: Consistency (一貫性)
多数のトランザクションが並列に実行されてもシステム全体のデータの一貫性が失われないこと
• I: Isolation (分離性)
並行して実行される他のトランザクションの影響を受けないこと
データをロックする機能を持つこと
• D: Durability (永続性)
処理内容をいったん確定(commit)させた後、確定した内容は失われないこと
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 14
Oracle Databaseにおけるトランザクション
• Oracle DatabaseではDML文やDDL文が最初に実行された時からトランザクションが開始される(宣言は不要)
• 実行中の処理が利用しているトランザクションとは別のトランザクションを利用することもできる • 自律型トランザクション:PL/SQLブロックを利用
• 実行中の処理でエラーが発生した場合に、実行中の処理はロールバックしたいが、エラー情報をエラーテーブルに書き込む場合、等
•Atomicity (原子性) •トランザクションを構成する一連の処理は、全部なされるか、いっさいなされな いか、のどちらかの状態を取ること
機能の実現 (原子性)
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 15
Oracle Databaseにおけるトランザクション
• Oracle Databaseはマルチユーザ環境下でデータの同時実行性と整合性を確保します • 行レベルロック
• 行=一番細かいデータの単位
• 読取一貫性の提供
• 他ユーザが更新中のデータも更新前の確定データを参照
•Consistency (一貫性) •多数のトランザクションが並列に実行されてもシステム全体のデータの一貫性が 失われないこと
•Isolation (分離性) •並行して実行される他のトランザクションの影響を受けないこと
•データをロックする機能を持つこと
機能の実現 (一貫性・分離性)
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 16
Oracle Databaseにおけるトランザクション
• データをディスク装置に記録することで、コンピュータシステムが停止してもデータが失われないようにする
•Durability (永続性) •処理内容をいったん確定(commit)させた後、確定した内容は失われないこと
• Oracle DatabaseではREDOログを利用することで「永続性」を実現 • 突然の電源断でもデータや確立したトランザクションの喪失を防止
• トランザクションの処理性能向上を両立
• ログへの書き込み完了を確認してから、データベース本体を収めるディスクへの書き込みをおこなう
機能の実現 (永続性)
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 17
Oracle Databaseにおける問合せ処理
• Oracle Databaseでは、コスト・ベース・オプティマイザ(CBO)による最適な問合せ処理がなされる
• 収集した統計情報を使用
表の件数(レコード数)
表のカラムのカーディナリティ(値のバリエーション)
索引の有無
等
• 表を結合する時の、処理順序および結合アルゴリズムを適切に選択
•RDBでは問合せ言語(SQL)を利用し、非手続き的に問合せを実施する
•ユーザは「何が(WHAT)欲しいのか」だけを記述するだけで良い。
•「どのように(HOW)データを取得する」は気にしなくても良い
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 18
Oracle Databaseにおけるメタデータ管理
• Oracle Databaseでは「データ・ディクショナリ」として メタデータを管理し、提供する • スキーマ(Oracle Databaseではユーザと等しい)、表、索引、制
約、オブジェクトの所有者、アクセス権限、収集した統計情報など
• Oracle Database自身がSQL文を解析する際にも利用する
• Oracle Databaseでは基本的にビューの形式で提供される為、SELECT文で情報を取得する • 静的ディクショナリ・ビュー
• 動的パフォーマンス・ビュー • Oracle Databaseの稼動中の内部ディスク構造およびメモリー構造などを表示
•DBMSでは表や表のカラム属性などのメタデータ(データの データ)の管理をおこない、ユーザやDBMS自身に提供する
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 19
<Insert Picture Here>
Agenda
1. RDBMSとは
2. Oracleの基本動作
3. Oracleのファイル群
4. Oracleのプロセス群とメモリ領域
5. データベース内部動作
6. Oracleの運用管理
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Oracle データベースとは
20
クライアント データベース サーバ
プログラム
Oracle Databaseは高性能な商用RDBMS
Database エンジン
SQL文
Select * from emp;
二次元の表形式 ※ RDBMS:Relational DataBase Management System
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
データベースアクセスの概要
21
クライアント
データベース サーバー
サーバ・ プロセス
サーバ・ プロセス
サーバ・ プロセス
ユーザ・ プロセス
ユーザ・ プロセス
SQL文
アプリケーション サーバー
ユーザ・ プロセス
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 22
Oracle専用の
メモリ領域
データベースアクセスの概要
ユーザ・ プロセス
サーバ・ プロセス
データベース サーバー
メモリ上のデータを検索する
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 23
Oracle専用の
メモリ領域
ディスク上のデータを
読み込む
データベース サーバー
データベースアクセスの概要
ユーザ・ プロセス
サーバ・ プロセス
Oracle専用の
メモリ領域
メモリ上のデータを検索する
メモリ上の更新データをディスクに書き込む
常駐プロセス
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
【参考】専用サーバーモードと共有サーバーモード
• 専用サーバーモード
• 一つのクライアント・プロセスに対して、一つのサーバー・プロセスを割り当てるモード
• 共有サーバーモード
• 複数のクライアント・プロセスに対して、一つのサーバープロセスを割り当てるモード
• ディスパッチャというプロセスが
生成される
• 現在ではほとんど使われない
24
ユーザ・ プロセス
サーバ・ プロセス
ユーザ・ プロセス
サーバ・ プロセス
ユーザ・ プロセス
ユーザ・ プロセス
ディス パッチャ
現在の主流
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 25
<Insert Picture Here>
Agenda
1. RDBMSとは
2. Oracleの基本動作
3. Oracleのファイル群
4. Oracleのプロセス群とメモリ領域
5. データベース内部動作
6. Oracleの運用管理
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Oracleのファイル群
• Oracle Databaseは様々なファイルにより構成される
• 表データを格納するファイル以外にも、Oracle Database
自身が使用するデータを格納するファイルが存在する
26
REDOログファイル アーカイブ REDOログファイル
制御ファイル パラメータファイル
データファイル
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
• データ・ファイル • データを物理的に格納したファイル
• 表領域 • データの論理的な管理単位。1つ以上のデータファイルで構成される
• データファイルはサイズや数を増やすことができる
27
データ・ファイルと表領域
emp表 dept表
表領域
・・・・・・
データファイル1 データファイル2
emp表 sales表
表領域
・・・・・・
データファイル3 人事系 会計系
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Oracle Databaseの論理構造
• 表領域
• セグメントを格納する単位
• セグメント
• エクステントの集合体
• 表、索引などが該当
• エクステント
• 複数データブロックの集合体
• セグメントにはエクステント単位で割り当て
が行われる
• データ・ブロック
• Oracle Databaseの最小構成単位
28
表領域
セグメント
エクステント
データ・ブロック
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
表領域の種類
• ユーザ・データ用表領域
• 各ユーザ用の表や索引を格納
• SYSTEM表領域
• データディクショナリ(システム全体の情報)を格納
• SYSAUX表領域 (Oracle Database 10g~)
• 特定の機能やオプション(OLAPなど)のスキーマ・オブジェクトを格納
• 一時表領域 (TEMP表領域)
• ソート処理時にメモリ領域が足りない場合に一時的に使用する領域
• UNDO表領域 (ロールバック情報専用表領域)
• トランザクション管理(Commit/Rollback)や読み取り一貫性に必要なUNDO(元に戻す)情報を格納
29
内部的に使う特別な表領域
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
トランザクション管理
10万円の銀行振込を行う場合
自分の口座の金額確認
自分の口座を減額 (-10万円)
振り込み先口座を増額 (+10万円)
データ更新確定
(コミット)
30
一つのトランザクション
障害発生
更新処理を全て元に戻す (ロールバック)
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 31
UNDO情報
②変更前情報を生成
UNDO (ロールバック) セグメント
~UNDO情報格納用のオブジェクト~
③新しいデータで 表を更新
表(テーブル)
①トランザクションの更新
用途)
トランザクションのロールバック
読み取り一貫性
④ロールバック時 に元に戻す
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
• UNDO(ロールバック)セグメントを格納する専用の表領域
• 通常UNDOセグメントの数、大きさをOracleが自動管理
32
UNDO表領域 (ロールバック情報専用表領域)
UNDO表領域
データファイル
・・・・・・
・・・・・・
UNDOセグメント
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 33
読み取り一貫性
15:00時点での売上表に対して読込みを開始。 読込みには10分かかる
日付 製品 個数 売上金
...
11/30 製品A 23 230,000
11/30 製品B 57 885,000
11/30 製品C 41 820,000
11/30 製品D 49 1,470,000
12/01 製品A 59 590,000
12/01 製品B 46 690,000
12/01 製品C 36 720,000
12/01 製品D 53 1,590,000
...
①15:00の情報 を検索
従業員1
売上表
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 34
読み取り一貫性
日付 製品 個数 売上金
...
11/30 製品A 23 230,000
11/30 製品B 57 885,000
11/30 製品C 41 820,000
11/30 製品D 49 1,470,000
12/01 製品A 59 590,000
12/01 製品B 46 690,000
12/01 製品C 36 720,000
12/01 製品D 53 1,590,000
...
12/01 製品C 36 720,000
①15:00の情報 を検索
従業員1
15:00時点での売上表に対して読込みを開始。 読込みには10分かかる
売上表
従業員2(15:05) 売上表を更新 15:09データを確定
12/01 製品C 39 780,000
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 35
読み取り一貫性
従業員2による変更作業は、従業員1の①の検索作業へは影響を与えない。
日付 製品 個数 売上金
...
11/30 製品A 23 230,000
11/30 製品B 57 885,000
11/30 製品C 41 820,000
11/30 製品D 49 1,470,000
12/01 製品A 59 590,000
12/01 製品B 46 690,000
12/01 製品C 36 720,000
12/01 製品D 53 1,590,000
... 15:10
12/01 製品C 36 720,000 従業員2(15:05) 売上表を更新 15:09データを確定
12/01 製品C 39 780,000
15:00時点での売上表に対して読込みを開始。 読込みには10分かかる
売上表 ①15:00の情報 を検索
従業員1
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 36
読み取り一貫性
日付 製品 個数 売上金
...
11/30 製品A 23 230,000
11/30 製品B 57 885,000
11/30 製品C 41 820,000
11/30 製品D 49 1,470,000
12/01 製品A 59 590,000
12/01 製品B 46 690,000
12/01 製品C 36 720,000
12/01 製品D 53 1,590,000
...
売上表
15:10
12/01 製品C 36 720,000 12/01 製品C 39 780,000
②15:10の情報 を検索
従業員3
15:00時点での売上表に対して読込みを開始。 読込みには10分かかる
従業員2による変更作業は、従業員1の①の検索作業へは影響を与えない。
①15:00の情報 を検索
従業員1
従業員2(15:05) 売上表を更新 15:09データを確定
12/01 製品C 39 780,000
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
読み取り一貫性がなぜ必要か
• 更新中にデータを読み取ることができなければ、同時実行性が欠如
してしまう
• 更新中(未確定)のデータを読み込んでしまうことをダーティーリード
と呼ぶ
• もしダーティーリードが発生してしまうと…
37
1.update
1. User1がデータを更新(未コミット) 10万円→110万円
2. User2がデータを検索 110万円
3. User1がトランザクションを ロールバック 110万円→10万円
4. User2がデータ更新 110万円→60万円
データの一貫性の欠如
2.select
3.rollback ×
4.update ×
データの一貫性の確保
User1
User2
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 38
Oracle Databaseの排他制御
Bさんの口座
- 3万円
Aさん
Bさん
ロック解除
+ 5万円
10万円
15万円
15万円
12万円
ロック
Bさんは
変更できない
ロック
ロック解除
Aさんは
変更できない
※ロックを検知した際に、「待つ」か「エラーを受け取る」かは選択可能
※
※
Bさん
Aさん
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 39
行レベル・ロックとは
• あるユーザーが更新中のデータに対して、別のユーザーの更新を防ぐための排他制御が「ロック」です。
• 一般的なロックのレベル(単位)
• 表
• ページ
• 行
• ロックの単位が大きくなると、他のデータにも不要なロックがかかってしまい、ロック解除待ちが多発するため、処理効率が大幅に低下します。
• 同時実行性との密接な結び付き
データを変更するときにデータを占有するために鍵をかけるようなもの
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Oracle Database 完全な行レベル・ロック
• Oracleデータベースは常に行レベル・ロック
をしている
• Oracleの行レベル・ロッキングは、ロックの行数に
制限がなくロックエスカレーションが発生しない
• きめ細かい行レベル・ロッキングにより、
ロックの競合が大幅に軽減される
40
Locked
Locked
Locked
Locked
○
○
○
○
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 41
ご参考)その他のRDBMSのロック機構
• ロックする行数がある一定の値を越えると、ロック・エスカレーションが発生し、ページ・レベル、表・レベルへ移行する
• アプリケーションの同時実行性の低下
• Oracle Databaseでは発生しない
ページへ
Locked
○ Locked
○
Locked
○
表へ
Locked
○
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 42
Oracle Databaseのファイル群
REDOログファイル アーカイブ REDOログファイル
制御ファイル パラメータファイル
データファイル
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 43
REDOログ・ファイル
REDOログ・ファイル
データベースに加えられた 変更をすべて記録
REDOログ・エントリ 更新1 旧データ → 新データ
更新2 旧データ → 新データ
Commit
• データベースへの変更情報を記録するファイル
変更履歴:insert / update / delete
• 障害時の復旧に使用
• COMMIT発生時に書き込み
• アーカイブREDOログ・ファイルは、REDOログファイルのバックアップ(後述)
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
制御ファイル
データベースの物理的な構造に関する情報を格納
非常に重要なファイルの為、データベース作成時に自動でミラー化される(デフォルトでは3つ)
44
制御ファイル
データベース情報: DB名称 ・バージョン …
データ・ファイル情報: データ・ファイル名、現在の状態…
REDOログ・ファイル情報: 最新のREDOログ・ファイルの情報
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
パラメータ・ファイル
• 各種パラメータが書かれた設定ファイル。データベースの
起動時に読み込まれる
• 制御ファイルの名前
• Oracle専用のメモリ領域サイズ etc…
• 2種類のパラメータ・ファイル
• テキスト形式の初期化パラメータ・ファイル(Pfile)
• バイナリ形式のサーバー・パラメータファイル(SPfile)
45
コマンドやWebブラウザ から変更を加える
再起動時には再変更しなければならない Pfile
再起動時には変更した値で起動する SPfile
PfileとSpfileの違い
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Oracle Databaseのファイル群 ~まとめ
• データファイル
• 表や索引のデータが格納されています
• REDOログファイル、アーカイブREDOログファイル
• 障害時の復旧に使用する変更履歴が格納されています
• アーカイブREDOログファイルはREDOログファイルの
バックアップです
• 制御ファイル、パラメータ・ファイル
• Oracle Databaseが稼働するための情報
が格納されています
46
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 47
<Insert Picture Here>
Agenda
1. RDBMSとは
2. Oracleの基本動作
3. Oracleのファイル群
4. Oracleのプロセス群とメモリ領域
5. データベース内部動作
6. Oracleの運用管理
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 48
クライアント
データベース サーバ
アプリケーション・ サーバ
データベースアクセスの概要
ユーザ・ プロセス
ユーザ・ プロセス
ユーザ・ プロセス
SQL文
サーバ・ プロセス
サーバ・ プロセス
サーバ・ プロセス
Oracle専用の
メモリ領域
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 49
Oracle専用の
メモリ領域
ディスク上のデータを
読み込む
データベースアクセスの概要
ユーザ・ プロセス
サーバ・ プロセス
Oracle専用の
メモリ領域
メモリ上のデータを検索する
常駐プロセス
データファイル
REDOログファイル
制御ファイル
アーカイブ
REDOログファイル
パラメータファイル
メモリ上の更新データをディスクに書き込む
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 50
ディスク上のデータを
読み込む
メモリ上の更新データをディスクに書き込む
データベースアクセスの概要
ユーザ・ プロセス
サーバ・ プロセス
インスタンス
メモリ上のデータを検索する
Oracle専用の
メモリ領域 SGA
常駐プロセス バックグラウンド・プロセス
データファイルデータファイル
REDOログファイルREDOログファイル
制御ファイル制御ファイル
アーカイブ
REDOログファイル
アーカイブ
REDOログファイル
パラメータファイルパラメータファイル
データファイルデータファイル
REDOログファイルREDOログファイル
制御ファイル制御ファイル
アーカイブ
REDOログファイル
アーカイブ
REDOログファイル
パラメータファイルパラメータファイル
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
システム・グローバル領域 (SGA)
• 処理を高速にするための共有メモリー領域
51
REDOログ・ バッファ
共有プール データベース・ バッファ・キャッシュ
• 表データ
• 索引データ
• UNDO情報 などを一時的に格納する
• 更新履歴情報 を一時的に格納する
• SQL文の情報
• DBの管理情報
• 結果キャッシュ などを格納する
11g New!
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 52
SMON インスタンス回復を実施
PMON ユーザプロセスの回復を実施
DBWR (DBライター) データの書き込み
CKPT チェックポイントの処理実施
LGWR (ログライター) ログの書き込み
ARCH アーカイブREDOログファイルを生成
SGA
データ・ファイル REDO ログファイル
制御ファイル
アーカイブREDOログファイル
PMON SMON
DBWR
CKPT
LGWR
ARCH
バックグラウンド・プロセス
リスナー
ユーザ・ プロセス
サーバ・ プロセス
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 53
SGA
データ・ファイル REDO ログファイル
制御ファイル
PMON SMON
DBWR
CKPT
LGWR
ARCH
バックグラウンド・プロセス
リスナー
ユーザ・ プロセス
サーバ・ プロセス
SMON インスタンス回復を実施
PMON ユーザプロセスの回復を実施
DBWR (DBライター) データの書き込み
CKPT チェックポイントの処理実施
LGWR (ログライター) ログの書き込み
ARCH アーカイブREDOログファイルを生成
アーカイブREDOログファイル
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 54
SGA
データ・ファイル REDO ログファイル
制御ファイル
PMON SMON
DBWR
CKPT
LGWR
ARCH
バックグラウンド・プロセス
リスナー
ユーザ・ プロセス
サーバ・ プロセス
アーカイブREDOログファイル
SMON インスタンス回復を実施
PMON ユーザプロセスの回復を実施
DBWR (DBライター) データの書き込み
CKPT チェックポイントの処理実施
LGWR (ログライター) ログの書き込み
ARCH アーカイブREDOログファイルを生成
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 55
SGA
データ・ファイル REDO ログファイル
制御ファイル
PMON SMON
DBWR
CKPT
LGWR
ARCH
バックグラウンド・プロセス
リスナー
ユーザ・ プロセス
サーバ・ プロセス
アーカイブREDOログファイル
SMON インスタンス回復を実施
PMON ユーザプロセスの回復を実施
DBWR (DBライター) データの書き込み
CKPT チェックポイントの処理実施
LGWR (ログライター) ログの書き込み
ARCH アーカイブREDOログファイルを生成
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
インスタンス
• Oracle Databaseの処理の中心部分
• メモリ領域とバックグラウンド・プロセスから構成される
56
システム・グローバル領域 (SGA)
インスタンス
PMON SMON
DBWR CKPT LGWR ARCH
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
データベース・サーバ上のメモリ領域
57
Oracle専用の
メモリ領域
ユーザ・ プロセス
プロセス毎のメモリ領域
(Program Global Area)
サーバ・ プロセス
Oracle 専用の メモリ領域
セッション メモリー
プライベートSQL領域
・バインド変数値 ・問合せ実行状況 ・問合せ実行作業領域 テーブルスキャンの進行状況 メモリー内ソートの作業域 ハッシュ結合時の作業域 ビットマップ演算の作業域
・セッション (ログイン) 情報
データベース サーバ
プログラム・グローバル領域(PGA)
データファイルデータファイル
REDOログファイルREDOログファイル
制御ファイル制御ファイル
アーカイブ
REDOログファイル
アーカイブ
REDOログファイル
パラメータファイルパラメータファイル
データファイルデータファイル
REDOログファイルREDOログファイル
制御ファイル制御ファイル
アーカイブ
REDOログファイル
アーカイブ
REDOログファイル
パラメータファイルパラメータファイル
バックグラウンド・プロセス
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
データベース・サーバ上のメモリ領域
58
Oracle専用の
メモリ領域
ユーザ・ プロセス
プロセス毎のメモリ領域
(Program Global Area)
サーバ・ プロセス
Oracle 専用の メモリ領域
データベース サーバ
ユーザ・ プロセス
プロセス毎のメモリ領域
(Program Global Area)
サーバ・ プロセス
同時接続数(n)分
Oracleが必要とするメモリ総量 = (PGA × n ) + SGA
Oracleが利用可能なメモリ量上限を指定 11g New!
データファイルデータファイル
REDOログファイルREDOログファイル
制御ファイル制御ファイル
アーカイブ
REDOログファイル
アーカイブ
REDOログファイル
パラメータファイルパラメータファイル
データファイルデータファイル
REDOログファイルREDOログファイル
制御ファイル制御ファイル
アーカイブ
REDOログファイル
アーカイブ
REDOログファイル
パラメータファイルパラメータファイル
プログラム・グローバル領域(PGA)
バックグラウンド・プロセス
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 59
OS Memory
SGA
PGA
OS Memory
SGA
PGA
SGA
PGA
自動チューニング ALTER SYSTEM SET MEMORY_TARGET=...
MEMORY_TARGET
MEMORY_MAX_TARGET
OSメモリー
自動メモリー管理 (Oracle Database 11g)
OS Memory
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
【参考】インスタンスとデータベースの関係
• 基本は1インスタンス=1データベース
• Oracle Databaseの最小単位
• データベース(インスタンス)は
互いに独立
• 複数インスタンス=1データベース
という構成も可能
• Oracle Real Application Clusters
(RAC)という技術を使用
• 高い拡張性と可用性を実現
60
インスタンス
ファイル群
インスタンス
ファイル群
データベース1 データベース2
インスタンス
ファイル群
インスタンス
データベース1
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 61
<Insert Picture Here>
Agenda
1. RDBMSとは
2. Oracleの基本動作
3. Oracleのファイル群
4. Oracleのプロセス群とメモリ領域
5. データベース内部動作
6. Oracleの運用管理
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 62
Oracle専用の
メモリ領域
バックグラウンド・プロセス ディスク上のデータを
読み込む
メモリ上の更新データをディスクに書き込む
データベースアクセス
ユーザ・ プロセス
サーバ・ プロセス
SGA
メモリ上のデータを検索する
インスタンス
データファイルデータファイル
REDOログファイルREDOログファイル
制御ファイル制御ファイル
アーカイブ
REDOログファイル
アーカイブ
REDOログファイル
パラメータファイルパラメータファイル
データファイルデータファイル
REDOログファイルREDOログファイル
制御ファイル制御ファイル
アーカイブ
REDOログファイル
アーカイブ
REDOログファイル
パラメータファイルパラメータファイル
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 63
REDOログ・ バッファ
データベース・ バッファ・キャッシュ 共有プール
SGA
データ検索時の動作 (SQL文解析)
REDOログ・ファイル データ・ファイル REDOログ・ファイル
①検索要求
② SQL文を解析して実行計画をメモリ上に保持
4
検索
Select * from ~;
ユーザ・ プロセス
サーバ・ プロセス
4
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
SQL文の解析とは
SELECT d.dname,e.empno,e.ename,e.job
from emp e,dept d
where e.deptno=d.deptno;
1. SQL文をチェック
2. 実行計画を作成
3. 共有SQL領域に格納
発行されたSQL文
• 同じSQLが今までにあったか
• 指定されている表や列が本当にあるのか(妥当性)
• アクセス権限は正しいか
・・・などをチェック!
SQL文のチェック 1
共有SQL領域に格納 3
実行計画の作成 2
作成された実行計画
0 SELECT STATEMENT Optimizer=CHOOSE (Cost=5 Card=14 Bytes=392)
1 0 HASH JOIN (Cost=5 Card=14 Bytes=392)
2 1 TABLE ACCESS (FULL) OF 'DEPT' (Cost=2 Card=4 Bytes=44)
3 1 TABLE ACCESS (FULL) OF 'EMP' (Cost=2 Card=14 Bytes=238)
↓ データをどのように持ってくるのか
64
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 65
実行計画の格納
SELECT
name
FROM emp
SELECT
name
FROM dept
SELECT
name
FROM emp
各ユーザが同一のSQLを実行した場合、同じ共有SQL領域を利用
共有プール
データベース・ バッファ・ キャッシュ
REDOログ・ バッファ
データ・ディクショナリ・ キャッシュ
ライブラリ・キャッシュ
結果 キャッシュ
11g New!
SELECT
name
FROM EMP
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 66
データ検索時の動作 (SQL文解析)
REDOログ・ファイル データ・ファイル REDOログ・ファイル
①検索要求
② SQL文を解析して実行計画をメモリ上に保持
4
検索
Select * from ~;
ユーザ・ プロセス
サーバ・ プロセス
REDOログ・ バッファ
共有プール
SGA
4
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 67
データ検索時の動作 (メモリ検索)
③ キャッシュ上でデータ検索
4
検索
REDOログ・ファイル データ・ファイル REDOログ・ファイル
ユーザ・ プロセス
サーバ・ プロセス
REDOログ・ バッファ
共有プール
SGA
4
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 68
REDOログ・ファイル データ・ファイル REDOログ・ファイル
④ データをキャッシュに展開
4
検索
データ検索時の動作 (ディスク読込み)
ユーザ・ プロセス
サーバ・ プロセス 4
4
REDOログ・ バッファ
共有プール
SGA
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 69
⑤ 検索結果を返す
4
検索
データ検索時の動作 (結果を返す)
REDOログ・ファイル データ・ファイル REDOログ・ファイル
ユーザ・ プロセス
サーバ・ プロセス 4
REDOログ・ バッファ
共有プール
SGA
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 70
データ検索時の動作 (結果キャッシュ利用)
REDOログ・ファイル データ・ファイル REDOログ・ファイル
①検索要求
SQL文は解析済み。既に同様の問合せ結果も キャッシュ上に存在する
4
検索
Select * from ~;
11g New! EE機能
ユーザ・ プロセス
サーバ・ プロセス
4
REDOログ・ バッファ
共有プール
SGA
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 71
データ検索時の動作 (結果キャッシュ利用)
REDOログ・ファイル データ・ファイル REDOログ・ファイル
② 結果キャッシュの内容をそのまま返す
4
検索
検索結果を返す
ユーザ・ プロセス
サーバ・ プロセス
4
REDOログ・ バッファ
共有プール
SGA
11g New! EE機能
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Serverside Results Cache
• データ・ブロックではなく、検索結果をキャッシュ • キャッシュするデータ量を大幅に削除
• キャッシュはデータベース内で共有
• ヒント文で設定可能 : /*+ result_cache +*/
• データの一貫性を確保
72
Orders
Inventory
Back Orders
Line Items
Pick Lists
検索結果のみキャッシュ
Server Results Cache
従来のキャッシュ
Orders
Inventory
Back Orders
Line Items
Pick Lists
読み込みブロック 全体をキャッシュ
結果のみをキャッシュしてメモリ効率を最適化
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 73
データ更新時の動作 (SQL文解析)
② SQL文を解析して実行計画をメモリ上に保持
4 8
更新
①更新要求
Update ~;
REDOログ・ファイル データ・ファイル REDOログ・ファイル
ユーザ・ プロセス
サーバ・ プロセス
REDOログ・ バッファ
共有プール
SGA
4
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 74
データ更新時の動作 (メモリ検索)
③ キャッシュ上でデータ検索
4 8
REDOログ・ファイル データ・ファイル REDOログ・ファイル
更新
ユーザ・ プロセス
サーバ・ プロセス
REDOログ・ バッファ
共有プール
SGA
4
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 75
4 8
データ更新時の動作 (ディスク読込み)
更新
ユーザ・ プロセス
サーバ・ プロセス
REDOログ・ バッファ
共有プール
SGA
④ データをキャッシュに展開
4
REDOログ・ファイル データ・ファイル REDOログ・ファイル
4
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 76
4 8
データ更新時の動作 (更新ログ生成)
更新
ユーザ・ プロセス
サーバ・ プロセス
⑤ 更新履歴を記録
4 8
REDOログ・ バッファ
共有プール
SGA
REDOログ・ファイル データ・ファイル REDOログ・ファイル
4
4
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 77
⑥ 更新前イメージをUNDO領域に格納し、 行データを更新
4 8
データ更新時の動作 (UNDO生成)
更新
ユーザ・ プロセス
サーバ・ プロセス 4 8
REDOログ・ バッファ
共有プール
SGA
UNDO
4 4 8
REDOログ・ファイル データ・ファイル REDOログ・ファイル
4
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
REDOログ・ファイル データ・ファイル REDOログ・ファイル
4
78
⑦ コミット要求
⑨ コミット完了通知
DISK上のデータ・ファイル には、まだ更新データが 反映されていない
データ更新時の動作 (ログ書き込み)
ユーザ・ プロセス
サーバ・ プロセス 4 8
4 8
⑧ REDOログ・ファイル への書き込み
LGWR
REDOログ・ バッファ
共有プール
SGA
8 UNDO
4
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 79
データ・ファイルへの書き込み
データ更新時の動作 (データ書込み)
コミットとは 非同期!
ユーザ・ プロセス
サーバ・ プロセス 4 8
REDOログ・ バッファ
共有プール
SGA
8 UNDO
4
REDOログ・ファイル データ・ファイル REDOログ・ファイル
4
DBWR
8
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
REDOログ・ファイル データ・ファイル REDOログ・ファイル
4
80
⑦ コミット要求
⑨ コミット完了通知
DISK上のデータ・ファイル には更新データが反映 されていない
更新中のインスタンス障害
ユーザ・ プロセス
サーバ・ プロセス
4 4 8 UNDO 8
LGWR メモリ内の更新データが無くなる
インスタンス障害
REDOログ・ バッファ
共有プール
SGA
4 8
データベース・ バッファ・キャッシュ
~データ更新時の動作 ~
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 81
インスタンス再起動時に 自動的にリカバリを実行 →インスタンス・リカバリ
更新中のインスタンス障害
ユーザ・ プロセス
サーバ・ プロセス
REDOログ・ バッファ
共有プール
SGA
REDOログ・ファイル データ・ファイル REDOログ・ファイル
4 4 8
SMON
8
データベース・ バッファ・キャッシュ
~データ更新時の動作 ~
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 82
REDOログ・ファイル REDOログ・ファイル
データ更新時の動作 (ログ書き込み)
REDOログ・ファイル
1つのREDOログ・ファイルがいっぱいになると次のREDOログ・ファイルに切り替わる
→ ログ・スイッチ
ユーザ・ プロセス
サーバ・ プロセス
REDOログ・ バッファ
共有プール
SGA
LGWR
データベース・ バッファ・キャッシュ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 83
<Insert Picture Here>
Agenda
1. RDBMSとは
2. Oracleの基本動作
3. Oracleのファイル群
4. Oracleのプロセス群とメモリ領域
5. データベース内部動作
6. Oracleの運用管理
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
データベースの運用管理とは?
• データベースの運用管理には様々な作業が存在
• 管理作業は日々の業務なので、管理工数を削減することはシステム全体のコスト削減に直結する
作成とコンフィグレーション
12 %
データローディング 6%
通常業務中のシステム管理
55%
ソフトウェアメンテナンス
6%
インストール 6%
84
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
通常のデータベース管理作業
• データベースの管理と言っても、さまざまな作業がある
• これらの作業を全てこなすには深い知識、経験が必要
85
Top 5 Timed Events
~~~~~~~~~~~~~~~~~~ % Total
Event Waits Time (s) Ela Time
---------------------------------- ------------ ----------- --------
db file sequential read 51,925 8,172 91.49
log file sync 29,367 386 4.32
db file parallel write 614 172 1.93
CPU time 141 1.58
log file parallel write 20,158 53 .59
パフォーマンス診断
OSの情報、V$表の検索、AWRリポート、実行計画
ストレージ管理
Volume manager
領域管理
データファイル追加
チューニング
パラメータ設定、SQL書き換え
バックアップ&リカバリ
OSコマンド、バッチの作成
定期メンテナンス
バッチスクリプトの作成
リソース管理
サーバ負荷確認、メモリサイズ調整
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 86
①リストア: バックアップファイルを
定位置に戻す
バックアップ/リカバリとは
障害時にDatabaseを復旧する
Restore/Recovery
時間
9/1
9/2
バックアップリカバリとは、障害時の復旧(リカバリ)作業と、 復旧に必要なファイルを普段から保存(バックアップ)しておく作業
Database
②リカバリ: バックアップ時点から後に
行われた変更を反映
Backup
Databaseを構成するファイルのコピーを保存しておく
Backup アーカイブREDOログファイル
データファイル
制御ファイル
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
データベース運用モード
• Oracle Databaseの運用方法は大きく2つ
• NOARCHIVELOGモード
• ARCHIVELOGモード
• REDOログを上書きする際の動作が異なる
87
52
53
51
循環してREDOログを使用し、上書き前にアーカイブする
52
53
循環してREDOログを使用
ARCHIVELOGモード NOARCHIVELOGモード
54 54
55
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 88
アーカイブREDOログ・ファイル
循環書込みを行うため、 更新履歴情報が上書きされる
51 51
52
53
54
ログ順序番号
52
53
更新履歴を残しておくために、
REDOログ・ファイルのコピーをとっておく
アーカイブREDOログ・ファイル
REDOログ・ファイル
ARCH
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
NOARCHIVELOGモード運用時の制限
• 全ての変更履歴情報がないため、障害発生時まで復旧できない
→バックアップ取得時までしか復旧できない
89
DataFile1
REDOログ・ファイル
[時間]
データ・ファイルの バックアップ
① 障害発生 リストア ②
③REDOログの 適用
DataFile1
1週間前 現在
DataFile2
上書きされてしまったREDOログファイル
×
DataFile2
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
ARCHIVELOGモード運用時
• 全ての変更履歴情報があるので、障害発生直前まで復旧可能
90
DataFile1
REDOログ・ファイル
[時間]
データ・ファイルの バックアップ
① 障害発生 リストア ②
④REDOログの 適用
DataFile1
1週間前 現在
DataFile2
上書きされてしまったREDOログファイル
アーカイブREDOログ・ファイル
③アーカイブREDOログの 適用
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
バックアップ・ファイルの管理
• Bのバックアップを取得したタイミングで過去のデータ・ファイル及びARCH1からARCH3まで削除可能
• 全てのアーカイブREDOログファイルを保持する必要はない
91
データ・ファイルの
バックアップ
Data File
アーカイブREDOログ・ファイル
[時間]
データ・ファイルの
バックアップ
Data File
ARCH2 ARCH1 ARCH3
A B
データ・ファイル
データ・ファイルの
バックアップ
Data File
ARCH5 ARCH4 ARCH6 ARCH7
C
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
バックアップの取得方法
• Oracle Databaseのバックアップ取得方法
• 物理バックアップ
• Recovery Manager(RMAN)
• OSコマンド+SQL
データベースのバックアップと言えば、通常はこちら
• 論理バックアップ
• Datapumpによるエクスポート
全ての物理バックアップが破損した場合にはこちらから復旧
データベースの移行にも使用可能
92
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Recovery Manager(RMAN)とは
• Oracle Databaseのバックアップ、リストアおよびリカバリを行うためのユーティリティツール
• 実行方法は2種類
• OSプロンプトからRMANを起動し、コマンドラインで実行
• Oracle Enterprise Manager(EM)のGUIを使用して実行
93
% rman target /
RMAN> bacbakup database;
RMAN> restore database;
RMAN> recover database;
コマンドライン Enterprise Manager(EM)
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Enterprise Manager(EMとは)
• Oracle Database環境を一元的に管理・監視するGUI ツール
• 従来コマンドラインで行っていた管理作業を、EMから指示/ 実行できます
94
パフォーマンス診断 チューニングアドバイス
自動ストレージ管理 領域管理
リソース管理
自動チューニング
バックアップ&リカバリ
ジョブスケジューリング
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 95
Enterprise Manager を利用したバックアップ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 96
バックアップ操作概要 (1)
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
バックアップ操作概要 (2)
97
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
バックアップ操作概要 (3)
98
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
バックアップ操作概要 (4)
99
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Oracle Database が出力するログ
• 万が一、障害が発生した場合には、何が起きたのかを把握する必要がある
• Oracle Databaseは様々なコンポーネントから構成
されている
• コンポーネント毎にログが出力される場所が異なる
• 必要な情報を得るまでに時間を要す可能性がある
• 結果、障害復旧及び原因究明に時間がかかってしまう
100
レスポンスタイムの低下
いつまでたっても 処理が終わらない!!
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
ADRによるログの一元管理
• Oracle Database 11g R1から障害対応に必要な情報を、一か所に集約し、障害解析の迅速化を図るリポジトリと
ツールが導入
• Automatic Diagnostic Repository(ADR)
• コマンドラインツール / EM
からの管理が可能
101
tnslsnr client rdbms
Automatic Diagnostic Repository
(ADR)
11g New!
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 102
サポート・ワークベンチ
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 103
障害解析の自動化
障害発生時
ADR(Automatic Diagnostic Repository)
障害管理番号
Alert Log Traces, Dumps
稼動中の情報の取得
ヘルス・チェック
①障害時のアラート、トレースファイルに障害管理番号を紐付てADR(Automatic Diagnostic Repository)に格納
②エラー番号に応じてヘルスチェックが自動的に起動し、メモリ、データの稼動中の状態を調査しADRに格納
③システム管理者に通知され、Enterprise Managerの サポートワークベンチ 画面で確認
EM Support Workbench
⑤IPS(Incident Packaging Service)が、障害管理番号に関連する情報をADR等から取得しzip形式に圧縮
④SQL テストケース・ビルダーが、障害の原因となるSQL文、表作成DDL、統計情報からテストケース作成
サポートセンター連絡時
テストケース
SQL テスト・ケース・ビルダー
IPS(Incident Packaging Service)
Zipファイル
障害復旧作業
⑥SQL 修復アドバイザ、データ・リカバリ・アドバイザが、障害を解析し、障害復旧方法をアドバイス
テストケース、 診断情報の送付
SQL 修復アドバイザ
データ・リカバリ・アドバイザ
SQL文,データ破損の 復旧方法をアドバイス
障害解析に必要な情報を自動取得
必要な情報を全てパッケージ化
障害の自己修復による早期復旧
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 104
Oracle専用の
メモリ領域
バックグラウンド・プロセス ディスク上のデータを
読み込む
メモリ上の更新データをディスクに書き込む
まとめ
ユーザ・ プロセス
サーバ・ プロセス
SGA
メモリ上のデータを検索する
データベース サーバ
RMANによる バックアップ/リストア
データファイルデータファイル
REDOログファイルREDOログファイル
制御ファイル制御ファイル
アーカイブ
REDOログファイル
アーカイブ
REDOログファイル
パラメータファイルパラメータファイル
データファイルデータファイル
REDOログファイルREDOログファイル
制御ファイル制御ファイル
アーカイブ
REDOログファイル
アーカイブ
REDOログファイル
パラメータファイルパラメータファイル
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
付録
105
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Oracle Databaseライセンス体系
• Oracle Databaseは大きく3つのエディションがあります
• システムの規模感、使用したい機能などによってエディションをご選択いただきます
• Enterprise Edition (EE)
• Standard Edition (SE)
• Standard Edition One (SE One)
106
ライセンス価格
システム規模
高
低
大
小
エディションの違い
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 107
Oracle Databaseライセンス体系
• 各エディションごとに標準で利用可能な機能が異なりますので、
詳細は下記をご参照ください
http://www.oracle.com/lang/jp/database/product_editions.html
エディション Enterprise Edition (EE)
Standard Edition (SE)
Standard Edition One (SE One)
CPU最大ソケット 無制限 4 2
概要 システム構成に制限がなく、Oracle Databaseの全
機能を利用できるエディション。また、様々な追加オプションにより、可用性・性能・信頼性など多様なシステム要件を満たす。
Enterprise Editionの一
部の機能と、可用性を高めるためのReal Application Clustersオ
プションを使用可能です。
多くのオプションは使用できませんが、SQLの実行エンジン自体はEnterprise EditionやStandard Editionと変わりません。安価にOracle Database環境をご利用いただけるエディションです。
エディションの違い
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
製品名 Processor 特長
Oracle Real Application
Clusters
2,500,000 24時間365日の可用性、オンデマンドのスケーラビリティ
サーバ統合によるコスト削減、パフォーマンス向上
Oracle Active Data Guard 1,087,000 災害対策サイトのリソースの有効活用
Oracle Partitioning 1,250,000 情報ライフサイクル管理(ILM)の基盤、パフォーマンス向上
Oracle Real Application Testing 1,250,000 実際流れているワークロードをリプレイし、システム変更に伴うリスクを回避しながら、最新テクノロジーを迅速に導入するためのテストツール
Oracle Advanced Compression 1,250,000 構造化データのみでなく、非構造化データも含めあらゆるデータを圧縮、ストレージコスト削減とパフォーマンス向上を実現
Oracle Advanced Security 1,250,000 アプリケーションの変更をすることなく、ネットワークの暗号化、データベースの暗号化、その他の認証などを組み合わせ、コンプライアンス要件に容易に対応
注: 単位は円(税別)
• Enterprise Editionで利用可能なオプション製品(抜粋)
• データベース製品系オプション
• その他のオプション製品や詳細は下記をご参照ください http://www.oracle.com/lang/jp/database/database-options.html
108
Oracle Databaseライセンス体系
各オプションについて
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
• Enterprise Editionで利用可能なオプション製品(抜粋)
• Oracle Enterprise Manager製品系オプション
• その他のオプション製品や詳細は下記をご参照ください
http://www.oracle.com/lang/jp/database/db_manageability.html
製品名 Processor 機能概要
Oracle Diagnostics Pack 543,500 包括的な一連の自動パフォーマンス診断、及び監視機能を提供
Oracle Tuning Pack 543,500 複雑かつ時間のかかるアプリケーションのチューニング作業を自動化する包括的なソリューションを提供
Oracle Change Management Pack 380,400 包括的なデータベースの変更管理及び追跡機能の提供
Oracle Configuration
Management Pack for Oracle Database
543,500 包括的なレポート作成機能と強力な分析機能によるベスト・プラクティス構成の評価
Oracle Provisioning Pack and Patch Automation
for Oracle Database
380,400 Oracle製品およびオペレーティングシステムに対する自動バッチ処理などの提供
Oracle Data Masking Pack 1,250,000 開発環境、テスト環境、及びステージング環境で機密情報をマスキング
注: 単位は円(税別)
Oracle Databaseライセンス体系
109
各オプションについて
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
イベント・セミナー紹介
• Oracle Direct Seminar
• Oracle Directが主催するITプロジェクト全般に渡り役立つ知識やノウハウをご提供するためのインターネット・ライブ・セミナー
• Evening Seminar / Weekend Seminar
• 会社帰りや週末に入門者から上級者まで様々な内容の技術紹介をセミナー形式でご紹介
• Oracle Open World
• 全世界から数万人のIT関係者が参加する大イベント
毎年、オラクルの重要な製品や今後の戦略の発表を実施
110
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Oracle Universityにおける研修フロー
Oracle University の Database 11g 向けカリキ
ュラムは、特定の領域でお勧めのコースに進んだり、Database 11g の複数の領域から上級トピックを選択することができます
111
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
無償でダウンロード、自由に学習、評価
• http://www.oracle.com/technology/global/jp/software/index.html
112
<注意>
•US –OTN のアカウントが必要になります
•ライセンス契約に同意の上ご使用ください
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
• 以下に Oracle におけるデータベースのバージョン表記について記載します
① メジャー・リリース番号
-主な新規バージョンを識別、重要な新機能が含まれる
② メンテナンス・リリース番号
-メンテナンス・リリースのレベル、いくつかの新機能を含む場合がある
③ アプリケーション・サーバーのリリース番号
-Oracle Application Server (Oracle AS) のリリース・レベル
④ コンポーネント固有のリリース番号
-パッチ・セットや暫定リリースなどに応じてコンポーネントごとに設定
⑤ プラットフォーム固有のリリース番号
-プラットフォーム固有のリリース(通常はパッチ・セット)を識別
113
Oracle におけるバージョン表記
(表記例) 11.2.0.1.0 ① ② ③ ④ ⑤
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
技術情報サイト
• Oracle Technology Network (OTN Japan)
• 要会員登録、無料
• http://www.oracle.com/technology/global/jp/index.html
• Oracle Technology Network (US)
• 要会員登録、無料
• http://www.oracle.com/technetwork/index.html
• Oracle Database 11g R2 マニュアル
• http://www.oracle.com/technology/global/jp/documentation/da
tabase.html
• Oracle on Windows関連情報 (@IT)
• http://www.atmarkit.co.jp/fdb/rensai/10_orawin/01/orawin01.ht
ml
114
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
• ORACLE MASTER は日本オラクル社により1997年から提供されている Oracle 製品の知識や技術に関する認定資格
• 2003年には全世界共通の認定資格 「Oracle Certification
Program」 に準拠し、世界レベルで認定
• 資格取得者数はのべ 20万人を突破( 2009年7月1日 時点)
• Database 以外にも Middlewareや Application など各製品群に対応した資格も提供
• 詳細は ORACLE MASTER ポータルをご参照ください http://www.oracle.com/global/jp/education/certification/portal/index.html
115
ORACLE MASTER
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
Oracleの実績 Oracleのサポート
年間売上 約80億円(国内トップクラス) お取引き企業数 8,000社以上(国内トップクラス) サポート契約継続率 90%以上 過去3年のサポート切替実績 1,200件以上
【Oracle販売実績】
Oracle Award受賞
[DODAI] Platform Solution Award
【過去受賞歴】 パートナー別販売実績第1位 Excellent Partner受賞(9年連続 9回) Best Partner賞 Support of The Year賞 Show case of the Year賞 Oracle Real Application Clusters部門 Best Area Performance of the Year賞 Oracle Database 11g Award賞 KUDOS for Oracle Support Partners賞 【ACSP認定】高レベルサポート認定企業
【Oracle受賞歴】
1987年、アシストグループとして株式会社オラクルを設立し、国内で 最初にOracleのライセンス販売、サポートの提供をはじめました。 誠実にお客様の声に耳を傾け、真心を持ってお答えするという姿勢と、 万全のサポート体制でお客様の期待に答え続け、多くのお客様より厚く ご支持を頂けております。
【歴史】
○ マルチベンダー対応 アシストではすべてのOSで実機を用意し、構築スキルを蓄え、 検証環境を整えております。
24時間365日、約200名のOracle専属技術者に よる全国サポート体制 (国内最大級)
過去3年(年間平均)の対応状況 サポート件数 約10,000件/年 フィールド対応件数 約400件/年 顧客満足度 約90%
○ 信頼のフィールドサポート サポートセンターで解決できない問題は、Oracle専任技術 者が直接お客様のもとをお伺いし、解決にあたります。
アシストのOracleビジネスのご紹介
116
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved.
豊富な支援実績
西日本支社のみで約25名のOracle専門部隊がお客さまの課題
解決にあたり、年間100件を超える技術支援を実施しております。
さまざまな課題やご要望に対して、柔軟かつ高品質なサービスを
ご提供することが可能です。
A社(卸売業) RHEL/10g R2基幹系システム
再構築
Real Application Clusters、
バックアップ/リカバリ、データ移行
B社(陸運業) Win/10g R2業務系システム
再構築
Oracle Fail Safe、データ移行、
バックアップ/リカバリ
C社(電気・ガス業) AIX/10g R2基幹系システム
再構築HA、バックアップ/リカバリ、教育
D社(電気機器) Win/11g R1情報系システム
構築Single、DB設計、チューニング
E社(証券業) RHEL/9i R2 災対サイト構築 Data Guard、バックアップ/リカバリ
F社(情報・通信) HP-UX/10g R2情報系システム
再構築
Real Application Clusters、
バックアップ/リカバリ、
パーティション設計
G社(電気機器) AIX/10g R2基幹系システム
再構築
パーティション設計、
バックアップ/リカバリ
技術支援サービスメニュー
技術支援の一例
導入作業
バージョンアップ作業
データベース移行
Oracle データベース設計/実装
バックアップ/リカバリ運用設計
バックアップ/リカバリ検証
データベース診断
監視設計
SQL チューニング
パーティショニング設計
Real Application Clusters(RAC )環境構築
Data Guard 環境構築
その他技術支援(オンサイト技術支援)
各種オンサイト教育
アシストのOracleビジネスのご紹介
117
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 118
以上の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
Oracle、PeopleSoft、JD Edwards、及びSiebelは、米国オラクル・コーポレーション及びその子会社、関連会社の登録商標です。その他の名称はそれぞれの会社の商標の可能性があります。
Copyright© 2010, Oracle. All rights reserved. Copyright© 2013, Oracle & K.K.Ashisuto All rights reserved. 119
ご清聴ありがとうございました。
株式会社アシスト 西日本支社