45
第1章 DB2のアーキテクチャ 本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。 この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する 使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同 様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。 © Copyright IBM Japan Co., Ltd. 2009 <2009年12月>

のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

第1章 DB2のアーキテクチャ

本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。

この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する

使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同

様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。

© Copyright IBM Japan Co., Ltd. 2009

<2009年12月>

Page 2: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

2 © 2009 IBM Corporation

• DB2 ファミリーファミリーファミリーファミリー製品製品製品製品

• Oracle、、、、DB2のののの用語用語用語用語のののの比較比較比較比較

• DB2ととととOracleののののアーキテクチャアーキテクチャアーキテクチャアーキテクチャ比較比較比較比較

• メモリー

• プロセス

• ファイルシステム構造

• データ、カタログ領域

• セキュリティ

• DB2のののの基本基本基本基本、、、、ツールツールツールツール

• インスタンス管理

• ストレージ管理

• 接続管理

• 管理ツール

• 基本操作基本操作基本操作基本操作のののの違違違違いいいい

内容

Page 3: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

3 © 2009 IBM Corporation

DB2 ファミリー製品

DB2 Personal Edition� Linux (32bit/64bit)� Windows (32bit/64bit)

DB2 Workgroup Server Edition� Linux (32bit/64bit)� Linux Power (64bit)� Windows (32bit/64bit)� AIX (64bit)� Solaris (64bit)� HP-UX (64bit)

DB2 Enterprise Server Edition� Linux (64bit)� Linux Power (64bit)� Linux zSeries (64bit)� Windows (32bit/64bit)

� AIX (64bit)� HP-UX (64bit)� Solaris (64bit)

DB2 Express Edition� Linux (32bit/64bit)� Linux Power (64bit)� Windows (32bit/64bit)� Solaris (x86-64)

DB2 Enterprise 9

DB2 Workgroup 9

DB2 Express 9

DB2 Personal 9

Database Enterprise Developer Edition� All Servers and clients supported by DB2

For Developer

• DB2 9.7

• DB2 Data Server の最新Version

• 2009年5月にアナウンス 2009年6月リリース

Page 4: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

4 © 2009 IBM Corporation

DB2 9.7 エディション

• IBM DB2 Enterprise Server Edition 9.7

• DB2 Enterprise 9.7 は、中規模企業から大企業向けのデータベース・サーバー

• プロセッサー数やメモリー等の制限なし

• 以下の機能を含む

• PL/SQL、pureXML, HADR, オンライン再編成, 拡張コピーサービス, MQT, MDC, テー

ブル・パーティショニング機能など

• IBM DB2 Workgroup Server Edition 9.7

• DB2 Workgroup 9.7 は中小企業向けのデータベース・サーバー

• 最大480 PVU(*1) メモリー16GB以下

• Value Unit課金、許可ユーザー課金のほかに、V9.7よりLimited Use Socket 課金(4ソケッ

ト搭載サーバーまで)

• PL/SQL、pureXML, HADR,オンライン再編成機能を含む

(*) PVU: プロセッサー Value Unit

Page 5: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

5 © 2009 IBM Corporation

DB2 9.7 エディション

• IBM DB2 Express Server Edition 9.7

• DB2 Express 9.7は、中規模ビジネス(SMB)市場向けに、DB2のフルファンクションを

低価格で提供

• 最大200 PVU メモリー 4GB 以内

• pureXML機能を含む

• IBM DB2 Express-C

• ライセンス無償で使用可能

• 最大 2コア メモリー2 GB以内

• pureXML機能を含む

Page 6: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

6 © 2009 IBM Corporation

DB2 9.7 クライアント

• IBM Data Server Client

• アプリケーション開発、DB管理、クライアント/サーバー構成のための機能を提供

• IBM Data Server Runtime Client

• JDBC, ADOODBC, DB2 CLI, .NET, ADO.NET, OLE DB, PHP ,Ruby をサポート

• GUIツールは含まれていないが、DB2 CLP機能を含む

• IBM Data Server Driver for ODBC, CLI, and .NET

• DB2 CLI API、ODBC API、.NET API を使用するアプリケーションに対するランタイム・サポートを提供するWindowsプラットフォーム用のクライアント

• IBM Data Server Driver for JDBC and SQLJ

• Java ストアード・プロシージャーおよびユーザー定義関数のデフォルトのドライバー

• JDBC 3 および JDBC 4 準拠アプリケーションのサポート、SQLJのサポートを提供

Page 7: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

7 © 2009 IBM Corporation

DB2 V9.7 フィーチャー

SMP/MPPシステムのクラ

スターにわたるデータベー

スの区分化機能(DPF)&

ウェアハウス機能

PVU

Base/Enterprise Warehouse

Feature

データ行圧縮、索引圧縮、

一時表圧縮

PVU

DB2 Storage Optimization

Feature (SOF)

ラベル・ベースのアクセス

制御 (LBAC)

許可ユーザー

PVU

DB2 Advanced Access Control

Feature (AACF)

空間情報管理許可ユーザー

