[Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成...

28
1 [Lab [Lab [Lab [Lab 4] データベース データベース データベース データベースの物理設計 の物理設計 の物理設計 の物理設計

Transcript of [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成...

Page 1: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

1

[Lab [Lab [Lab [Lab 4444]]]]

データベースデータベースデータベースデータベースの物理設計の物理設計の物理設計の物理設計

Page 2: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

2

Contents

CONTENTS .......................................................................................................... 2

1. はじめにはじめにはじめにはじめに ........................................................................................................ 3

2. DBDBDBDB オブジェクトの作成オブジェクトの作成オブジェクトの作成オブジェクトの作成 .................................................................................. 4

2.1 物理設計 ................................................................................................... 4

2.2 事前準備 ................................................................................................... 6

2.3 データベース作成..................................................................................... 7

2.4 バッファプール作成 ............................................................................... 11

2.5 表スペース作成 ...................................................................................... 13

2.6 表、索引作成 .......................................................................................... 17

3. 行圧縮行圧縮行圧縮行圧縮 .......................................................................................................... 20

3.1 行圧縮表の作成 ...................................................................................... 20

3.2 行圧縮率の確認(ADMIN_TAB_INFO) ...................................................... 22

4. (オプション)パーティション表(オプション)パーティション表(オプション)パーティション表(オプション)パーティション表 ............................................................... 23

4.1 パーティション表の作成 ........................................................................ 23

4.2 パーティション情報の確認 .................................................................... 23

5.5.5.5. (オプション)(オプション)(オプション)(オプション)パーティション表のメンテナンスパーティション表のメンテナンスパーティション表のメンテナンスパーティション表のメンテナンス ...................................... 25

5.1 パーティションのデタッチ .................................................................... 25

5.2 パーティションのアタッチ .................................................................... 26

Page 3: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

3

1. はじめにはじめにはじめにはじめに

このハンズオンでは、物理設計の章のハンズオンとして、DB オブジェクトの作成、行圧縮表の

作成について取り上げます。オプションとして、パーティション表の作成のトピックもあります。お

時間のある方は、是非実施してみてください。

このタスクでは、以下のことを実行します

� DB オブジェクトの作成

� 行圧縮表の作成

� (オプション)パーティション表の作成

なお、この章のハンズオンは、root ユーザーで実行します。

_仮想マシンに以下のユーザーでログイン

User:User:User:User: rootrootrootroot

Password: passwordPassword: passwordPassword: passwordPassword: password

Page 4: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

4

2. DBDBDBDB オブジェクトのオブジェクトのオブジェクトのオブジェクトの作成作成作成作成

2.1 物理設計物理設計物理設計物理設計

本章では、以下の設計のオブジェクトを作成していきます。主な設定項目を以下

に記載しております。

� インスタンスインスタンスインスタンスインスタンス設計設計設計設計 (インスタンスはハンズオン環境に既に作成済みです。)

インスタンス名 :db2inst1

設定名設定名設定名設定名 設定値設定値設定値設定値 概要概要概要概要

インスタンス・タイプ ese インスタンスタイプの指定(Enterprise Server Edition を選択)

ビット数 32bit インスタンスのビット幅を指定

*インスタンスはハンズオン環境に事前に作成されている db2inst1 を使用します。

� データベースデータベースデータベースデータベース設計設計設計設計

データベース名: lab4

設定名設定名設定名設定名 設定値設定値設定値設定値 概要概要概要概要

コード・セット UTF-8 デフォルトは Unicode で作成

テリトリー JP 地域選択

照合順序 IDENTITY Unicode のデフォルトは IDENTITY

自動ストレージ YES 自動的に表スペース管理を実行

デフォルト・ページサイズ 4K DB のデフォルト・ページサイズ

構成アドバイザーの実行 APPLY DB ONLY パラメーターを、環境に合わせた推奨値に設定

� 表スペース設計表スペース設計表スペース設計表スペース設計

表スペース名表スペース名表スペース名表スペース名 タイプタイプタイプタイプ BufferpoolBufferpoolBufferpoolBufferpool 用途用途用途用途 Page sizePage sizePage sizePage size Extent sizeExtent sizeExtent sizeExtent size

TSDAT4K Automatic IBMDEFAULTBP(4K) データ 4K 4K 32K

TSIDX4K Automatic IBMDEFAULTBP(4K) 索引 4K 4K 32K

TSTMP4K SMS Directory IBMDEFAULTBP(4K) 一時表 4K 4K 32K

TSDAT32K DMS File BP32K データ 32K 32K 32K

TSIDX32K DMS File BP32K 索引 32K 32K 32K

TSTMP32K SMS Directory BP32K 一時表 32K 32K 32K

*一般的には、表スペースタイプは、自動表スペースか、DMS に指定するか統一しますが、

このハンズオンでは比較のために両方のタイプの表スペースを作成します。

Page 5: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

5

� バッファプールバッファプールバッファプールバッファプール設計設計設計設計

バッファプール名バッファプール名バッファプール名バッファプール名 ページサイズページサイズページサイズページサイズ バッファプール・バッファプール・バッファプール・バッファプール・サイズサイズサイズサイズ

IBMDEFAULTBP 4KB AUTOMATIC

BP32K 32KB AUTOMATIC

� ディレクトリー設計ディレクトリー設計ディレクトリー設計ディレクトリー設計

ディレクトリー名ディレクトリー名ディレクトリー名ディレクトリー名 ファイル名ファイル名ファイル名ファイル名((((DMSDMSDMSDMS FILEFILEFILEFILE)))) 用途用途用途用途

/opt/ibm/db2/V9.7_FP1 DB2 製品導入ディレクトリー

/home/db2inst1 インスタンス・ホームディレクトリー

/lab4/dbpath データベース・ディレクトリー

/lab4/data4k_1 自動ストレージ・パス

(TSDAT4K,TSIDX4K)

/lab4/data4k_2 自動ストレージ・パス

(TSDAT4K,TSIDX4K)

/lab4/data32k tsdat32k_cont1

tsdat32k_cont2

tsidx32k_cont1

tsidx32k_cont2

DMS ファイル 表スペースパス

(TSDAT32K,TSIDX32K)

/lab4/tmp01 4K 用一時表スペース

/lab4/tmp02 32K 用一時表スペース

* データの表スペースについては、ここでは 2 コンテナーを指定しており、本ハンズオン環境

では、ディレクトリーで分けているのみですが、実際にはコンテナーを分散して、I/O の競合

が出来るだけ発生しないように、コンテナー配置を設計する必要があります。

Page 6: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

6

2.2 事前準備事前準備事前準備事前準備

_ディレクトリー作成

本ハンズオンで使用するディレクトリーを作成します。

作成するディレクトリーは、以下の通りです。製品導入ディレクトリーと、インスタンス・ホー

ムは既に作成されているために、作成の必要はありません。

ディレクトリー名ディレクトリー名ディレクトリー名ディレクトリー名 ファイル名(ファイル名(ファイル名(ファイル名(DMSDMSDMSDMS FILEFILEFILEFILE)))) 用途用途用途用途

/lab4/dbpath データベース・ディレクトリー

/lab4/data4k_1 自動ストレージ・パス

(TSDAT4K,TSIDX4K)

/lab4/data4k_2 自動ストレージ・パス

(TSDAT4K,TSIDX4K)

/lab4/data32k tsdat32k_cont1

tsdat32k_cont2

tsidx32k_cont1

tsidx32k_cont2

DMS ファイル 表スペースパス

(TSDAT32K,TSIDX32K)

/lab4/tmp01 4K 用一時表スペース

/lab4/tmp02 32K 用一時表スペース

ディレクトリー作成し、db2inst1 のユーザーに所有権を与える必要があります。以下のコマ

ンドを実行してください。以下のコマンドは、/workshop/lab4/01.setup_dir.sh でも実行する

ことが可能です。

mkdir /lab4

mkdir /lab4/dbpath

mkdir /lab4/data4k_1

mkdir /lab4/data4k_2

mkdir /lab4/data32k

mkdir /lab4/tmp01

mkdir /lab4/tmp02

chown –R db2inst1:staff /lab4

ls –ltr /lab4

Page 7: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

7

2.3 データベースデータベースデータベースデータベース作成作成作成作成

インスタンスは既に作成されている、db2inst1 インスタンスを使用するため、データベース

作成にはいります。

データベースの設計は以下の通りです。

データベース名: lab4

設定名設定名設定名設定名 設定値設定値設定値設定値 概要概要概要概要

コード・セット UTF-8 デフォルトは Unicode で作成

テリトリー JP 地域選択

照合順序 IDENTITY Unicode のデフォルトは IDENTITY

自動ストレージ YES 自動的に表スペース管理を実行

デフォルト・ページサイズ 4K DB のデフォルト・ページサイズ

構成アドバイザーの実行 APPLY DB ONLY パラメーターを、環境に合わせた推奨値に設定

_DB2 インスタンスの起動

DB2 インスタンス・ユーザーdb2inst1 に切り替わり、DB2 インスタンスを起動します。

su – db2inst1

db2start

_データベースの作成

DB2V97onSLES10:/ # su - db2inst1 db2inst1@DB2V97onSLES10:~> db2start

02/16/2010 11:41:14 0 0 SQL1063N DB2START の処理が正常に終了しまし

た。

SQL1063N DB2START の処理が正常に終了しました。

DB2V97onSLES10:~ # mkdir /lab4 DB2V97onSLES10:~ # mkdir /lab4/dbpath DB2V97onSLES10:~ # mkdir /lab4/data4k_1 DB2V97onSLES10:~ # mkdir /lab4/data4k_2 DB2V97onSLES10:~ # mkdir /lab4/data32k DB2V97onSLES10:~ # mkdir /lab4/tmp01 DB2V97onSLES10:~ # mkdir /lab4/tmp02 DB2V97onSLES10:~ # chown -R db2inst1:staff /lab4 DB2V97onSLES10:~ # ls -ltr /lab4 total 0 drwxr-xr-x 2 db2inst1 staff 48 Feb 18 06:00 dbpath drwxr-xr-x 2 db2inst1 staff 48 Feb 18 06:01 data4k_1 drwxr-xr-x 2 db2inst1 staff 48 Feb 18 06:01 data4k_2 drwxr-xr-x 2 db2inst1 staff 48 Feb 18 06:01 data32k drwxr-xr-x 2 db2inst1 staff 48 Feb 18 06:01 tmp01 drwxr-xr-x 2 db2inst1 staff 48 Feb 18 06:01 tmp02

Page 8: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

8

以下のコマンドを実行し、上記の設定のデータベースを作成します。以下のコマンドは、

/workshop/lab4/02.crt_db.ddl でも実行可能です。(DDL ファイルは、db2 –tvf <DDL ファイ

ル>で実行してください。)

db2 create db lab4 automatic storage yes on /lab4/data4k_1, /lab4/data4k_2 dbpath on /lab4/dbpath using codeset UTF-8 territory JP pagesize 4096

構成アドバイザーはデフォルトで使用されます。使用しない場合や、パラメーターを調整し

たい場合には、AUTOCONFIGURE オプションで指定することが可能です。 データベース

作成のオプションを知りたい方は、db2 ? create database コマンドを実行することで、確認

することが出来ます。

db2 ? create database

_作成されたデータベースの確認

データベースが作成されたことを、以下のコマンドで確認することが出来ます。

db2 list db directory

今回作成したデータベースだけではなく、他の章のハンズオンで db2inst1 インスタンスに

作成した他のデータベースも表示されます。

db2inst1@DB2V97onSLES10:~> db2 create db lab4 automatic storage yes on /lab4/data4k_1, /lab4/data4k_2 dbpath on /lab4/dbpath using codeset UTF-8 territory JP pagesize 4096

DB20000I CREATE DATABASE コマンドが正常に完了しました。

db2inst1@DB2V97onSLES10:~> db2 ? create database CREATE DATABASE database-name [AT DBPARTITIONNUM | [AUTOMATIC STORAGE {NO | YES}] [ON path[{,path}...][DBPATH ON path]] [ALIAS database-alias] [USING CODESET codeset TERRITORY territory] [COLLATE USING {SYSTEM | IDENTITY | IDENTITY_16BIT | COMPATIBILITY | NLSCHAR | UCA400_NO | UCA400_LSK | UCA400_LTH | language-aware-collation | locale-sensitive-collation}] [PAGESIZE integer [K]] [NUMSEGS numsegs] [DFT_EXTENT_SZ dft_extentsize] [RESTRICTIVE] [CATALOG TABLESPACE tblspace-defn] [USER TABLESPACE tblspace-defn] [TEMPORARY TABLESPACE tblspace-defn] [WITH "comment-string"]] [AUTOCONFIGURE [USING config-keyword value [{,config-keyword value}...]] [APPLY {DB ONLY | DB AND DBM | NONE}]]

<以下出力省略>

Page 9: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

9

_デフォルトで作成される表スペースのパスを確認

表スペースのパスを確認する方法の一般的な方法をご紹介します。

<表スペースパスの取得方法>

1.db2 list tablespaces コマンドを実行

2.1 のコマンド実行結果から、取得したい表スペースの ID を確認

3.db2 list tablespace containers for <表スペース ID> コマンドを実行

上記の方法以外にも、モニタリングの章で取り上げる snapshot等でも表スペースの構成、

状態を確認することが出来ます。

DB2 では、データベースを作成するとデフォルトで SYSCATSPACE(カタログ情報を格納)、

TEMPSPACE1(一時表スペース)、および USERSPACE1 (ユーザー表スペース)の表スペ

ースを作成します。

以下のコマンドを実行し、デフォルトで作成された表スペースを確認してください。

db2 connect to lab4

db2 list tablespaces

db2 list tablespace containers for <表スペース ID>

今回は自動ストレージ機能を有効にし、自動ストレージパスとして、/lab/data4k_1、

/lab/data4k_2 の二つのコンテナーパスを指定しているため、二つのコンテナーに表スペ

ースが紐づいていることが表示されます。

db2inst1@DB2V97onSLES10:~> db2 list db directory

システム・データベース・ディレクトリー

ディレクトリー中の項目数 = 3

データベース 1 項目:

データベース別名 = LAB4

データベース名 = LAB4

ローカル・データベース・ディレクトリー = /lab4/dbpath

データベース・リリース・レベル = d.00

コメント =

ディレクトリー項目タイプ = 間接

カタログ・データベース・パーティション番号 = 0

代替サーバー・ホスト名 =

代替サーバーのポート番号 =

<その他の DBのエントリー結果は省略>

Page 10: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

10

コンテナーパスには、コンテナーの実体ファイルがあります。ls コマンド等で確認すること

が可能です。

db2inst1@DB2V97onSLES10:~> db2 connect to lab4

(出力結果省略) db2inst1@DB2V97onSLES10:~> db2 list tablespaces

現在のデータベースの表スペース

表スペース ID = 0

名前 = SYSCATSPACE

タイプ = データベース管理スペース

内容 = すべての永続デー

タ。 REGULAR 表スペース。

状態 = 0x0000

詳しい説明:

正常

表スペース ID = 1

名前 = TEMPSPACE1

タイプ = システム管理スペース

内容 = システム一時デー

状態 = 0x0000

詳しい説明:

正常

表スペース ID = 2

名前 = USERSPACE1

タイプ = データベース管理スペース

内容 = すべての永続デー

タ。 LARGE 表スペース。

(以下省略) db2inst1@DB2V97onSLES10:~> db2 list tablespace containers for 0

表スペースの表スペース・コンテナー 0

コンテナー ID = 0

名前 = /lab4/data4k_1/db2inst1/NODE0000/LAB4/T0000000/C0000000.CAT

タイプ = ファイル

コンテナー ID = 1

名前 = /lab4/data4k_2/db2inst1/NODE0000/LAB4/T0000000/C0000001.CAT

タイプ = ファイル

<他の表スペースに関しても上記と同様に表スペース IDを指定して実行してください。>

Page 11: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

11

2.4 バッファプール作成バッファプール作成バッファプール作成バッファプール作成

データベースを作成するとデフォルトで、4K ページサイズのバッファプールが作成されま

す。バッファプールと表スペース、一時表スペースのページサイズは同じである必要があ

ります。今回では 32K ページサイズの表スペースを作成しているため、32K のバッファプ

ールを作成します。

今回のバッファプールのサイズは AUTOMATIC(デフォルト)とし、自動メモリーチューニン

グ機能を使用して、負荷に応じて自動的にサイズが変更になるような設定になります。バ

ッファプール設計はパフォーマンスに影響しますので、パフォーマンスを重視するような場

合には、パフォーマンステストを実施して、固定に設定することも考えられます。

バッファプール名バッファプール名バッファプール名バッファプール名 ページサイズページサイズページサイズページサイズ バッファプール・バッファプール・バッファプール・バッファプール・サイズサイズサイズサイズ

IBMDEFAULTBP 4KB AUTOMATIC

BP32K 32KB AUTOMATIC

_バッファプールの作成

以下のコマンドを実行し、バッファプールを作成してください。以下のコマンドは、

/workshop/lab4/03.crt_bfp.ddl でも実行可能です。(DDL ファイルは、db2 –tvf <DDL ファイ

ル名>で実行してください。)

db2 create bufferpool BP32K immediate size 1000 automatic pagesize 32K

db2inst1@DB2V97onSLES10:~> db2 create bufferpool BP32K immediate size 1000 automatic pagesize 32K

DB20000I SQL コマンドが正常に完了しました。

Note:DB2は、自動メモリーチューニングを行う機能があり、データベース構成パラメーター(SELF_TUNING_MEM

)を有効にした場合、DB の負荷に応じて、メモリーのチューニングを行います。自動メモリーチューニング対象としては、バッ

ファプールやロック情報を持つ領域(lock list)や、ソート領域(sortheap)、パッケージのキャッシュ領域(Package Cache)があ

ります。DB 単位での使用メモリーは、データベース構成パラメーターの DATABASE_MEMORY で数値に設定することも、

AUTOMATIC に設定することが出来ます。数値に設定した場合、その範囲内で、自動メモリーチューニングを行います。

Page 12: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

12

_バッファプールの情報の確認

以下のコマンドを実行し、バッファプールの情報を確認してください。バッファプール情報は、

システム・カタログ表から取得できます。表スペースと同様に、snapshot等でも確認するこ

とが出来ます。

db2 select BPNAME,PAGESIZE from SYSCAT.BUFFERPOOLS

db2inst1@DB2V97onSLES10:~> db2 select BPNAME,PAGESIZE from SYSCAT.BUFFERPOOLS

BPNAME PAGESIZE

-------------------------------------------------------------------------------------------------------------------------------- -----------

IBMDEFAULTBP 4096

BP32K 32768

2 レコードが選択されました。

Page 13: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

13

2.5 表スペース作成表スペース作成表スペース作成表スペース作成

以下の設計の表スペースを作成します。先ほど作成した BP32K のバッファプールに紐づ

ける 32K の表スペースは、表スペースの管理タイプを指定し、DB2 に自動的に管理させ

る自動ストレージの機能は使用しません。4K のページサイズの各表スペースは、デフォ

ルトで作成される 4K ページのバッファプール(IBMDEFAULTBP)を自動的に使用します。

自動ストレージ・データベースのため、表スペースタイプを指定しない場合には、デフォル

トで自動ストレージ・表スペースが作成されます。

表スペース名表スペース名表スペース名表スペース名 タイプタイプタイプタイプ BufferpoolBufferpoolBufferpoolBufferpool 用途用途用途用途 Page sizePage sizePage sizePage size Extent sizeExtent sizeExtent sizeExtent size

TSDAT4K Automatic IBMDEFAULTBP(4K) データ 4K 4K 32K

TSIDX4K Automatic IBMDEFAULTBP(4K) 索引 4K 4K 32K

TSTMP4K SMS Directory IBMDEFAULTBP(4K) 一時表 4K 4K 32K

TSDAT32K DMS File BP32K データ 32K 32K 32K

TSIDX32K DMS File BP32K 索引 32K 32K 32K

TSTMP32K SMS Directory BP32K 一時表 32K 32K 32K

_DMS ファイルのコンテナーファイル作成

DMS ファイルで使用するコンテナーファイルを作成します。以下のコマンドを実行してくだ

さい。tsdat32k_cont1、tsdat32k_cont2、tsidx32k_con1、tsidx32k_cont2 のファイルを touch

コマンドで作成します。(注 : tablespace 作成のために必要な操作ではありませんが、

権限があることの確認のために、この LAB で実施しています。)

cd /lab4/data32k

touch tsdat32k_cont1 tsdat32k_cont2 tsidx32k_cont1 tsidx32k_cont2

ls –ltr /lab4/data32k

db2inst1@DB2V97onSLES10:/lab4/data32k> cd db2inst1@DB2V97onSLES10:~> cd /lab4/data32k db2inst1@DB2V97onSLES10:/lab4/data32k> touch tsdat32k_cont1 tsdat32k_cont2 tsidx32k_cont1 tsidx32k_cont2 db2inst1@DB2V97onSLES10:/lab4/data32k> ls -ltr

合計 0 -rw-r--r-- 1 db2inst1 staff 0 2010-02-18 06:57 tsidx32k_cont2 -rw-r--r-- 1 db2inst1 staff 0 2010-02-18 06:57 tsidx32k_cont1 -rw-r--r-- 1 db2inst1 staff 0 2010-02-18 06:57 tsdat32k_cont2 -rw-r--r-- 1 db2inst1 staff 0 2010-02-18 06:57 tsdat32k_cont1

Page 14: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

14

_表スペースの作成

なお表スペース作成(CREATE TABLESPACE)コマンドで今回指定していないオプションを

確認したい方は、db2 ? create tablespace コマンドでシンタックスを確認ください。

物理設計で定義した表スペースの作成 DDL は/workshop/lab4/04.crt_tbs.ddl で実行可能

です。以下のコマンドを実行してください。

cd /workshop/lab4

db2 –tvf 04.crt_tbs.ddl

db2inst1@DB2V97onSLES10:/lab4/data32k> cd /workshop/lab4 db2inst1@DB2V97onSLES10:/workshop/lab4> db2 -tvf 04.crt_tbs.ddl create tablespace tsdat4k pagesize 4k managed by automatic storage

extentsize 32DB20000I SQL コマンドが正常に完了しました。 create tablespace tsidx4k pagesize 4k managed by automatic storage

extentsize 32DB20000I SQL コマンドが正常に完了しました。 create system temporary tablespace tstmp4k pagesize 4k managed by system using( '/lab4/tmp01') extentsize 32

DB20000I SQL コマンドが正常に完了しました。 create tablespace tsdat32k pagesize 32k managed by database using(file '/lab4/data32k/tsdat32k_cont1' 100M,file '/lab4/data32k/tsdat32k_cont2' 100M) extentsize 32 bufferpool BP32K

DB20000I SQL コマンドが正常に完了しました。 create tablespace tsidx32k pagesize 32k managed by database using(file '/lab4/data32k/tsidx32k_cont1' 50M,file '‘/lab4/data32k/tsidx32k_cont2' 50M) extentsize 32 bufferpool BP32K

DB20000I SQL コマンドが正常に完了しました。 create system temporary tablespace tstmp32k pagesize 32k managed by system using('/lab4/tmp02') extentsize 32 bufferpool BP32K

DB20000I SQL コマンドが正常に完了しました。

Page 15: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

15

_表スペースの確認

表スペースの情報は、db2 list tablespacesコマンド以外に、システム・カタログ表からも確

認することが出来ます。以下のコマンドを実行し、前ステップで作成した表スペースを確認

してください。

db2 "select substr(TBSPACE,1,20) TBSPACE,TBSPACETYPE,DATATYPE,EXTENTSIZE,PAGESIZE,BUFFERPOOLID from SYSCAT.TABLESPACES"

またデフォルトの表スペースの情報を確認した場合と同様に、db2 list tablespacesコマン

ドで表スペースのコンテナー情報を確認することが出来ます。

db2 list tablespaces

上記のコマンド出力結果で、作成した表スペース ID を指定して、以下のコマンドを実行し、

コンテナーの情報を確認してください。

db2 list tablespace containers for <TBS-ID>

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 "select substr(TBSPACE,1,20) TBSPACE,TBSPACETYPE,DATATYPE,EXTENTSIZE,PAGESIZE,BUFFERPOOLID from SYSCAT.TABLESPACES" TBSPACE TBSPACETYPE DATATYPE EXTENTSIZE PAGESIZE BUFFERPOOLID -------------------- ----------- -------- ----------- ----------- ------------ SYSCATSPACE D A 4 4096 1 TEMPSPACE1 S T 32 4096 1 USERSPACE1 D L 32 4096 1 SYSTOOLSPACE D L 4 4096 1 TSIDX4K D L 32 4096 1 TSTMP4K S T 32 4096 1 TSDAT32K D L 32 32768 2 TSDAT4K D L 32 4096 1 TSIDX32K D L 32 32768 2 TSTMP32K S T 32 32768 2

10 レコードが選択されました。

Page 16: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

16

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 list tablespaces

現在のデータベースの表スペース

表スペース ID = 0

名前 = SYSCATSPACE

タイプ = データベース管理スペース

内容 = すべての永続デー

タ。 REGULAR 表スペース。

状態 = 0x0000

詳しい説明:

正常

<実行結果省略> db2inst1@DB2V97onSLES10:/workshop/lab4> db2 list tablespace containers for 4

表スペースの表スペース・コンテナー 4

コンテナー ID = 0

名前 = /lab4/data4k_1/db2inst1/NODE0000/LAB4/T0000004/C0000000.LRG

タイプ = ファイル

コンテナー ID = 1

名前 = /lab4/data4k_2/db2inst1/NODE0000/LAB4/T0000004/C0000001.LRG

タイプ = ファイル

<作成した他の表スペースについてもご確認ください。>

Page 17: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

17

2.6 表、索引表、索引表、索引表、索引作成作成作成作成

前章までで、物理設計に記載された、基本的な DB2 のオブジェクトの作成が終了しまし

た。この章では、表と索引を作成します。

表や索引を作成し、データを投入すると、自動ストレージ表スペース(今回は TSDAT4K、

TSIDX4K の表スペース)は、表スペースのサイズを自動的に拡張します。

_各表スペースのサイズ確認

表スペースの確認方法は、SMS の表スペースであれば、OS での使用率(df コマンド等)

でも確認することが出来ます。DMS や自動ストレージなど DB2 が管理する表スペースに

ついては、事前に DB2 がアロケートしますので、OS レベルでの確認ではなく、DB2 のコ

マンドで確認してください。

先ほど作成した表スペースの使用率を確認します。以下のコマンドを実行し、TSDAT32K、

TSDAT4K の表スペースのサイズ、使用率を記載してください。

db2 list tablespaces show detail

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 list tablespaces show detail

現在のデータベースの表スペース

<出力結果一部抜粋>

表スペース ID = 4

名前 = TSDAT4K

タイプ = データベース管理スペース

内容 = すべての永続データ。

LARGE 表スペース。

状態 = 0x0000

詳しい説明:

正常

合計ページ数 = 8192

使用できるページ数 = 8128

使用したページ = 96

フリー・ページ = 8032

最高水準点 (ページ) = 96

ページ・サイズ (バイト) = 4096

エクステント・サイズ (ページ) = 32

プリフェッチ・サイズ (ページ) = 64

コンテナー数 = 2

エクステント・サイズ (ページ) = 32

プリフェッチ・サイズ (ページ) = 64

コンテナー数 = 2

Page 18: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

18

上記のコマンドの実行結果から、表スペースの使用率を計算します。各表スペースのサ

イズ、使用率を記載してください。

サイズ=合計ページ数*ページ・サイズ

使用率=使用したページ数/合計ページ数*100

TSDAT4K サイズ____________ 使用率______________

TSIDX4K サイズ____________ 使用率______________

TSDAT32K サイズ____________ 使用率______________

TSIDX32K サイズ____________ 使用率______________

_表、索引作成、データ投入

各表スペースにオブジェクトを作成し、データを LOAD します。

以下の DDL を実行し、正常終了することを確認してください。DDL ファイルは全て

/workshop/lab4 ディレクトリーにあります。

db2 –tvf 05.crt_tbl_4.ddl

db2 –tvf 06.crt_idx_4.ddl

db2 –tvf 07.load_4.ddl

db2 –tvf 08.crt_tbl_32.ddl

db2 –tvf 09.crt_idx_32.ddl

db2 –tvf 10.load_32.ddl

<以下のコマンドの出力結果省略。正常に終了したことを確認してください。> db2inst1@DB2V97onSLES10:/workshop/lab4> db2 –tvf 05.crt_tbl_4.ddl db2inst1@DB2V97onSLES10:/workshop/lab4> db2 –tvf 06.crt_idx_4.ddl db2inst1@DB2V97onSLES10:/workshop/lab4> db2 –tvf 07.load_4.ddl db2inst1@DB2V97onSLES10:/workshop/lab4> db2 –tvf 08.crt_tbl_32.ddl db2inst1@DB2V97onSLES10:/workshop/lab4> db2 –tvf 09.crt_idx_32.ddl db2inst1@DB2V97onSLES10:/workshop/lab4> db2 –tvf 10.load_32.ddl

Note:DMS FILE の表スペースに、自動リサイズ機能を有効にし、容量が増えた際に、サイズを拡張することも可能です。

自動リサイズ機能を有効にするには、CREATE TABLESPACE または ALTER TABLESPACE のステートメントで、

AUTORESIZE YES オプションの指定をすることで設定できます。

自動リサイズ機能と自動ストレージ表スペースの比較については以下を参照ください。

SMS 表スペース、DMS 表スペース、および自動ストレージ表スペースの比較

http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.dbobj.doc/doc/c0055446.html

Page 19: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

19

_表スペースのサイズ確認

表スペースの「合計ページ数」、「使用したページ」が増えていることを確認します。

自動ストレージ・表スペース(TSDAT4K、TSIDX4K)は、データの増加に伴い、表スペース

サイズが増加します。

先ほどと同様に表スペースのサイズ、使用率を計算してください。

db2 connect to lab4

db2 list tablespaces show detail

サイズ=合計ページ数*ページ・サイズ

使用率=使用したページ数/合計ページ数*100

TSDAT4K サイズ____________ 使用率______________

TSIDX4K サイズ____________ 使用率______________

TSDAT32K サイズ____________ 使用率______________

TSIDX32K サイズ____________ 使用率______________

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 connect to lab4

<出力結果省略> db2inst1@DB2V97onSLES10:/workshop/lab4> db2 list tablespaces show detail

<出力結果一部抜粋>

現在のデータベースの表スペース

表スペース ID = 4

名前 = TSDAT4K

タイプ = データベース管理スペース

内容 = すべての永続データ。

LARGE 表スペース。

状態 = 0x0000

詳しい説明:

正常

合計ページ数 = 24576

使用できるページ数 = 24512

使用したページ = 16768

フリー・ページ = 7744

最高水準点 (ページ) = 16768

ページ・サイズ (バイト) = 4096

エクステント・サイズ (ページ) = 32

プリフェッチ・サイズ (ページ) = 64

コンテナー数 = 2

Page 20: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

20

3. 行圧縮行圧縮行圧縮行圧縮

3.1 行圧縮表の作成行圧縮表の作成行圧縮表の作成行圧縮表の作成

_行圧縮表の作成

行圧縮機能を有効にした表を作成します。前章で表スペース TSDAT4K に作成した表と

同じ DDL を使用し、COMPRESS YES オプションを指定して実行します。表名は、**_C 表

と指定しています。(例:非圧縮表 STOCK,圧縮表 STOCK_C)

以下の DDL ファイルを実行してください。/workshop/lab4 配下にあります。

db2 –tvf 11.crt_tbl_c.ddl

_圧縮索引の作成

DB2V9.7 から索引についても圧縮対象となります。圧縮された表(COMPRESS YES)に作

成された索引は圧縮索引になります。以下の DDL ファイルを実行してください。

db2 –tvf 12.crt_idx_c.ddl

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 -tvf 11.crt_tbl_c.ddl connect to lab4

データベース接続情報

データベース・サーバー = DB2/LINUX 9.7.1

SQL 許可 ID = DB2INST1

ローカル・データベース別名 = LAB4 CREATE TABLE warehouse_c ( w_id INTEGER, w_name VARCHAR(10), w_street_1 VARCHAR(20), w_street_2 VARCHAR(20), w_city VARCHAR(20), w_state CHAR(2), w_zip CHAR(9), w_tax DECIMAL(4,4), w_ytd DECIMAL(12,2)) compress yes in TSDAT4K index in TSIDX4K

DB20000I SQL コマンドが正常に完了しました。 terminate

DB20000I TERMINATE コマンドが正常に完了しました。

Page 21: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

21

_圧縮表へのデータ投入

前章と同様のデータを LOAD します。LOAD するデータファイルは前章と同様です。以下

の DDL ファイルを実行し、正常終了することを確認してください。

db2 –tvf 13.load_c.ddl

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 -tvf 12.crt_idx_c.ddl connect to lab4

データベース接続情報

データベース・サーバー = DB2/LINUX 9.7.1

SQL 許可 ID = DB2INST1

ローカル・データベース別名 = LAB4 CREATE UNIQUE INDEX iwarehouse_c ON warehouse_c(w_id) PCTFREE 10

DB20000I SQL コマンドが正常に完了しました。

<途中省略> terminate

DB20000I TERMINATE コマンドが正常に完了しました。

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 -tvf 13.load_c.ddl connect to lab4

データベース接続情報

データベース・サーバー = DB2/LINUX 9.7.1

SQL 許可 ID = DB2INST1

ローカル・データベース別名 = LAB4 load from ./data/warehouse.tbl of del messages msg/warehouse.msg replace into warehouse_c

読み込まれた行数 = 1

スキップされた行数 = 0

ロードされた行数 = 1

拒否された行数 = 0

削除された行数 = 0

コミットされた行数 = 1

<途中省略> terminate

DB20000I TERMINATE コマンドが正常に完了しました。

Page 22: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

22

3.2 行圧縮率の確認(行圧縮率の確認(行圧縮率の確認(行圧縮率の確認(ADMIN_TAB_INFOADMIN_TAB_INFOADMIN_TAB_INFOADMIN_TAB_INFO))))

_表サイズの確認

非圧縮表と圧縮表の物理サイズを確認します。ここでは STOCK 表、STOCK_C 表を比較

します。STOCK_C 表では圧縮され、物理サイズが小さくなっていることが確認できます。

db2 connect to lab4

db2 "select DATA_OBJECT_P_SIZE from SYSIBMADM.ADMINTABINFO where tabname='STOCK_C'"

db2 "select DATA_OBJECT_P_SIZE from SYSIBMADM.ADMINTABINFO where tabname='STOCK'"

前章と同じく表スペースの使用率も確認することで、実際にどの程度圧縮されたのかを確

認することが出来ます。索引も圧縮対象にしているため、お時間のある方は、索引の表ス

ペース使用率もご確認ください。

db2inst1@DB2V97onSLES10:/workshop/lab2> db2 connect to lab4

データベース接続情報

データベース・サーバー = DB2/LINUX 9.7.1

SQL 許可 ID = DB2INST1

ローカル・データベース別名 = LAB4 db2inst1@DB2V97onSLES10:/workshop/lab4> db2 "select DATA_OBJECT_P_SIZE from SYSIBMADM.ADMINTABINFO where tabname='STOCK_C'" DATA_OBJECT_P_SIZE -------------------- 26752

1 レコードが選択されました。 db2inst1@DB2V97onSLES10:/workshop/lab4> db2 "select DATA_OBJECT_P_SIZE from SYSIBMADM.ADMINTABINFO where tabname='STOCK'" DATA_OBJECT_P_SIZE -------------------- 35712

1 レコードが選択されました。

Page 23: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

23

4. (オプション)パーティション表(オプション)パーティション表(オプション)パーティション表(オプション)パーティション表

このステップでは、パーティション表を作成します。パーティション表とは、大量データを効率的

に処理するために、あらかじめ定義したパーティションキーの値に応じて異なるパーティション

に格納することができる表です。大量データの保持や、定期的な削除処理の効率化に非常に

効果的です

4.1 パーティション表の作成パーティション表の作成パーティション表の作成パーティション表の作成

編集の完了した DDL ファイルを使用して、パーティション表を作成します。下記のコマンドを実

行して DDL を投入してください。

db2 connect to lab4 db2 -tvf 14.crt_tbl_p.ddl

パーティション表 PART1 の DDL

4.2 パーティション情報の確認パーティション情報の確認パーティション情報の確認パーティション情報の確認

パーティション表 PART1 は正常に作成されました。このステップでは、パーティションの定義情

報をどのようにして取得するかを学習します。

DESCRIBE DATA PARTITION コマンドは、パーティションに関するシステムカタログ表から、パ

ーティション構成を取得して表示します。一つ目のコマンドではパーティション ID と各パーティシ

ョンの範囲が出力されます。SHOW DETAIL オプションを追加した二つ目のコマンドでは、パー

ティション名やパーティションが格納されている表スペースの ID等が追加で出力されます。

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 connect to lab4

データベース接続情報

データベース・サーバー = DB2/LINUX 9.7.1

SQL 許可 ID = DB2INST1

ローカル・データベース別名 = LAB4 db2inst1@DB2V97onSLES10:/workshop/lab4> vi 14.crt_tbl_p.ddl db2inst1@DB2V97onSLES10:/workshop/lab4> db2 -tvf 14.crt_tbl_p.ddl CREATE TABLE PART1 ( SEQKEY INTEGER, GENKEY INTEGER, CREATE_DATE DATE, FILENAME CHAR(25)) PARTITION BY RANGE (CREATE_DATE) ( STARTING '2009-01-05' ENDING '2009-01-11', STARTING '2009-01-12' ENDING '2009-01-18', STARTING '2009-01-19' ENDING '2009-01-25', STARTING '2009-01-26' ENDING '2009-02-01', STARTING '2009-02-02' ENDING '2009-02-08', STARTING '2009-02-09' ENDING '2009-02-15', STARTING '2009-02-16' ENDING '2009-02-22', STARTING '2009-02-23' ENDING '2009-03-01' ) in TSDAT4K index in TSIDX4K

DB20000I SQL コマンドが正常に完了しました。。

Page 24: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

24

db2 describe data partitions for table part1 db2 describe data partitions for table part1 show detail

実行例

SHOW DETAIL オプション付きで実行した際に、右端に出力される「AccessMode」と「Status」は、

各パーティションのステータスを表す項目です。AccessMode=F(フルアクセス)及び Status=ブ

ランクとなっている場合が通常の状態です。例えば、パーティションへのアクセスが不可能にな

っている場合、AccessMode=N となります。

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 describe data partitions for table part1 PartitionId Inclusive (y/n) Inclusive (y/n) Low Value High Value ----------- - ------------------------------- - ------------------------------- 0 Y '2009-01-05' Y '2009-01-11' 1 Y '2009-01-12' Y '2009-01-18' 2 Y '2009-01-19' Y '2009-01-25' 3 Y '2009-01-26' Y '2009-02-01' 4 Y '2009-02-02' Y '2009-02-08' 5 Y '2009-02-09' Y '2009-02-15' 6 Y '2009-02-16' Y '2009-02-22' 7 Y '2009-02-23' Y '2009-03-01'

8 レコードが選択されました。 db2inst1@DB2V97onSLES10:/workshop/lab4> db2 describe data partitions for table part1 show detail

<省略> PartitionId PartitionName TableSpId PartObjId IndexTblSpId LongTblSpId AccessMode Status ----------- ------------------------------- ----------- ----------- ------------ ----------- - ------ 0 PART0 4 264 4 4 F 1 PART1 4 265 4 4 F 2 PART2 4 266 4 4 F 3 PART3 4 267 4 4 F 4 PART4 4 268 4 4 F 5 PART5 4 269 4 4 F 6 PART6 4 270 4 4 F 7 PART7 4 271 4 4 F

8 レコードが選択されました。

Page 25: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

25

5.5.5.5. (オプション)(オプション)(オプション)(オプション)パーティション表のメンテパーティション表のメンテパーティション表のメンテパーティション表のメンテ

ナンスナンスナンスナンス

DB2 のパーティション表は、パーティションを単位としてデータを投入したり切り出したりするこ

とが可能です。この機能は、大容量データを一括して処理する必要がある場合に効果的です。

5.1 パーティションのデタッチパーティションのデタッチパーティションのデタッチパーティションのデタッチ

PART1 表に 11週分存在するパーティション表のうち、2009/1/5の週のパーティションが保存

期間を過ぎたと仮定します。通常の表であれば、SQL によるデータの消し込みを行いますが、

SQL によるデータの削除には下記の様な課題があります。

・ 1件ずつ SQL により削除を行うため、速度が遅い

・ ロールバックを可能とするためログを大量に生成する

・ 適度な間隔でコミットを行わないと大量のロックにより他の SQL の実行を阻害する場合

がある

パーティションのデタッチによるデータの削除は、これらの課題を解決します。

・ カタログ情報の書き換えによるパーティションの切り離しであるため、処理時間がデータ

量に依存しない

・ ログを必要とするのはシステムカタログ表の書き換え部分のみであるため、必要とするロ

グが非常に少量

・ データ部の切り離しの後、索引を非同期でメンテナンスするため、他の SQL 実行を阻害

しない。

パーティションのデタッチを行うと、デタッチされたパーティションは独立した表として切り出され

ます。デタッチに伴うデータの移動は発生しません。デタッチが完了した時点で元の表とは関連

しなくなるため、DROP TABLE により削除することが可能です。

_下記のコマンドを実行して、パーティション PART0 のデタッチを行ってください

db2 "alter table part1 detach partition part0 into part1_partition0"

実行例

DESCRIBE DATA PARTITIONS コマンドで、2009/1/5の週のパーティションが無くなっているこ

とを確認してください。

また、下記のコマンドで新たに PART1_PARTITION0 表が作成されていることが確認できます。

db2 list tables |grep PART1

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 "alter table part1 detach partition part0 into part1_partition0"

DB20000I SQL コマンドが正常に完了しました。

Page 26: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

26

実行例

5.2 パーティションのアタッチパーティションのアタッチパーティションのアタッチパーティションのアタッチ

次に、新たな XML データをパーティションのアタッチを利用して投入します。この方法では、

PART1 表に直接ロードするのではなく、別の表にいったんロードした後で、その表を PART1 表

へアタッチします。アタッチを利用することでデータ投入に伴って PART1 表が書き込みできな

い時間を短縮することが可能です。

_新規表の作成

CREATE TABLE ステートメントを使用してデータをロードする表を作成します。この表は次のス

テップで PART1 表にアタッチするため、PART1 表と同じ構成で作成する必要があります。

CREATE TABLE ステートメントの like オプションを使用する事で、同じ構成の表を簡単に作成

可能です。

db2 create table part1_0330 like part1 in tsdat4k index in tsidx4k

実行例

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 list tables |grep PART PART1 DB2INST1 T 2010-02-18-10.47.01.426416PART1_PARTITION0 DB2INST1 T 2010-02-18-10.50.58.816620

2009-01-12

2009-01-19

2009-03-23

2009-03-30

PART1表表表表

2009

03-30

LOAD

②②②② ロード後、新パーティロード後、新パーティロード後、新パーティロード後、新パーティ

ションとしてアタッチションとしてアタッチションとしてアタッチションとしてアタッチ

①①①①別表を新規作成してデ別表を新規作成してデ別表を新規作成してデ別表を新規作成してデ

ータロードータロードータロードータロード

・・・・

・・・・

ATTACH

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 create table part1_0330 like part1 in tsdat4k index in tsidx4k

DB20000I SQL コマンドが正常に完了しました。

Page 27: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

27

_PART1_0330 表へのデータ投入

新規に作成した PART1_0330 表へデータを投入します。投入するデータは/workshop/lab4 ディ

レクトリーに存在しています。下記のコマンドを実行して、データの LOAD を行ってください。

db2 load from part1_0330.del of del replace into part1_0330

実行例

_PART1 表へのアタッチ

PART1_0330 表へのデータ投入が完了した後、PART1 表へのアタッチを行います。

db2 "alter table part1 attach partition starting '2009-03-30' ending '2009-04-05' from part1_0330" db2 set integrity for part1 immediate checked

実行例

先ほどと同様に DESCRIBE DATA PARTITIONS コマンドで、パーティション表の定義が変更さ

れていることを確認してください。

以上で、本章のハンズオンは終了になります。お疲れ様でした。

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 load from part1_0330.del of del replace into part1_0330

<省略>

SQL3520W ロード整合点が成功しました。

SQL3515W ユーティリティーは、"2010-02-18 11:06:34.477336" に "LOAD"

フェーズを完了しました。

読み込まれた行数 = 800

スキップされた行数 = 0

ロードされた行数 = 800

拒否された行数 = 0

削除された行数 = 0

コミットされた行数 = 800

db2inst1@DB2V97onSLES10:/workshop/lab4> db2 "alter table part1 attach partition starting '2009-03-30' ending '2009-04-05' from part1_0330"

SQL3601W ステートメントにより 1 つ以上の表が自動的に SET

INTEGRITY ペンディング状態になりました。 SQLSTATE=01586 db2inst1@DB2V97onSLES10:/workshop/lab4> db2 set integrity for part1 immediate checked

DB20000I SQL コマンドが正常に完了しました。

Page 28: [Lab [Lab 4 444]]]] データベースデータベースの物理 …7 2.3 データベース作成 インスタンスは既に作成されている、db2inst1インスタンスを使用するため、データベース

28

© Copyright IBM Corporation 2011 All Rights Reserved.

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

るものです。

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

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

れていますが、他のところで同じまたは同様の結果が得られる保証はありません。これらの技術を自身の環境に適用することを試みる使

用先は、自己の責任において行う必要があります。