• 検索結果がありません。

今さら聞けない!? Oracle入門 ~後編~

N/A
N/A
Protected

Academic year: 2022

シェア "今さら聞けない!? Oracle入門 ~後編~"

Copied!
36
0
0

読み込み中.... (全文を見る)

全文

(1)

<Insert Picture Here>

日本オラクル株式会社

今さら聞けない !? Oracle 入門 ~後編~

Oracle Direct Seminar

(2)

<Insert Picture Here>

Agenda

1. Oracle の基本動作 2. Oracle のファイル群

3. Oracle のプロセス群と専用メモリ領域 4. データベース内部動作

1.   Oracle の基本動作 2.   Oracle のファイル群

3.   Oracle のプロセス群と専用メモリ領域

今さら聞けない !? オラクル入門 ~後編~

4.  データベース内部動作    検索時の動作

  更新時の動作 

  バックアップについて

(3)

クライアント データベース サーバ

アプリケーション サーバ SQL

サーバ・

プロセス

サーバ・

プロセス サーバ・

プロセス

Oracle 専用の メモリ領域 Oracle 専用の

メモリ領域

データベースアクセス

ユーザ・

プロセス

ユーザ・

プロセス

ユーザ・

プロセス

(4)

インスタンス

サーバ・

プロセス

Oracle専用の メモリ領域 Oracle専用の

メモリ領域

常駐プロセス 常駐プロセス

メモリ上のデータを検索する

メモリ上の更新データを ディスクに書き込む

データベースアクセス

ユーザ・

プロセス

SGA SGA

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

データベース

サーバ ディスク上のデータ

を 読み込む

データファイル

REDO

ログファイル アーカイブ

REDOログファイル

制御ファイル パラメータファイル

(5)

REDO

ログファイル

REDO

ログファイル

アーカイブ

REDOログファイル

アーカイブ

REDOログファイル

制御ファイル 制御ファイル パラメータファイル

パラメータファイル

表データを格納するファイル 以外にもいくつかのファイル が存在

Oracle のファイル群

データファイル データファイル

(6)

REDOログ・

バッファ 共有プール

データベース・

バッファ・キャッシュ

システム・グローバル領域 (SGA)

y 処理を高速にするための共有メモリー領域

・表データ

・索引データ

・UNDO情報

などを一時的に格納

・SQL文の情報

・DBの管理情報

などを保持

・更新履歴情報

を一時的に格納

(7)

z

SMON インスタンス回復を実施

z

PMON

 ユーザプロセスの回復を実施

z

DBWR (DBライター) データの書き込み

z

CKPT チェックポイントの処理実施

z

LGWR (

ログライター

)

 ログの書き込み

z

ARCH アーカイブファイルを生成

SGA

データ・ファイル

REDO

ログファイル

制御ファイル

アーカイブファイル アーカイブファイル PMONPMON SMONSMON

DBWRDBWR

CKPTCKPT

LGWR LGWR

ARCHARCH

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

(8)

<Insert Picture Here>

Agenda

1. Oracle の基本動作 2. Oracle のファイル群

3. Oracle のプロセス群と専用メモリ領域 4. データベース内部動作

1.   Oracle の基本動作 2.   Oracle のファイル群

3.   Oracle のプロセス群と専用メモリ領域

今さら聞けない !? オラクル入門 ~後編~

4.  データベース内部動作    検索時の動作

  更新時の動作 

  バックアップについて

(9)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

データ検索時の動作 ( SQL 文解析)

サーバ・

プロセス

REDOログ・ファイル データ・ファイル REDOログ・ファイル

①検索要求

② SQL文を解析して実行計画をメモリ上に保持

4

検索

ユーザ・

プロセス

Select * from ~;

(10)

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

実行計画の作成

2

共有SQL領域に格納

3

作成された実行計画

 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)

↓ データをどのように持ってくるのか

(11)

実行計画の格納

共有プール 共有プール

ライブラリ・キャッシュ ライブラリ・キャッシュ

SELECT name

FROM emp

SELECT name

FROM dept SELECT

name

FROM emp

REDOログ・

REDO

ログ・

バッファ

バッファ データ・

データ・