PVU

DB2 Geodetic Data

Management Feature

(組込み)

Enterprise

(組込み)

Workgroup

DB2間のQレプリケーショ

PVUHomogeneous Replication

Feature

Express 含まれる機能課金単位DB2 V9.7 Features

DB2 ワークロード管理,

Performance Expert,

Query Patroller

許可ユーザー

PVU

DB2 Performance

Optimization Feature (POF)

HADR, オンライン再編成、

TSA, 拡張コピー・サービス

許可ユーザー

PVU

DB2 High Availability Feature

(HAF)

※ Featureは●の箇所のみになります

Page 8: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

8 © 2009 IBM Corporation

ブランクブランクブランクブランク・・・・ページページページページ

Page 9: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

9 © 2009 IBM Corporation

Oracle、DB2用語の比較

Oracle: エクステントエクステントエクステントエクステントのののの集合集合集合集合でででで論理記論理記論理記論理記

憶構造憶構造憶構造憶構造にににに割割割割りりりり当当当当てられるてられるてられるてられる

オブジェクトオブジェクトオブジェクトオブジェクトセグメントセグメントセグメントセグメント

プロセスプロセスプロセスプロセスとととと共有共有共有共有メモリーメモリーメモリーメモリーからからからから構成構成構成構成されされされされ

るるるる。。。。DB2インスタンスインスタンスインスタンスインスタンスはははは、、、、データベーデータベーデータベーデータベー

スススス・・・・マネージャーマネージャーマネージャーマネージャー((((DBM))))ともともともとも呼呼呼呼ばれるばれるばれるばれる。。。。

DB2はははは1インスタンスインスタンスインスタンスインスタンスにににに複数複数複数複数DBをもつをもつをもつをもつ

ことがことがことがことが可能可能可能可能。。。。Oracleインスタンスインスタンスインスタンスインスタンスはははは、、、、1インスタンスインスタンスインスタンスインスタンス1DB。。。。

インスタンスインスタンスインスタンスインスタンスインスタンスインスタンスインスタンスインスタンス

連続連続連続連続したしたしたしたデータデータデータデータ・・・・ブロックブロックブロックブロック/ページページページページのののの

セットセットセットセット

エクステントエクステントエクステントエクステントエクステントエクステントエクステントエクステント

データデータデータデータ格納格納格納格納のののの最小単位最小単位最小単位最小単位ページページページページデータデータデータデータ・・・・ブロックブロックブロックブロック

Oracle: インスタンスインスタンスインスタンスインスタンス、、、、DBののののパラメーパラメーパラメーパラメー

ターターターターをををを格納格納格納格納するするするするファイルファイルファイルファイル

DB2: DB毎毎毎毎ににににDB構成構成構成構成ファイルファイルファイルファイルをををを持持持持つつつつ

データベースデータベースデータベースデータベース・・・・マネージャーマネージャーマネージャーマネージャー構成構成構成構成

ファイルファイルファイルファイル

データベースデータベースデータベースデータベース構成構成構成構成ファイルファイルファイルファイル

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

DB2:1インスタンスインスタンスインスタンスインスタンスにににに複数複数複数複数DB作成可作成可作成可作成可

能能能能

データベースデータベースデータベースデータベースデータベースデータベースデータベースデータベース

CommentDB2Oracle

Page 10: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

10 © 2009 IBM Corporation

Oracle、DB2用語の比較

データデータデータデータをををを格納格納格納格納するするするする領域領域領域領域表表表表スペーススペーススペーススペース表表表表スペーススペーススペーススペース

データデータデータデータをををを格納格納格納格納するするするする物理領域物理領域物理領域物理領域DMS コンテナーコンテナーコンテナーコンテナーデータデータデータデータ・・・・ファイルファイルファイルファイル

リカバリーログリカバリーログリカバリーログリカバリーログトランザクションログトランザクションログトランザクションログトランザクションログRedo ログファイルログファイルログファイルログファイル

データデータデータデータ・・・・ディクショナリディクショナリディクショナリディクショナリややややカタログカタログカタログカタログ

情報情報情報情報をををを格納格納格納格納するするするする表領域表領域表領域表領域

カタログカタログカタログカタログ表表表表スペーススペーススペーススペースSYSTEM表領域表領域表領域表領域

システムカタログシステムカタログシステムカタログシステムカタログ情報情報情報情報ののののキャッキャッキャッキャッ

シュシュシュシュ領域領域領域領域

カタログキャッシュカタログキャッシュカタログキャッシュカタログキャッシュデータデータデータデータ・・・・ディクショナリキャッシュディクショナリキャッシュディクショナリキャッシュディクショナリキャッシュ

バックアップバックアップバックアップバックアップ等等等等ののののヒープヒープヒープヒープ領域領域領域領域ユーテリティユーテリティユーテリティユーテリティ・・・・ヒープヒープヒープヒープラージラージラージラージ・・・・プールプールプールプール

コンパイルコンパイルコンパイルコンパイルしたしたしたしたSQLををををキャッシュキャッシュキャッシュキャッシュ

