...

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

by user

on
Category: Documents
307

views

Report

Comments

Transcript

第1章 DB2のアーキテクチャ
第1章 DB2のアーキテクチャ
本書に含まれている情報は、正式なIBMのテストを受けていません。また、明記にしろ、暗黙的にしろ、なんらの保証もなしに配布されるものです。
この情報の使用またはこれらの技術の実施は、いずれも、使用先の責任において行われるべきものであり、それらを評価し、実際に使用する環境に統合する
使用先の判断に依存しています。それぞれの項目は、ある特定の状態において正確であることがIBMによって調べられていますが、他のところで同じまたは同
様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使用先は、自己の責任において行う必要があります。
© Copyright IBM Japan Co., Ltd. 2011
内容
•
DB2 ファミリー製品
•
Oracle、DB2の用語の比較
•
DB2とOracleのアーキテクチャ比較
•
•
•
メモリー
•
プロセス
•
ファイルシステム構造
•
データ、カタログ領域
•
セキュリティ
DB2の基本、ツール
•
インストール
•
インスタンス管理
•
ストレージ管理
•
接続管理
•
管理ツール
基本操作の違い
2
© 2011 IBM Corporation
DB2 ファミリー製品
ファミリー製品
DB2
3
© 2011 IBM Corporation
DB2 ファミリー製品
DB2 Enterprise 9
• DB2 9.7
DB2 Advanced Enterprise Server Edition
DB2 Enterprise Server Edition
• DB2 Data Server の最新Version
O
O
O
O
O
O
O
• 2009年5月にアナウンス 2009年6月リリース
DB2 Workgroup 9
Linux (64bit)
Linux Power (64bit)
Linux zSeries (64bit)
Windows (32bit/64bit)
AIX (64bit)
HP-UX (64bit)
Solaris (64bit)
DB2 Workgroup Server Edition
DB2 Express 9
DB2 Express Edition
DB2 Personal 9
O
O
O
O
O
O
O
O
O
O
Linux (32bit/64bit)
Linux Power (64bit)
Windows (32bit/64bit)
AIX (64bit)
Solaris (64bit)
HP-UX (64bit)
Linux (32bit/64bit)
Linux Power (64bit)
Windows (32bit/64bit)
Solaris (x86-64)
DB2 Personal Edition
O Linux (32bit/64bit)
O Windows (32bit/64bit)
For Developer
Database Enterprise Developer Edition
O All Servers and clients supported by DB2
4
© 2011 IBM Corporation
DB2 9.7 エディション
• IBM DB2 Enterprise Server Edition 9.7 (ESE)
• DB2 Enterprise 9.7 は、中規模企業から大企業向けのデータベース・サーバー
• プロセッサー数やメモリーサイズの制限なし
• 以下の機能を含む
• PL/SQL、pureXML、HADR、オンライン再編成、拡張コピーサービス、MQT、
MDC、テーブル・パーティショニング機能など
• IBM DB2 Workgroup Server Edition 9.7 (WSE)
• DB2 Workgroup 9.7 は中小企業向けのデータベース・サーバー
• 「最大 16CPU コア、メモリー 64GB 以内」の制限あり
• PL/SQL、pureXML, HADR、オンライン再編成機能、pureScale(*1)を含む
(*1) 全クラスターのソケット総数4まで
5
© 2011 IBM Corporation
DB2 9.7 エディション
• IBM DB2 Advanced Enterprise Server Edition 9.7 (AESE)
• DB2 Enterprise 9.7 は、中規模企業から大企業向けのデータベース・サーバー
• プロセッサー数やメモリー制限なし
• DB2 Enterprise Server Editionに加えて、下記のオプション機能を含む
•
•
•
•
•
•
データ行圧縮
ワークロード管理
Optim Performance Manager
ラベル・ベースのアクセス制御
Qレプリケーション(IBM MQを使用した高速レプリケーション) (限定付:注1)
フェデレーション(他社DBとのデータ連携機能) (限定付:注2)
(注1)DB2の間の1ペアに限定されたレプリケーション
(注2)DB2 とOracle Database(または DB2)間のデータ連携に限る
6
© 2011 IBM Corporation
DB2 9.7 エディション
• IBM DB2 Express Edition 9.7
• DB2 Express 9.7は、中規模ビジネス(SMB)市場向けに、DB2のフルファンクションを
低価格で提供
• 「最大200 PVU(*1) 、メモリー 4GB 以内」の制限あり
• pureXML機能を含む
• IBM DB2 Express-C
• ライセンス無償で使用可能
• 「最大 2CPUコア、メモリー 2 GB 以内」の制限あり
• pureXML機能を含む
(*1) PVU: プロセッサー Value Unit
7
© 2011 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のサポートを提供
8
© 2011 IBM Corporation
DB2 V9.7 フィーチャー
DB2 V9.7 Features
DB2 High Availability
Feature (HAF)
DB2 pureScale Feature
DB2 Performance
Optimization Feature
(POF)
Adv.
ESE
ESE
WSE
Express
●
(組込み)
(組込み)
(組込み)
●
●
(組込み)*
(組込み)
●
課金単位
含まれる機能
許可ユーザー
HADR, オンライン再編成、
TSA, 拡張コピー・サービス
PVU
PVU
連続稼働と無限の拡張性
を実現するクラスタリング・
テクノロジー
許可ユーザー
DB2 ワークロード管理,
PVU
Optim Performance
Manager,
許可ユーザー
Query Patroller
DB2 Storage Optimization
Feature (SOF)
DB2 Advanced Access
Control Feature (AACF)
DB2 Geodetic Data
Management Feature
PVU
(組込み)
●
データ行圧縮、索引圧縮、
一時表圧縮
許可ユーザー
(組込み)
●
PVU
ラベル・ベースのアクセス
制御 (LBAC)
●
●
許可ユーザー
空間情報管理
PVU
(組込み)
●
Homogeneous Replication
Feature
PVU
DB2間のQレプリケーショ
ン
※ Featureは●の箇所のみになります
*: クラスターのすべてのサーバーでDB2が稼働するのは4ソケットまで
9
© 2011 IBM Corporation
Oracle、DB2の用語の比較
Oracle、DB2の用語の比較
10
© 2011 IBM Corporation
Oracle、DB2用語の比較 (1)
Oracle
DB2
Comment
インスタンス
インスタンス
プロセスと共有メモリーから構成され
る。DB2インスタンスは、データベー
ス・マネージャー(DBM)とも呼ばれる。
DB2は1インスタンスに複数DBをもつ
ことが可能。Oracleインスタンスは、1
インスタンス1DB。
データベース
データベース
DB2:1インスタンスに複数DB作成可
能
パラメータファイル
データベース・マネージャー構成
ファイル
Oracle: インスタンス、DBのパラメー
ターを格納するファイル
データベース構成ファイル
DB2: DB毎にDB構成ファイルを持つ
データ・ブロック
ページ
データ格納の最小単位
エクステント
エクステント
連続したデータ・ブロック/ページの
セット
セグメント
オブジェクト
Oracle: エクステントの集合で論理記
憶構造に割り当てられる
11
© 2011 IBM Corporation
Oracle、DB2用語の比較 (2)
Oracle
DB2
Comment
表スペース
表スペース
データを格納する領域
データ・ファイル
DMS コンテナー
データを格納する物理領域
Redo ログファイル
アーカイブ・Redoログファイル
アクティブ・ログファイル
アーカイブ・ログファイル
リカバリーログ
PL/SQL
SQL/PL
SQLを拡張したプログラミング言
語
データ・バッファー
バッファープール
表スペースへのI/Oを減らすため
のバッファー
SGA
インスタンス共有メモリー
インスタンス起動時に割り当てら
れるメモリー領域
データ・ディクショナリ
システム・カタログ
データベースのメタデータ
ライブラリー・キャッシュ
パッケージ・キャッシュ
コンパイルしたSQLをキャッシュ
するために使用される領域
ラージ・プール
ユーテリティ・ヒープ
バックアップ等のヒープ領域
データ・ディクショナリキャッシュ
カタログキャッシュ
システムカタログ情報のキャッ
シュ領域
SYSTEM表領域
カタログ表スペース
データ・ディクショナリやカタログ
情報を格納する表領域
12
© 2011 IBM Corporation
DB2とOracleのアーキテクチャ比較
DB2とOracleのアーキテクチャ比較
13
© 2011 IBM Corporation
DB2とOracleのアーキテクチャ比較
• アーキテクチャ概要
• メモリー・アーキテクチャ
• プロセス
• ファイル、ディレクトリ構造
• データ・ディレクトリ、カタログ
• セキュリティ
14
© 2011 IBM Corporation
アーキテクチャ概要– Oracle
• Oracle : 3層構造
OracleArchitecture
• 上位層は、メモリーアーキテク
チャ
• 中間層は、プロセスコンポーネ
ント
• 下位層は、データベースコン
ポーネント
Instance
Instance
P
P
G
G
A
A
SGA
SGA
Streams
Pool
Database
Buffer
Cache
Redo
Log
Buffer
Shared Pool
Java
Pool
Oracle
Oracle
Processes
Processes
RECO
Large
Pool
Library
Cache
Data
Dictionary
Cache
Init.
Ora
User
User
User
User
Processes
Processes
Processes
Processes
SMON
PMON
DBWn
CKPT
LGWR
ARCn
Oracle
Oracle
Database
Database
Data
Files
15
Control
Files
Redo
Log
Files
Archive
Log
Files
© 2011 IBM Corporation
アーキテクチャ概要 – DB2
• DB2:クライアント/サーバーモデル
• DB2は全てのプラットフォームで、
スレッドベースで実装されている
• DBMSとしての基本的な動きは
Oracleと同様
•例
• 更新データは必ずログに書き込ま
れ、COMMITのタイミングでディス
クに書き出される
• 表スペースへの反映はBFPを介し
て非同期に行われる
16
© 2011 IBM Corporation
メモリー・アーキテクチャ– Oracle
• SGA と PGA
• Oracleのメモリー構造はシステム・グローバル領域(SGA)とプログラム・グ
ローバル領域(PGA)から構成される
• SGA
• インスタンス起動時に割り当てられる共有メモリー領域
• SGAは共有プール、データベース・バッファー・キャッシュ、REDOログ・バッ
ファーとして使用される
• PGA
Instance
• 特定のサーバー・
プロセスだけで使用
される非共有領域
SGA
PGA
PGA
PGA
Shared Pool
Library Cache
Data Dict
cache
Data
Buffer
Cache
Redo
Log
Buffer
Server
Process
17
© 2011 IBM Corporation
メモリー・アーキテクチャ– DB2
• DB2 は大きく3つの共有メモリー領
域がある
• インスタンス・メモリー
Instance_memory
DBMS Memory
• データベース・メモリー
• データベース・メモリーの例:
• バッファー・プール
• ロック・リスト
• データベース・ヒープ
• ユーティリティ・ヒープ
• パッケージ・キャッシュ
• カタログ・キャッシュ
Database_A
Database_B
Database_
memory
Database_
memory
Appl_memory
Appl_memory
• アプリケーション・メモリー
Agent Private Memory
18
© 2011 IBM Corporation
プロセス – Oracle
• バックグラウンド・プロセス
•
•
•
•
•
•
•
•
データベース・ライター (DBWR)
ログ・ライター(LGWR)
システム・モニター (SMON)
プロセス・モニター (PMON)
チェックポイント (CKPT)
リカバラ・プロセス(RECO)
アーカイバ ・プロセス(ARCn)
ディスパッチャー・プロセス (Dnnn)
• ユーザー・プロセスとサーバープロセス
• アプリケーションとOracle間の通信に
使用される
• アプリケーションの接続の毎に、ユーザープロセスと
サーバープロセスのペアが作成される
• リスナー
• 接続要求をリスニングする
19
© 2011 IBM Corporation
プロセス – DB2
• サーバー側では、アクティビティーはエンジン・
ディスパッチ可能単位(EDU)で制御される
• データベースサーバー スレッド及びプロセス
• db2sysc、メイン・システム・コントローラ
EDUは、重要な DB2 データベース・サー
バー・イベントを処理する
• db2pfchr、バッファー・プール・プリフェッ
チャー用
• db2pclnr、バッファー・プール・ページ・ク
リーナー用
• db2logmgr、ログ・マネージャ用。リカバ
リー可能なデータベースのログファイルを
管理
• クライアント
• クライアント EDUやプロセスは、データベース
との最初の接触を、リスナーを通じて行う
• db2agent
• db2fmp
20
© 2011 IBM Corporation
ファイル・ディレクトリ構造 – Oracle
• Oracle データベースファイル
Instance
Parameter file
Database
Password file
Alert and
trace log file
Control file
Datafiles
Redo log files
• Oracle ディレクトリ構造(OFA基準)
21
© 2011 IBM Corporation
ファイル・ディレクトリ構造– DB2
Instance directory
• DB2 ディレクトリ構造
• DB2コピーディレクトリー
• インスタンスディレクトリ:
Drive/Directory
sqllib
db2dump
Error log file
• エラーログファイル (db2dump)
function
• サーバーサイドプログラム (function) など
etc...
• データベースディレクトリ:
Database directory
• データベースファイル (SQL0000n)
• トランザクションログ (SQLOGDIR)
• 自動ストレージパス
(Nodennnn/DBNAME)
• 表スペースコンテナー
All the external stored procedures and
executable programs are stored in
here
Drive/Directory
DB2 instance
name
Node0000
The partition number of the database,
0 for a non-partitioned database
SQL00001
• 以下のパスは、任意のパスに設定
• db2dump
• トランザクションログディレクトリ
• 自動ストレージパス
• 表スペースコンテナー (非自動ストレージ)
22
The database id starts at 1 and
increases for all subsequent database
SQLDBCONF
The database configuration file
SQLOGDIR
The directory for default log files
DBNAME
T0000000
C0000000.CAT
The DMS container
for catalog tablespace
T0000001
C0000000.CAT
The SMS container for
default system
temporary tablespace
T0000002
C0000000.LRG
The DMS container for
default user tablespace
© 2011 IBM Corporation
データ・ディクショナリ、カタログ
Oracle: データ・ディクショナリ
• User_xxx ビュー
• 現在のユーザーが所有するオブジェクトに関する情報を表示するビュー
• ALL_xxx ビュー
• 現在のユーザーがアクセス可能な全てのオブジェクトに関する情報を表示するビュー
• DBA_xxx ビュー
• データベース管理ビュー
• データベース内の全オブジェクトに関する情報を表示するビュー
• DB2: Catalog
• SYSCAT ビュー
• 参照のみ可能なDBのオブジェクト情報のビュー
• SYSSTAT ビュー
• 更新可能な統計情報のビュー
DB2 9.7 では、Oracleデータディクショナリを、DB2のカタログ表のエントリーに
マッピングし、同じ名前のビューとして提供している
23
© 2011 IBM Corporation
セキュリティ – Oracle
• Oracle
• データベースを使用するユーザーは、事前にOracle内でユーザーとして作成されて
いる必要がある
• データベース内の情報でユーザーを認証
• パスワードは、データ・ディクショナリに暗号化されて格納される
I'm ken
USER
ken
PASSWORD a@x?s
Authentication OK/NG
24
Oracle
Database
....
....
....
© 2011 IBM Corporation
セキュリティ – DB2
• DB2
•
DB2は、ユーザー認証はOSに依存するため、データベース内への登録は不要
•
OSのログインIDとデータベース・ユーザー名の区別はない
•
OSにデータベースに接続するユーザーを作成しておく必要がある
I'm ken
USER
ken
PASSWORD a@x?s
Authentication OK/NG
....
....
....
DB2
Data
Server
SYSADM
NO
Can I
access?
DBADM
SYSCTRL
SYSMAINT
ACCESS
DB2 は特権の情報は
データベース内で持つ
OK
25
© 2011 IBM Corporation
DB2の基本、ツール
DB2の基本、ツール
26
© 2011 IBM Corporation
DB2基本操作と管理
•
DB2 管理タスク
• インストール
• インスタンス管理
• データベース
• 構成パラメーター
• ストレージ
• 表スペース
• 通信の構成
•
管理ツール
• IBM Optim Database Administrator
27
© 2011 IBM Corporation
インストール
•
DB2の2通りのインストール方法
• db2setupを使用した、Java GUIによるインストール
• ダウンロードしたファイルを展開したディレクトリのsetup.exe (UNIX/Linuxはdb2setup)で
•
ランチパッドを起動
• db2_installを使用したCUIによるインストール(UNIX/Linuxのみ)
• telnet等のCUIからDB2のインストールが可能
• ESEを導入する際の、実行コマンドの例
•
db2_install -b /opt/IBM/db2/V9.7_01 -p ESE -L JP
• 上記の例で指定したパラメータの意味について
• 「-b /opt/IBM/db2/V9.7_01」 :インストール先を指定
• 「-p ESE」
:インストールするDB2製品を指定(例ではESE)
• 「-L JP」
:日本語パッケージの導入を指定
• ※考慮点
• db2_installを使用する場合、導入するコンポーネントの選択ができない。
• db2setupではオプションだが、db2_installでは導入されるオプション
• Infomix データ・ソース・サポート
• コントロール・サーバー など
28
© 2011 IBM Corporation
GUIによるインストール
「製品のインストール」からセットアップ・ウィザードを起動
【ご参考】 DB2 9.7 インストール・ガイド(Windows編)
http://www.ibm.com/developerworks/jp/data/library/db2/j_d-db2v97wininstall/
29
© 2011 IBM Corporation
インストールの実行 db2_install (1/2)
> ls -l
total 1563456
-rw-r----1 root
system
800481280 Mar 06 15:12
drwxr-xr-x
6 root
system
4096 Mar 06 17:40
> cd ese
> ls -l
total 120
drwxr-xr-x
6 daemon
staff
4096 Oct 04 2007
-r-xr-xr-x
1 bin
bin
4700 Oct 04 2007
-r-xr-xr-x
1 bin
bin
4570 Oct 04 2007
-r-xr-xr-x
1 bin
bin
4560 Oct 04 2007
-r-xr-xr-x
1 bin
bin
4552 Oct 04 2007
drwxr-xr-x
16 bin
bin
4096 Oct 04 2007
-r-xr-xr-x
1 bin
bin
4588 Oct 04 2007
drwxr-xr-x
5 root
system
256 Oct 04 2007
drwxr-xr-x
15 bin
bin
4096 Oct 04 2007
-r--r--r-1 bin
bin
1503 Oct 04 2007
-r--r--r-1 bin
bin
678 Oct 04 2007
> ./db2_install -b /opt/IBM/db2/V9.7_01 -p ESE -L JP
DB2 インストールを初期化しています。
DB2_ESE_V95_AIX.tar
ese
db2
db2_deinstall
db2_install
db2prereqcheck
db2setup
doc
installFixPack
nlpack
readmefirst
readmefirst.htm
readmefirst.txt
実行されるタスクの合計数: 45
実行される全タスクの合計見積もり時間: 1828
タスク #1 を開始します。
説明: 非同期入出力を使用可狽ノする
見積もり時間 2 秒
タスク #1 が終了しました。
インストールのログは/tmp配下に
出力される。
<中略>
正常に実行が完了しました。
詳しくは、"/tmp/db2_install.log.1241120" にある DB2インストール・ログを参照してください。
30
© 2011 IBM Corporation
インストールの実行 db2_install (2/2)
> cd /opt/IBM/db2/V9.7_01/install
db2_deinstall
db2chgpath
db2ls_exec
logs
db2_deinstall_exec db2ls
db2un.rsp
tsamp
> ./db2ls
インストール・パス
レベル フィックスパック 特別なインストール番号
インストール日付
インストーラー UID
--------------------------------------------------------------------------------------------------------------------/opt/IBM/db2/V9.7
9.7.0.0
0
Fri Mar 6 16:02:06 2009 JST
0
> ./db2ls -q -b /opt/IBM/db2/V9.7_01
インストール・パス: /opt/IBM/db2/V9.7_01
「-q -b」オプションで、指定したイン
ストール・パスに導入されているコ
ンポーネントを確認可能
フィーチャーの応答ファイル ID
レベル フィックスパック フィーチャーの説明
--------------------------------------------------------------------------------------------------------------------BASE_CLIENT
9.7.0.0
0 Base client support
JAVA_SUPPORT
9.7.0.0
0 Java support
SQL_PROCEDURES
9.7.0.0
0 SQL procedures
BASE_DB2_ENGINE
9.7.0.0
0 Base server support
JDK
9.7.0.0
0 IBM Software Development Kit (SDK) for Java(TM)
CONNECT_SUPPORT
9.7.0.0
0 Connect support
COMMUNICATION_SUPPORT_TCPIP
9.7.0.0
0 Communication support - TCP/IP
REPL_CLIENT
9.7.0.0
0 Replication tools
DB2_DATA_SOURCE_SUPPORT
9.7.0.0
0 DB2 data source support
<以下略>
31
© 2011 IBM Corporation
DB2 インスタンス管理
•
•
DB2製品のインストールされたコードセットを、 “DB2 copy”という
•
1つのOS上に複数のDB2コピーを作成可能
•
DB2 コピーのコードレベル (バージョンや、fix pack レベル) が同一でも異なっていてもよい
DB2インストール後に、インスタンスが作成される
•
1インスタンスは、1DB2コピーと対応する
•
1DB2コピーは複数のインスタンスを持つことが可能
•
DB2 インスタンスはDB2コピー間を移動させることが可能
Operating System
DB2 Copy A
DB2 Copy B
/opt/IBM/db2/V9.7_GA
/opt/IBM/db2/V9.7_FP1
db2inst1
db2inst2
db2inst2
db2iupdt コマンドでインスタンスを移行
32
© 2011 IBM Corporation
DB2 インスタンス管理
•
インスタンス作成
•
•
•
db2inst1
インスタンス起動
•
•
•
rootユーザーでインスタンス作成を実行
db2icrt -u db2fenc1
• インスタンスを作成 : db2icrt
現在あるインスタンスをリストし、インスタンスが作成されたことを確認
• インスタンスをリスト: db2ilist
• 現在のDB2コピーのインスタンス・ディレクトリーでコマンドを実行
インスタンス作成後、インスタンス・ユーザーでインスタンスの起動を実行
• インスタンスを開始: db2start
• インスタンスを停止: db2stop
インスタンスが活動状態かどうか調べる
db2_ps
• DB2インスタンスが活動状態かどうか調べる
• インスタンスのプロセスが存在しているかどうか、db2_psコマンドで確認することが可能
(Linux/UNIX only)
インスタンス作成・削除・更新
•
•
•
33
インスタンスを削除: db2idrop
インスタンスを更新: db2iupdt
• 新しいDB2コピー側でコマンドを実行
インスタンスを移行: db2iupgrade (旧:db2imigr)
• 新しいDB2コピー側でコマンドを実行
© 2011 IBM Corporation
DB2 データベース
• データベース
• DB2では、1インスタンスに複数DBを作成、実行可能
• DB2はスレッドモデルで実行されるため、複数DB環境でも、1つのdb2syscプロセスで実
行される
• アクティブなスレッド(EDU)は“db2pd -edus” コマンドで確認可能
• データベース作成
db2 create database DB1 on /db2/db1
• DB1 という名前のデータベースを作成
• DBを作成するパスを “on <full path>” オプションで指定可能
• データベース削除
db2 drop database DB1
• データベースへの接続がある場合は、データベースの削除が失敗する
DB1
db2inst1
TablespaceA TablespaceB
34
DB2
Tablespace1
Tablespace2
© 2011 IBM Corporation
DB2 構成パラメーター
• DB2の構成パラメーターは以下のレベルで構成
システム
DB2
環境変数
レジストリー変数(g)
環境変数でレジストリー変数を上書きできる
プロファイル・レジストリー(g) (グローバル)
影響範囲:システム全体(g)
インスタンス
レジストリー変数(i)
プロファイル・レジストリー(i) (インスタンス)
影響範囲:インスタンス内(i)
DBM CFG
データベース
DB CFG
データベース・マネージャー構成パラメーター
影響範囲:インスタンス内の全DBに適用
データベース構成パラメーター
影響範囲:単体のDB内に適用
35
© 2011 IBM Corporation
DB2 ストレージ
• 表スペース
• データを格納する論理的な領域
• 表や索引などのデータが、表スペースに格納される
• ストレージ管理方法
• 自動ストレージ管理
• 表スペース作成時、DB2がデータベース作成時に指定したストレージ・パスに自動的
にコンテナを作成する
• 表スペース、コンテナーの管理が必要なくなる
• 手動でのストレージ管理
• 表スペース作成時にパスを指定する
Non-Automatic Storage
Database “X”
Table
Space “A”
Table
Space “B”
Table
Space “C”
Automatic Storage
Database “Y”
Table
Space “A”
Table
Space “B”
Table
Space “C”
Storage paths on file systems
36
© 2011 IBM Corporation
DB2 ストレージ
• 自動ストレージへの変更方法
• DB作成時に指定
• デフォルトでは、自動ストレージデータベースとして作成される
• デフォルトの自動ストレージパスはデータベースパスに作成される
(<instance name>/<Node000n>/<database name>/T000000n)
• 既存のDBに指定
• DBへ自動ストレージパスを削除、または追加することが可能
alter database add/drop automatic storage on '<storage path>'
• 変更を反映するためには表スペースのリバランスが必要
37
© 2011 IBM Corporation
DB2 表スペース
• 表スペース作成のシンタックス例
CREATE TABLESPACE TS1 PAGESIZE 16K
MANAGED BY DATABASE USING
( FILE '/db2/ts1.dat' 1000M)
• 表スペースの属性を選択
• 表スペースタイプ
• ユーザー表スペース (1つ以上)
• ユーザー定義の表を全て含む
• デフォルトでは、 USERSPACE1という表スペースが作成される
• システム一時表スペース (各ページサイズ毎に必要)
• ソートやJOINなど、データベース・マネージャーが必要としたときにデータを格納
• ユーザー一時表スペース (1つ以上)
• DECLARE GLOBAL TEMPORARY TABLEで作成された表の一時データを格納
• カタログ表スペース (作成の必要はない)
• データベースのシステムカタログ表を全て含む
• デフォルトで作成されるSYSCATSPACEは削除することは出来ない
38
© 2011 IBM Corporation
DB2 表スペース
• 表スペース属性を選択
• ストレージ・タイプ
• System Managed Space (SMS)
• OSによってストレージ領域を管理
• データへのアクセスはOSによって制御される
• 領域は必要に応じて割り当てられる
• 小規模データベースに向いている(データ量の増加に伴って、自動的に
ファイルサイズが大きくなる)
• Database Managed Space (DMS)
• ファイルかraw デバイスの2種類がある
• DB2が管理するため処理が高速になる
• パフォーマンスを重視する場合に向いている
• 自動表スペースの場合はDMS FILEとなる
39
© 2011 IBM Corporation
DB2 表スペース
• 表スペース属性の選択
• ページサイズ
• ページサイズは、4KB / 8KB / 16KB / 32KB から選択
• レコード長はページ・サイズより小さくなければならない
• 表スペースのページ・サイズは以下のページ・サイズを合わせる必要がある
• バッファー・プール
• システム一時表スペース
ページサイズ
行の最大長
最大列数
表スペースのサイズ制限
(Large)*
4KB
4005
500
8TB
8KB
8101
1012
16TB
16KB
16293
1012
32TB
32KB
32677
1012
64TB
*DMS表スペースの場合
• ファイルシステム・キャッシング
• SMS 、DMS File の表スペースはファイルシステム・キャッシュを使用することができる(デフォル
トでは使用しない)
• Large object (CLOB/BLOB)のI/Oを減らすことが可能
40
© 2011 IBM Corporation
DB2 表スペース
• 表スペース作成 : コマンド例
• SMS表スペースを作成
CREATE TABLESPACE TS1 MANAGED BY SYSTEM
USING ('d:¥TS1_CONT1', 'e:¥TS1_CONT1')
• 16KBのページ・サイズのDMS表スペースを作成
• デフォルト以外のページサイズを指定する場合は、同じページ・サイズのバッファプー
ル名を指定する必要がある
CREATE TABLESPACE TS2 PAGESIZE 16K
MANAGED BY DATABASE
USING ( FILE '/db2/cont1/ts1_1.dat 500MB, FILE '/db2/cont2/ts1_2.dat 500MB)
BUFFERPOOL BP16K
• 自動ストレージの表スペース作成
CREATE TABLESPACE TS3 MANAGED BY AUTOMATIC STORAGE
41
© 2011 IBM Corporation
DB2 通信の構成
•
TCP/IPによる通信の設定はDB2サーバ側、クライアント側それぞれで実施する
• サーバ側では使用するプロトコルやLISTENの設定
• クライアント側ではターゲットにするホスト名、サービス名の設定
DB2クライアント
DBカタログ
zDB名
zノード名
ノードカタログ
zホスト名
zサービス名
DB2サーバ
レジストリー変数
zDB2COMM
DBM構成パラメータ
zSVCENAME
zSSL_SVCENAME
/etc/servicesファイル
zサービス名定義
42
© 2011 IBM Corporation
DB2 通信の構成
•
DB2サーバ側の設定項目
• 通信に使用するプロトコルの設定
• DB2COMMレジストリー変数を使用
• DB2COMM=TCPIP、DB2COMM=SSLなど
• 設定後にDB2インスタンスの再起動が必要
• 設定したプロトコルが使用するポート番号を設定
• DBM構成パラメータで設定する
• 通常のTCP/IP通信はSVCENAMEを、SSLはSSL_SVCENAMEを使用
• 通常はサービス名を使用して定義するが、ポート番号を直接指定することも可能
$ db2 get dbm cfg |grep SVCE
TCP/IP Service name
(SVCENAME) = DB2_db2inst1
SSL service name
(SSL_SVCENAME) =
• 設定したサービス名を/etc/servicesファイルに登録する
cat /etc/services |grep -i db2
DB2_db2inst1
50000/tcp
• DB2がLISTENするポート番号は、DBサーバ上のすべてのIPアドレスで同じ
• IPアドレスごとに異なるポート番号をLISTENすることはない
43
© 2011 IBM Corporation
DB2 通信の構成
•
クライアント側の設定項目
• 接続先の情報はカタログ情報もしくは接続ストリングで保持する
• カタログ情報定義の際には、下記の2つを作成する
• DBサーバのIPアドレス、ポート番号を保持するノードカタログ
• DB名、ノード名を保持するDBカタログ
> db2 list db directory
データベース別名 = LABDB
データベース名
= LABDB
ノード名
= HORIKEN
> db2 list node directory
ノード名
コメント
ディレクトリー項目タイプ
プロトコル
ホスト名
サービス名
=
=
=
=
=
=
HORIKEN
LOCAL
TCPIP
horiken
50000
• 接続ストリングではDB名、IPアドレス、ポート番号の3つを指定する
String url = "jdbc:db2://horiken:50000/labdb"
44
© 2011 IBM Corporation
DB2 管理ツール : IBM Optim Database Administrator
•
DB2やInformix IDSデータベースを、設計、開発、管理、モニタリングする、Eclipseベー
スのツール
•
試用版のダウンロードはこちらから http://www-01.ibm.com/software/data/optim/
45
© 2011 IBM Corporation
基本操作の違い
基本操作の違い
46
© 2011 IBM Corporation
DB2、Oracleの管理コマンド
• インスタンスの起動・停止
• データベース作成
• データベースのバックアップ/リストア
• 表データのExport/Import
• モニタリング
• 基本SQL操作
47
© 2011 IBM Corporation
インスタンスの起動・停止
Oracle
DB2
• インスタンスの開始
db2start
startup
• インスタンスの停止
• 全てのセッションが切断されるまで待つ
db2stop
shutdown
• インスタンスの強制停止
• 実行中の全てのトランザクションをロール
バックし、接続を切断する
db2stop force
shutdown immediate
• インスタンスをメンテナンスモードで起動
db2start
db2 quiesce instance <instance name>
immediate force connections
48
Startup restrict open
© 2011 IBM Corporation
データベースの作成
• サンプルデータベースの作成
• サンプル表やデータを含むデータベースを作成 SQLやXqueryを実行可能
db2sampl
• データベースの作成
Create database <db name>
Oracleのデータベースの起動は、
インスタンス起動時に行われる。
DB2では、インスタンスとDBの起動は別。
• 主なオプション:
• “on” は自動ストレージパスを指定し、“dbpath on” はデータベースパスを指定
on <path> dbpath on <path>
• デフォルトのページサイズを指定
pagesize <4K / 8K / 16K / 32K >
• データベースの活動化
• データベースは明示的なActivateもしくは、接続によって活動化される
activate db <db name>
• 非活動化するためには、Deactivateコマンドを実行するか、もしくは全ての接続を切断する
deactivate db <db name>
49
© 2011 IBM Corporation
データベースのバックアップ
• DB2バックアップユーテリティを使用したバックアップ
• “/backup” ディレクトリへのバックアップを実行
backup db <database name> to /backup
• オンラインのバックアップを実行
backup db <database name> online to /backup
• リカバリー・マネージャ(rman)を使用したOracleデータベースのバックアップ
• rmanにログイン
rman target / nocatalog
• バックアップ先のパスを “/backup”に指定
configure channel device type disk format='/backup/full_db_%U'
• バックアップを実行
backup as backupset database plus archivelog
50
© 2011 IBM Corporation
データベースのリストア
• DB2バックアップユーテリティを使用したリストア
• “/backup”ディレクトリからのリストア
restore db <database name> from /backup taken at <backup timestamp>
• 最後のトランザクションログまで適用
rollforward database <database name> to end of logs and complete
• リカバリー・マネージャ(rman)を使用したOracleデータベースのリストア
• rmanにログイン
rman target / nocatalog
• チャネルデバイスを “/backup”に指定 (必要に応じて)
configure channel device type disk format='/backup/full_db_%U'
• リストア、リカバリーを実行
RMAN> restore database;
RMAN> recover database;
• データベースをオープンにする
RMAN> alter database open;
51
© 2011 IBM Corporation
データのExport/Import
• DB2
• CSVファイルにSQLステートメントで指定したデータを抽出
export to <export file> of del select * from <table name>
• 表にデータを投入 ( replace または insert)
import from <data file> of del [replace | insert] into <table name>
• Oracle
• Oracleオリジナルのフォーマットでデータを抽出 (CSV形式ではない)
exp "<UID>/<password>@<database name> file<export file> tables=(<table name>)"
• exp toolを使用してexportしたデータをimport
imp "<UID>/<password>@<database name> file<export file> tables=(<table name>)"
52
© 2011 IBM Corporation
モニタリング (1)
DB2
Oracle
• パラメーター設定情報を取得
select * from sysibmadm.dbcfg
select * from sysibmadm.dbmcfg
select * from v$parameter
• メモリー状況の情報を取得
select * from sysibmadm.SNAPDBM_MEMORY_POOL
select * from sysibmadm.SNAPDB_MEMORY_POOL"
select * from v$sga
select * from v$pgastat
• 接続しているアプリケーションの情報を取得
select * from sysibmadm.SNAPAPPL_INFO
select * from v$session
• データベースの表名を取得
list tables
select * from dict
• データベースの表スペース情報を取得
select * from table(mon_get_tablespace('',-2))
53
select * from v$tablespace;
© 2011 IBM Corporation
モニタリング (2)
DB2
Oracle
• 認証に使用されたユーザー名を確認
select current user from sysibm.sysdummy1
show user
• 詳細な表の情報を取得
select * from sysibmadm.admintabinfo
select * from dba_segments
admintabinfo viewを使用することで、以下のよ
うな情報を入手することが出来る
• 表の属性
• データ、索引、LOBやXMLオブジェクトの実
際のサイズ
• LOAD,REORG,CLEANUP処理等のペン
ディング状態
54
© 2011 IBM Corporation
基本SQL操作 (1)
• データベースへの接続
• DB2
connect to <database name> user <UID> using <password>
• Oracle
connect <UID>/<password>[@connect_identifier]
• ダミー表を使用
• DB2(~9.5) select current date from sysibm.sysdummy1
• Oracle
DB2 9.7
select sysdate from DUAL
• 指定した行の結果セットを取得
• DB2(~9.5)
• Oracle
DB2 9.7
select * from sysibmadm.dbcfg fetch first 10 rows only
select * from v$parameter where rownum <= 10
• 現在のタイムスタンプを取得
select current timestamp from sysibm.sysdummy1 (or dual)
• DB2
• Oracle
55
select systimestamp from dual
© 2011 IBM Corporation
基本SQL操作 (2)
• 日付の操作 (4ヶ月前の次の日)
• DB2(~9.5) select current date - 4 months + 1 days from sysibm.sysdummy1
• Oracle
DB2 9.7
• 時間の操作
• DB2
• Oracle
select add_months(sysdate, -4) + 1 from dual
select current timestamp + 5 HOURS - 3 MINUTES + 10 SECONDS from sysibm.sysdummy1
select systimestamp + INTERVAL '0 5:3:10' DAY TO SECOND from dual
• 高速なデータ削除
• DB2(~9.5) import from /dev/null of del replace into <table name>
• Oracle
DB2 9.7
56
truncate table <table name>
© 2011 IBM Corporation
Let’s go Lab1!!
57
© 2011 IBM Corporation
Fly UP