ディクショナリ・

ディクショナリ・

キャッシュ キャッシュ

データベース・

データベース・

バッファ・キャッシュ

バッファ・キャッシュ

各ユーザが同一の SQL を実行した場合、同じ共有 SQL 領域を利用

(12)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

データ検索時の動作 ( SQL 文解析)

サーバ・

プロセス

REDOログ・ファイル データ・ファイル REDOログ・ファイル

①検索要求

② SQL文を解析して実行計画をメモリ上に保持

4

検索

ユーザ・

プロセス

Select * from ~;

(13)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

データ検索時の動作 (メモリ検索)

サーバ・

プロセス

③ キャッシュ上でデータ検索 SGA

4

検索

ユーザ・

プロセス

REDOログ・ファイル データ・ファイル REDOログ・ファイル

(14)

REDOログ・ファイル データ・ファイル REDOログ・ファイル

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

サーバ・

プロセス

④ データをキャッシュに展開

4

検索

4 4

データ検索時の動作 (ディスク読込み)

ユーザ・

プロセス

(15)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

サーバ・

4

プロセス

⑤ 検索結果を返す

4

検索

データ検索時の動作 (結果を返す)

REDOログ・ファイル データ・ファイル REDOログ・ファイル

ユーザ・

プロセス

(16)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

データ更新時の動作 ( SQL 文解析)

サーバ・

プロセス

SQL 文を解析して実行計画をメモリ上に保持

4 8

更新

①更新要求

ユーザ・

プロセス

Update ~;

REDOログ・ファイル データ・ファイル REDOログ・ファイル

(17)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

データ更新時の動作 (メモリ検索)

サーバ・

プロセス

③ キャッシュ上でデータ検索 SGA

4 8

ユーザ・

プロセス

REDOログ・ファイル データ・ファイル REDOログ・ファイル

更新

(18)

REDOログ・ファイル データ・ファイル REDOログ・ファイル

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

サーバ・

プロセス

④ データをキャッシュに展開

4 4

4 8

データ更新時の動作 (ディスク読込み)

ユーザ・

プロセス

更新

(19)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

サーバ・

4

プロセス

⑤ 更新履歴を記録

4 8

4 8

データ更新時の動作 (更新ログ生成)

ユーザ・

プロセス

REDOログ・ファイル データ・ファイル REDOログ・ファイル

4

更新

(20)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

4 8

サーバ・

プロセス

⑥ 更新前イメージをUNDO領域に格納し、

行データを更新

4 8

データ更新時の動作 ( UNDO 生成)

4

ユーザ・

UNDO

プロセス

4

更新

4 8

(21)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

REDOログ・ファイル データ・ファイル

4 4

REDOログ・ファイル

4 8

8 4 4

サーバ・

プロセス

⑦ コミット要求

⑨ コミット完了通知

DISK上のデータ・ファイル には更新データが反映 されていない

データ更新時の動作 (ログ書き込み)

4 8

LGWR

⑧ REDOログ・ファイル

LGWR

への書き込み

ユーザ・

UNDO

プロセス

(22)

4 8

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

REDOログ・ファイル

4 4

REDOログ・ファイル

8 4 4

サーバ・

プロセス

DBWRDBWR

データ・ファイルへの書き込み

8

データ更新時の動作 (データ書込み)

コミットとは 非同期!

ユーザ・

UNDO

プロセス

(23)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

REDOログ・ファイル データ・ファイル

4 4

REDOログ・ファイル

4 8

8 4 4

4 8

LGWR LGWR

サーバ・

プロセス

⑦ コミット要求

⑨ コミット完了通知

DISK上のデータ・ファイル には更新データが反映 されていない

更新中のインスタンス障害

~データ更新時の動作 ~

UNDO

メモリ内の更新データが無くなる

インスタンス障害

ユーザ・

プロセス

(24)

4 8

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

REDOログ・ファイル

4

REDOログ・ファイル

サーバ・

プロセス

8

SMON SMON

インスタンス再起動時に 自動的にリカバリを実行

更新中のインスタンス障害

~データ更新時の動作 ~

ユーザ・

プロセス

(25)

REDOログ・

バッファ データベース・