するためにするためにするためにするために使用使用使用使用されるされるされるされる領域領域領域領域

パッケージパッケージパッケージパッケージ・・・・キャッシュキャッシュキャッシュキャッシュライブラリーライブラリーライブラリーライブラリー・・・・キャッシュキャッシュキャッシュキャッシュ

データベースデータベースデータベースデータベースののののメタデータメタデータメタデータメタデータシステムシステムシステムシステム・・・・カタログカタログカタログカタログデータデータデータデータ・・・・ディクショナリディクショナリディクショナリディクショナリ

インスタンスインスタンスインスタンスインスタンス起動時起動時起動時起動時にににに割割割割りりりり当当当当てらてらてらてら

れるれるれるれるメモリーメモリーメモリーメモリー領域領域領域領域

インスタンスインスタンスインスタンスインスタンス共有共有共有共有メモリーメモリーメモリーメモリーSGA

表表表表スペーススペーススペーススペースへのへのへのへのI/Oをををを減減減減らすためらすためらすためらすため

ののののバッファーバッファーバッファーバッファー

バッファープールバッファープールバッファープールバッファープールデータデータデータデータ・・・・バッファーバッファーバッファーバッファー

SQLをををを拡張拡張拡張拡張したしたしたしたプログラミングプログラミングプログラミングプログラミング言言言言

語語語語

SQL/PLPL/SQL

CommentDB2Oracle

Page 11: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

11 © 2009 IBM Corporation

DB2とOracleのアーキテクチャ比較

• アーキテクチャアーキテクチャアーキテクチャアーキテクチャ概要概要概要概要

• メモリーメモリーメモリーメモリー・・・・アーキテクチャアーキテクチャアーキテクチャアーキテクチャ

• プロセスプロセスプロセスプロセス

• ファイルファイルファイルファイル、、、、ディレクトリディレクトリディレクトリディレクトリ構造構造構造構造

• データデータデータデータ・・・・ディレクトリディレクトリディレクトリディレクトリ、、、、カタログカタログカタログカタログ

• セキュリティセキュリティセキュリティセキュリティ

Page 12: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

12 © 2009 IBM Corporation

アーキテクチャ概要– Oracle

• Oracle : 3層構造層構造層構造層構造

• 上位層は、メモリーアキテクチャ

• 中間層は、プロセスコンポーネント

• 下位層は、データベースコンポーネント

Java

Pool

Database

Buffer

Cache

Data

Dictionary

Cache

OracleArchitectureOracleArchitecture

Archive

Log

Files

Data

Files

Redo

Log

Files

Oracle Oracle

DatabaseDatabase

RECO

Oracle Oracle

ProcessesProcesses

Library

Cache

Init.

Ora

Redo

Log

Buffer

SGASGAPP

GG

AA

User

ProcessesUser

ProcessesUser

ProcessesUser

Processes

PMON

Control

Files

ARCnCKPTDBWn LGWRSMON

Shared Pool

Large

Pool

Streams

Pool

InstanceInstance

Page 13: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

13 © 2009 IBM Corporation

アーキテクチャ概要 – DB2

• DB2:クライアントクライアントクライアントクライアント/サーバーモデルサーバーモデルサーバーモデルサーバーモデル

• DB2は全てのプラットフォームで、

スレッドベースで実装されている

• DBMSとしてのとしてのとしてのとしての基本的基本的基本的基本的なななな動動動動きはきはきはきは

Oracleとととと同様同様同様同様

• 例

• 更新データは必ずログに書き込まれ、COMMITのタイミングでディス

クに書き出される

• 表スペースへの反映はBFPを介し

て非同期に行われる

Page 14: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

14 © 2009 IBM Corporation

メモリー・アーキテクチャ– Oracle

• SGA とととと PGA

• Oracleのメモリー構造はシステム・グローバル領域(SGA)とプログラム・グローバル領域(PGA)から構成される

• SGA

• インスタンス起動時に割り当てられる共有メモリー領域

• SGAは共有プール、データベース・バッファー・キャッシュ、REDOログ・バッ

ファーとして使用される

• PGA

• 特定のサーバー・

プロセスだけで使用

される非共有領域

SGA

Shared Pool

Library Cache

Data Dictcache

DataBufferCache

RedoLog

Buffer

PGA

Server Process

Instance

PGAPGA

Page 15: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

15 © 2009 IBM Corporation

メモリー・アーキテクチャ– DB2

• DB2 はははは大大大大きくきくきくきく3つのつのつのつの共有共有共有共有メモリーメモリーメモリーメモリー領領領領

域域域域があるがあるがあるがある

• インスタンス・メモリー

• データベース・メモリー• データベース・メモリーの例:

• バッファー・プール

• ロック・リスト

• データベース・ヒープ

• ユーティリティ・ヒープ

• パッケージ・キャッシュ

• カタログ・キャッシュ

• アプリケーション・メモリー

Database_memory

Appl_memory

Database_A

Database_memory

Appl_memory

Database_B

DBMS Memory

Instance_memory

Agent Private Memory

Page 16: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

16 © 2009 IBM Corporation

プロセス – Oracle

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

• データベース・ライター (DBWR)

• ログ・ライター(LGWR)

• システム・モニター (SMON)

• プロセス・モニター (PMON)

• チェックポイント (CKPT)

• リカバラ・プロセス(RECO)

• アーカイバ ・プロセス(ARCn)

• ディスパッチャー・プロセス (Dnnn)

• ユーザーユーザーユーザーユーザー・・・・プロセスプロセスプロセスプロセスととととサーバープロセスサーバープロセスサーバープロセスサーバープロセス

• アプリケーションとOracle間の通信に

使用される

• アプリケーションの接続の毎に、ユーザープロセスと

サーバープロセスのペアが作成される

• リスナーリスナーリスナーリスナー

• 接続要求をリスニングする

Page 17: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

17 © 2009 IBM Corporation

プロセス – DB2

• サーバーサーバーサーバーサーバー側側側側ではではではでは、、、、アクティビティーアクティビティーアクティビティーアクティビティーははははエンジンエンジンエンジンエンジン・・・・

ディスパッチディスパッチディスパッチディスパッチ可能単位可能単位可能単位可能単位((((EDU))))でででで制御制御制御制御されるされるされるされる

• データベースサーバーデータベースサーバーデータベースサーバーデータベースサーバースレッドスレッドスレッドスレッド及及及及びびびびプロセスプロセスプロセスプロセス

• db2sysc、メイン・システム・コントローラEDUは、重要な DB2 データベース・サーバー・イベントを処理する

• db2pfchr、バッファー・プール・プリフェッ

チャー用

• db2pclnr、バッファー・プール・ページ・ク

リーナー用

• db2logmgr、ログ・マネージャ用。リカバ

リー可能なデータベースのログファイルを

管理

• クライアントクライアントクライアントクライアント

• クライアント EDUやプロセスは、データベースとの最初の接触を、リスナーを通じて行う

• db2agent

• db2fmp

Page 18: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

18 © 2009 IBM Corporation

InstanceDatabase

ファイル・ディレクトリ構造 – Oracle

• Oracle データベースファイルデータベースファイルデータベースファイルデータベースファイル

• Oracle ディレクトリディレクトリディレクトリディレクトリ構造構造構造構造((((OFA基準基準基準基準))))

Parameter file

Control file

Datafiles Redo log files

Password file

Alert and trace log file

Page 19: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

19 © 2009 IBM Corporation

ファイル・ディレクトリ構造– DB2

• DB2 ディレクトリディレクトリディレクトリディレクトリ構造構造構造構造

• DB2コピーディレクトリー

• インスタンスディレクトリ:

• エラーログファイル (db2dump)

• サーバーサイドプログラム (function) など

• データベースディレクトリ:

• データベースファイル (SQL0000n)

• トランザクションログ (SQLOGDIR)

• 自動ストレージパス(Nodennnn/DBNAME)

• 表スペースコンテナー

• 以下のパスは、任意のパスに設定

• db2dump

• トランザクションログディレクトリ

• 自動ストレージパス

• 表スペースコンテナー (非自動ストレージ)

Drive/Directory

DB2 instance name

Node0000

SQL00001

DBNAME

SQLOGDIR

C0000000.CATT0000000

T0000001 C0000000.CAT

T0000002 C0000000.LRG

SQLDBCONF

The partition number of the database, 0 for a non-partitioned database

The database id starts at 1 and increases for all subsequent database

The database configuration file

The directory for default log files

The DMS container for catalog tablespace

The SMS container for default system temporary tablespace

The DMS container for default user tablespace

Drive/Directory

sqllib

Error log file

All the external stored procedures and executable programs are stored in here

db2dump

function

Instance directory

Database directory

etc...

Page 20: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

20 © 2009 IBM Corporation

データ・ディクショナリ、カタログ

Oracle: データデータデータデータ・・・・ディクショナリディクショナリディクショナリディクショナリ

• User_xxx ビュー

• 現在のユーザーが所有するオブジェクトに関する情報を表示するビュー

• ALL_xxx ビュー

• 現在のユーザーがアクセス可能な全てのオブジェクトに関する情報を表示するビュー

• DBA_xxx ビュー

• データベース管理ビュー

• データベース内の全オブジェクトに関する情報を表示するビュー

• DB2: Catalog

• SYSCAT ビュー

• 参照のみ可能なDBのオブジェクト情報のビュー

• SYSSTAT ビュー

• 更新可能な統計情報のビュー

DB2 9.7 では、Oracleデータディクショナリを、DB2のカタログ表のエントリーにマッピングするビューが提供されている

Page 21: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

21 © 2009 IBM Corporation

セキュリティ – Oracle

• Oracle

• データベースを使用するユーザーは、事前にOracle内でユーザーとして作成されて

いる必要がある

• データベース内の情報でユーザーを認証

• パスワードは、データ・ディクショナリに暗号化されて格納される