バッファ・キャッシュ 共有プール

SGA

REDOログ・ファイル REDOログ・ファイル

LGWR LGWR

データ更新時の動作 (ログ書き込み)

サーバ・

プロセス

REDOログ・ファイル LGWR

LGWR

1つのREDOログ・ファイルがいっぱいになると 次のREDOログ・ファイルに切り替わる

→ ログ・スイッチ

ユーザ・

プロセス

(26)

データベース運用モード

52

53

51

循環してREDOログを使用し、

上書き前にアーカイブする

52

53

循環してREDOログを使用 ARCHIVELOGモード NO ARCHIVELOGモード

54 54

(27)

アーカイブREDOログ・ファイル

循環書込みを行うため、更新 履歴情報が上書きされる

51 51

52 53

54

ログ順序番号

52

53

更新履歴を残しておく為に、

REDOログ・ファイルのコピーをとっておく アーカイブREDOログ・ファイル

REDOログ・ファイル ARCHARCH

(28)

DataFile1

DataFile2

[時間]

データ・ファイルの バックアップ

DataFile1

y 更新履歴情報がないので、バックアップ時点のデ ータまでをリカバリ

y データベースとしての一貫性を保つために全 DB ファイルをリストア

全データベースのバックアップを リストアする

DataFile2

① 障害発生

NOARCHIVELOGモード運用時の

リカバリの制限

(29)

DataFile1

障害直前の状態まで復旧可能

アーカイブREDOログ・ファイル

[時間]

データ・ファイルの バックアップ

・・・・・・

① 障害発生

リストア

④ REDO

ログ・ファイル適用

③ アーカイブ    適用

DataFile1

ARCH2

ARCH1 ARCH9

REDOログ

障害直前の状態まで復旧可能

1週間前 現在

(30)

データ・ファイルの バックアップ Data File アーカイブREDOログ・ファイル

[時間]

データ・ファイルの バックアップ

Data File

ARCH2

ARCH1 ARCH3

A B C

Bのバックアップを取得したタイミングで過去の

データ・ファイル及びARCH1からARCH3まで削除可能

データ・ファイル

データ・ファイルの バックアップ Data File

ARCH5

ARCH4 ARCH6 ARCH7

バックアップ・ファイルの管理

(31)

Enterprise Manager 10g を利用した

バックアップ

(32)

バックアップ操作概要 (1)

(33)

バックアップ操作概要 (2)

(34)

<Insert Picture Here>

Agenda

1. Oracle の基本動作 2. Oracle のファイル群

3. Oracle のプロセス群と専用メモリ領域 4. データベース内部動作

1.   Oracle の基本動作 2.   Oracle のファイル群

3.   Oracle のプロセス群と専用メモリ領域

今さら聞けない !? オラクル入門 ~後編~

4.  データベース内部動作

(35)

http://www.oracle.co.jp/direct 0120-155-096

詳しい説明、システム導入のご相談は

Oracle Direct

まずはお問合せください

(36)

参照

関連したドキュメント

7 Seasar Conference Seasar Conference 2006 Autumn ロギング処理を共通化したい!

File Station ントロール 仮想 ドライブ 、共有 、 リモートフォルダ リンクの 作成、転送 、Windows ACL ログ エディタ 、圧縮/抽出

Oracle GoldenGate活用ポイント(ソース編) Oracle instance Data Pump Trailファイル Oracleクライアント ターゲット側 ソース側 Manager Capture

Oracle Database 共有プール データベース・ バッファ・キャッシュ REDOログ・ バッファ 変更履歴 A→B A 変更前 データ A B 実行計画

5 大規模テーブル運用の問題点 問題点 問題点1 1:パフォーマンスの低下

さらに、MSOのように同じ画面上で波形・ロジックの2つを解

Oracle8iアーキテクチャー 概要 バックグラウンドプロセス システムグローバルエリア (SGA) サーバー プロセス ユーザー プロセス 初期化

ZOZO は、 2000 年にインターネット通販を⼿掛けてから、アパレル販売を中⼼に急成⻑を遂げまし た。 2019 年 3 ⽉期の商品取扱⾼は 3200 億円を超え、また