USER ken PASSWORD a@x?s

Authentication OK/NG

I'm ken

OracleDatabase

....

............

Page 22: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

22 © 2009 IBM Corporation

• DB2

• DB2は、ユーザー認証はOSに依存するため、データベース内への登録は不要

• OSのログインIDとデータベース・ユーザー名の区別はない

• OSにデータベースに接続するユーザーを作成しておく必要がある

SYSADMSYSADMSYSADMSYSADM

SYSCTRLSYSCTRLSYSCTRLSYSCTRL

SYSMAINTSYSMAINTSYSMAINTSYSMAINT

DBADMDBADMDBADMDBADM

USER ken PASSWORD a@x?s

ACCESS

OK

DB2 は特権の情報は

データベース内で持つ

セキュリティ – DB2

Authentication OK/NG

I'm ken

Can Iaccess?

NO

....DB2Data

Server

....

....

Page 23: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

23 © 2009 IBM Corporation

DB2基本操作と管理

• DB2 管理管理管理管理タスクタスクタスクタスク

• インスタンス管理

• データベース

• 構成パラメーター

• ストレージ

• 表スペース

• 管理管理管理管理ツールツールツールツール

• IBM Optim Database Administrator

Page 24: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

24 © 2009 IBM Corporation

DB2 インスタンス管理

• DB2製品製品製品製品ののののインストールインストールインストールインストールされたされたされたされたコードセットコードセットコードセットコードセットをををを、、、、 “DB2 copy”というというというという

• 1つのOS上に複数のDB2コピーを作成可能

• DB2 コピーのコードレベル (バージョンや、fix pack レベル) が同一でも異なっていてもよい

• DB2インストールインストールインストールインストール後後後後にににに、、、、インスタンスインスタンスインスタンスインスタンスがががが作成作成作成作成されるされるされるされる

• 1インスタンスは、1DB2コピーと対応する

• 1DB2コピーは複数のインスタンスを持つことが可能

• DB2 インスタンスはDB2コピー間を移動させることが可能

Operating System

DB2 Copy A/opt/IBM/db2/V9.7_GA

DB2 Copy B/opt/IBM/db2/V9.7_FP1

db2inst1 db2inst2 db2inst2

db2iupdt コマンドでインスタンスを移行

Page 25: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

25 © 2009 IBM Corporation

DB2 インスタンス管理

• インスタンスインスタンスインスタンスインスタンス作成作成作成作成

• rootユーザーでインスタンス作成を実行

• インスタンスを作成 : db2icrt

• 現在あるインスタンスをリストし、インスタンスが作成されたことを確認

• インスタンスをリスト: db2ilist

• 現在のDB2コピーのインスタンス・ディレクトリーでコマンドを実行

• インスタンスインスタンスインスタンスインスタンス起動起動起動起動

• インスタンス作成後、インスタンス・ユーザーでインスタンスの起動を実行

• インスタンスを開始: db2start

• インスタンスを停止: db2stop

• インスタンスが活動状態かどうか調べる

• DB2インスタンスが活動状態かどうか調べる

• インスタンスのプロセスが存在しているかどうか、db2_psコマンドで確認することが可能(Linux/UNIX only)

• インスタンスインスタンスインスタンスインスタンス作成作成作成作成・・・・削除削除削除削除・・・・更新更新更新更新

• インスタンスを削除: db2idrop

• インスタンスを更新: db2iupdt

• 新しいDB2コピー側でコマンドを実行

• インスタンスを移行: db2iupgrade ((((旧旧旧旧::::db2imigr))))

• 新しいDB2コピー側でコマンドを実行

db2_ps

db2icrt -u db2fenc1 db2inst1

Page 26: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

26 © 2009 IBM Corporation

• データベースデータベースデータベースデータベース

• DB2では、1インスタンスに複数DBを作成、実行可能

• DB2はスレッドモデルで実行されるため、複数DB環境でも、1つのdb2syscプロセスで実

行される

• アクティブなスレッド(EDU)は“db2pd -edus” コマンドで確認可能

• データベース作成

• DB1 という名前のデータベースを作成

• DBを作成するパスを “on <full path>” オプションで指定可能

• データベース削除

• データベースへの接続がある場合は、データベースの削除が失敗する

DB2 データベース

db2 create database DB1 on /db2/db1

db2 drop database DB1

db2inst1DB2DB1

TablespaceB Tablespace1 Tablespace2TablespaceA

Page 27: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

27 © 2009 IBM Corporation

DB2 構成パラメーター

• DB2DB2DB2DB2のののの構成構成構成構成パラメーターパラメーターパラメーターパラメーターはははは以下以下以下以下ののののレベルレベルレベルレベルでででで構成構成構成構成

環境変数

システム

レジストリー変数(g)

DB2

インスタンス

データベース

レジストリー変数(i)

DBM CFG

DB CFG

環境変数でレジストリー変数を上書きできる

プロファイル・レジストリー(g) (グローバル)

プロファイル・レジストリー(i) (インスタンス)

データベース・マネージャー構成パラメーター

データベース構成パラメーター

影響範囲:インスタンス内の全DBに適用

影響範囲:単体のDB内に適用

影響範囲:インスタンス内(i)

影響範囲:システム全体(g)

Page 28: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

28 © 2009 IBM Corporation

• 表表表表スペーススペーススペーススペース

• データを格納する論理的な領域

• 表や索引などのデータが、表スペースに格納される

• ストレージストレージストレージストレージ管理方法管理方法管理方法管理方法

• 自動ストレージ管理

• 表スペース作成時、DB2がデータベース作成時に指定したストレージ・パスに自動的

にコンテナを作成する

• 表スペース、コンテナーの管理が必要なくなる

• 手動でのストレージ管理

• 表スペース作成時にパスを指定する

DB2 ストレージ

Non-Automatic Storage

Database “X”

TableSpace “A”

TableSpace “B”

TableSpace “C”

Automatic Storage

Database “Y”

TableSpace “A”

TableSpace “B”

TableSpace “C”

Storage paths on file systems

Page 29: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

29 © 2009 IBM Corporation

• 自動自動自動自動ストレージストレージストレージストレージへのへのへのへの変更方法変更方法変更方法変更方法

• DB作成時に指定

• デフォルトでは、自動ストレージデータベースとして作成される

• デフォルトの自動ストレージパスはデータベースパスに作成される

(<instance name>/<Node000n>/<database name>/T000000n)

• 既存のDBに指定

• DBへ自動ストレージパスを削除、または追加することが可能

• 変更を反映するためには表スペースのリバランスが必要

DB2 ストレージ

alter database add/drop automatic storage on '<storage path>'

Page 30: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

30 © 2009 IBM Corporation

• 表表表表スペーススペーススペーススペース作成作成作成作成ののののシンタックスシンタックスシンタックスシンタックス例例例例

• 表表表表スペーススペーススペーススペースのののの属性属性属性属性をををを選択選択選択選択

• 表スペースタイプ

• ユーザー表スペース (1つ以上)

• ユーザー定義の表を全て含む

• デフォルトでは、 USERSPACE1という表スペースが作成される

• システム一時表スペース (各ページサイズ毎に必要)

• ソートやJOINなど、データベース・マネージャーが必要としたときにデータを格納

• ユーザー一時表スペース (1つ以上)

• DECLARE GLOBAL TEMPORARY TABLEで作成された表の一時データを格納

• カタログ表スペース (作成の必要はない)

• データベースのシステムカタログ表を全て含む

• デフォルトで作成されるSYSCATSPACEは削除することは出来ない

DB2 表スペース

CREATE TABLESPACE TS1 PAGESIZE 16KMANAGED BY DATABASE USING

( FILE '/db2/ts1.dat' 1000M)

Page 31: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

31 © 2009 IBM Corporation

• 表表表表スペーススペーススペーススペース属性属性属性属性をををを選択選択選択選択

• ストレージ・タイプ

• System Managed Storage (SMS)

• OSによってストレージ領域を管理

• データへのアクセスはOSによって制御される

• 領域は必要に応じて割り当てられる

• 小規模データベースに向いている(データ量の増加に伴って、自動的に

ファイルサイズが大きくなる)

• Database Managed Storage (DMS)

• ファイルかraw デバイスの2種類がある

• DB2が管理するため処理が高速になる

• パフォーマンスを重視する場合に向いている

• 自動表スペースの場合はDMS FILEとなる

DB2 表スペース

Page 32: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

32 © 2009 IBM Corporation

• 表表表表スペーススペーススペーススペース属性属性属性属性のののの選択選択選択選択

• ページサイズ

• ページサイズは、4KB / 8KB / 16KB / 32KB から選択

• レコード長はページ・サイズより小さくなければならない

• 表スペースのページ・サイズは以下のページ・サイズを合わせる必要がある

• バッファー・プール

• システム一時表スペース

• ファイルシステム・キャッシング

• SMS 、DMS File の表スペースはファイルシステム・キャッシュを使用することができる(デフォルトでは使用しない)

• Large object (CLOB/BLOB)のI/Oを減らすことが可能

DB2 表スペース

64TB10123267732KB

32TB10121629316KB

16TB101281018KB

8TB50040054KB

Table space size Limit (Large)*

Column Count Limit

Row Size LimitPage Size

*DMS表スペースの場合

Page 33: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

33 © 2009 IBM Corporation

• 表表表表スペーススペーススペーススペース作成作成作成作成 : コマンドコマンドコマンドコマンド例例例例

• SMS表スペースを作成

• 16KBのページ・サイズのDMS表スペースを作成

• デフォルト以外のページサイズを指定する場合は、同じページ・サイズのバッファプール名を指定する必要がある

• 自動ストレージの表スペース作成

DB2 表スペース

CREATE TABLESPACE TS1 MANAGED BY SYSTEMUSING ('d:¥TS1_CONT1', 'e:¥TS1_CONT1')

CREATE TABLESPACE TS2 PAGESIZE 16KMANAGED BY DATABASEUSING ( FILE '/db2/cont1/ts1_1.dat 500MB, FILE '/db2/cont2/ts1_2.dat 500MB)BUFFERPOOL BP16K

CREATE TABLESPACE TS3 MANAGED BY AUTOMATIC STORAGE

Page 34: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

34 © 2009 IBM Corporation

DB2 管理ツール : IBM Optim Database Administrator• DB2ややややInformix IDSデータベースデータベースデータベースデータベースをををを、、、、設計設計設計設計、、、、開発開発開発開発、、、、管理管理管理管理、、、、モニタリングモニタリングモニタリングモニタリングするするするする、、、、Eclipseベーベーベーベー

ススススののののツールツールツールツール

• 試用版試用版試用版試用版ののののダウンロードダウンロードダウンロードダウンロードはこちらからはこちらからはこちらからはこちらから http://www-01.ibm.com/software/data/optim/

Page 35: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

35 © 2009 IBM Corporation

DB2、Oracleの管理コマンド

• インスタンスインスタンスインスタンスインスタンスのののの起動起動起動起動・・・・停止停止停止停止

• データベースデータベースデータベースデータベース作成作成作成作成

• データベースデータベースデータベースデータベースののののバックアップバックアップバックアップバックアップ/リストアリストアリストアリストア

• 表表表表データデータデータデータののののExport/Import

• モニタリングモニタリングモニタリングモニタリング

• 基本基本基本基本SQL操作操作操作操作

Page 36: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

36 © 2009 IBM Corporation

• インスタンスインスタンスインスタンスインスタンスのののの開始開始開始開始

• インスタンスインスタンスインスタンスインスタンスのののの停止停止停止停止

• 全てのセッションが切断されるまで待つ

• インスタンスインスタンスインスタンスインスタンスのののの強制停止強制停止強制停止強制停止

• 実行中の全てのトランザクションをロールバックし、接続を切断する

• インスタンスインスタンスインスタンスインスタンスををををメンテナンスモードメンテナンスモードメンテナンスモードメンテナンスモードでででで起動起動起動起動

インスタンスの起動・停止

startup

shutdown

shutdown immediate

Startup restrict open

db2start

db2stop

db2startdb2 quiesce instance <instance name> immediate force connections

db2stop force

DB2 Oracle

Page 37: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

37 © 2009 IBM Corporation

• サンプルデータベースサンプルデータベースサンプルデータベースサンプルデータベースのののの作成作成作成作成

• サンプル表やデータを含むデータベースを作成 SQLやXqueryを実行可能

• データベースデータベースデータベースデータベースのののの作成作成作成作成

• 主なオプション:

• “on” は自動ストレージパスを指定し、“dbpath on” はデータベースパスを指定

• デフォルトのページサイズを指定

• データベースデータベースデータベースデータベースのののの活動化活動化活動化活動化

• データベースは明示的なActivateもしくは、接続によって活動化される

• 非活動化するためには、Deactivateコマンドを実行するか、もしくは全ての接続を切断する

データベースの作成

db2sampl

Create database <db name>

on <path> dbpath on <path>

pagesize <4K / 8K / 16K / 32K >

activate db <db name>

deactivate db <db name>

Page 38: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

38 © 2009 IBM Corporation

データベースのバックアップ

• DB2バックアップユーテリティバックアップユーテリティバックアップユーテリティバックアップユーテリティをををを使用使用使用使用したしたしたしたバックアップバックアップバックアップバックアップ

• “/backup”ディレクトリへのバックアップを実行

• オンラインのバックアップを実行

• リカバリーリカバリーリカバリーリカバリー・・・・マネージャマネージャマネージャマネージャ((((rman))))をををを使用使用使用使用したしたしたしたOracleデータベースデータベースデータベースデータベースののののバックアップバックアップバックアップバックアップ

• rmanにログイン

• バックアップ先のパスを “/backup”に指定

• バックアップを実行

rman target / nocatalog

configure channel device type disk format='/backup/full_db_%U'

backup as backupset database plus archivelog

backup db <database name> to /backup

backup db <database name> online to /backup

Page 39: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

39 © 2009 IBM Corporation

データベースのリストア

• DB2バックアップユーテリティバックアップユーテリティバックアップユーテリティバックアップユーテリティをををを使用使用使用使用したしたしたしたリストアリストアリストアリストア

• “/backup”ディレクトリからのリストア

• 最後のトランザクションログまで適用

• リカバリーリカバリーリカバリーリカバリー・・・・マネージャマネージャマネージャマネージャ((((rman))))をををを使用使用使用使用したしたしたしたOracleデータベースデータベースデータベースデータベースののののリストアリストアリストアリストア

• rmanにログイン

• チャネルデバイスを “/backup”に指定 (必要に応じて)

• リストア、リカバリーを実行

• データベースをオープンにする

restore db <database name> from /backup taken at <backup timestamp>

rollforward database <database name> to end of logs and complete

rman target / nocatalog

configure channel device type disk format='/backup/full_db_%U'

RMAN> restore database;RMAN> recover database;

RMAN> alter database open;

Page 40: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

40 © 2009 IBM Corporation

データのExport/Import• DB2

• CSVファイルにSQLステートメントで指定したデータを抽出

• 表にデータを投入 ( replace または insert)

• Oracle

• Oracleオリジナルのフォーマットでデータを抽出 (CSV形式ではない)

• exp toolを使用してexportしたデータをimport

export to <export file> of del select * from <table name>

import from <data file> of del [replace | insert] into <table name>

exp "<UID>/<password>@<database name> file<export file> tables=(<table name>)"

imp "<UID>/<password>@<database name> file<export file> tables=(<table name>)"

Page 41: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

41 © 2009 IBM Corporation

モニタリング (1)

• パラメーターパラメーターパラメーターパラメーター設定情報設定情報設定情報設定情報をををを取得取得取得取得

• メモリーメモリーメモリーメモリー状況状況状況状況のののの情報情報情報情報をををを取得取得取得取得

• 接続接続接続接続しているしているしているしているアプリケーションアプリケーションアプリケーションアプリケーションのののの情報情報情報情報をををを取得取得取得取得

• データベースデータベースデータベースデータベースのののの表名表名表名表名をををを取得取得取得取得

• データベースデータベースデータベースデータベースのののの表表表表スペーススペーススペーススペース情報情報情報情報をををを取得取得取得取得

DB2 Oracle

select * from v$parameter

select * from v$sgaselect * from v$pgastat

select * from v$session

select * from dict

select * from v$tablespace;

select * from sysibmadm.dbcfgselect * from sysibmadm.dbmcfg

select * from sysibmadm.SNAPAPPL_INFO

select * from sysibmadm.SNAPDBM_MEMORY_POOLselect * from sysibmadm.SNAPDB_MEMORY_POOL"

list tables

select * from table(mon_get_tablespace('',-2))

Page 42: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

42 © 2009 IBM Corporation

• 認証認証認証認証にににに使用使用使用使用されたされたされたされたユーザーユーザーユーザーユーザー名名名名をををを確認確認確認確認

• 詳細詳細詳細詳細なななな表表表表のののの情報情報情報情報をををを取得取得取得取得

モニタリング (2)

show userselect current user from sysibm.sysdummy1

select * from sysibmadm.admintabinfo

admintabinfo viewをををを使用使用使用使用することですることですることですることで、、、、以下以下以下以下のよのよのよのよ

うなうなうなうな情報情報情報情報をををを入手入手入手入手することがすることがすることがすることが出来出来出来出来るるるる

• 表の属性

• データ、索引、LOBやXMLオブジェクトの実

際のサイズ

• LOAD,REORG,CLEANUP処理等のペン

ディング状態

DB2 Oracle

select * from dba_segments

Page 43: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

43 © 2009 IBM Corporation

基本SQL操作 (1)

• データベースデータベースデータベースデータベースへのへのへのへの接続接続接続接続

• DB2

• Oracle

• ダミーダミーダミーダミー表表表表をををを使用使用使用使用

• DB2(~9.5)

• OracleDB2 9.7

• 指定指定指定指定したしたしたした行行行行のののの結果結果結果結果セットセットセットセットをををを取得取得取得取得

• DB2(~9.5)

• OracleDB2 9.7

• 現在現在現在現在ののののタイムスタンプタイムスタンプタイムスタンプタイムスタンプをををを取得取得取得取得

• DB2

• Oracle

connect <UID>/<password>[@connect_identifier]

select sysdate from DUAL

select * from v$parameter where rownum < 10

connect to <database name> user <UID> using <password>

select current date from sysibm.sysdummy1

select * from sysibmadm.dbcfg fetch first 10 rows only

select systimestamp from dual

select current timestamp from sysibm.sysdummy1 (or dual)

Page 44: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

44 © 2009 IBM Corporation

基本SQL操作(2)

• 日付日付日付日付のののの操作操作操作操作 (4ヶヶヶヶ月前月前月前月前のののの次次次次のののの日日日日)

• DB2(~9.5)

• OracleDB2 9.7

• 時間時間時間時間のののの操作操作操作操作

• DB2

• Oracle

• 高速高速高速高速ななななデータデータデータデータ削除削除削除削除

• DB2(~9.5)

• OracleDB2 9.7

select add_months(sysdate, -4) + 1 from dual

select systimestamp + INTERVAL '0 5:3:10' DAY TO SECOND from dual

truncate table <table name>

select current date - 4 months + 1 days from sysibm.sysdummy1

select current timestamp + 5 HOURS - 3 MINUTES + 10 SECONDS from sysibm.sysdummy1

import from /dev/null of del replace into <table name>

Page 45: のアーキテクチャ - IBMアーキテクチャ概要– Oracle • Oracle : 3 層構造 • 上位層は、メモリーアキテク チャ • 中間層は、プロセスコンポーネ

45 © 2009 IBM Corporation

Let’s go Lab1!!