EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

002 DB2のインスタンスとデータベース

edited by DB Online   2012/09/14 00:00

 皆様こんにちは。今年の夏も暑かったですね。そして依然として残暑が厳しい。私は鹿児島出身で暑さには慣れていると思っていましたが、それを通り越して暑いですね。ただ、鹿児島に比べると私の住むところは湿気と火山灰がないぶん、まだ過ごしやすいと感じます(笑)皆様夏バテに気をつけて、特にサーバールームでお仕事をされている読者の皆様、寒暖の差で体を壊さぬようご自愛ください。さて、前回はDB2のインストールについて解説しました。そして、最後はサンプルのデータベースを作成して、簡単なSQLを実行してみました。とりあえず手を動かして触って覚えようというタイプの方はデータベースを作成した後はひたすらSQL演習になってしまうのではないでしょうか。今回は少し立ち止まって、「データベースに接続」という部分を少し掘り下げて解説します。

 

ここで改めてRDBMSとは?

 第1回ではLinux環境にDB2のインストールを行いました。この作業、正確にはDB2のリレーショナル・データベース管理システム(RDBMS : Relational Database Management System)を導入したのであって、データベースをインストールしたわけではありません。DB2のリレーショナル・データベース管理システムを導入した後に、そのシステム内にデータベースを作成したのです。

図1:データベース管理システムとデータベース
図1:データベース管理システムとデータベース

 一般的に広義にDB2やOracle、SQL Serverなどをデータベースと呼ぶ場合はリレーショナル・データベース管理システムを指しますが、正確にはデータベースとは、具体的なデータが格納されている入れ物を指しています。

 データベース管理システムは、データベース内のデータがスムーズに参照・更新出来るようにしたり、データの可用性やセキュリティーを提供したりしているのです。(図1)

 その名の通りデータを管理するシステムということです。

DB2の環境

 前回、DB2をインストールした後に、いくつかのコマンドを実行して、サンプル・データベースへ接続しましたが、その手順を再確認しながらDB2の環境を見ていきましょう。

 DB2をインストールした後は(図2)のような状態なのです。

図2: DB2インストール後のイメージ
図2: DB2インストール後のイメージ

インスタンス

 DB2をインストールした後、db2icrt を使ってDB2「インスタンス」を作成しました(図3)。このインスタンスがデータベース管理システムの役割を担います。

 インスタンスとはDB2の論理的なデータベース管理の単位で、独立した環境を持つことができます。そしてこの中にデータベースの作成やアプリケーションを実行します。

図3 :インスタンス db2inst1 作成後のイメージ
図3 :インスタンス db2inst1 作成後のイメージ

 DB2はさらにインスタンスを複数持つことができます(図4)。先ほど述べたようにインスタンスの単位で独立しているため、一方のインスタンスの操作が他方へ影響することはありません。そのため、インスタンスが利用するホーム・ディレクトリーやポートをインスタンス単位で定義する必要があります。

図4:2つのインスタンス( db2inst1 およびdb2inst2)作成後のイメージ
図4:2つのインスタンス( db2inst1 およびdb2inst2)作成後のイメージ

 そしてDB2は、このインスタンス単位でデータベース・システムを起動・停止させることができます。

インスタンスはDB2データベース・システムの起動停止の単位
DB2を起動するときは db2start 、停止する時は db2stop、コマンドを使います。

データベース

 さて、手順に戻ります。DB2をインストールした後、db2icrt を使ってDBインスタンスを作成し、その次に「データベース」を作成しました。(図5)

 このデータベースには、データを格納するためのオブジェクトやログファイル、バッファー・プール(メモリー領域)などが含まれています。また、バックアップ・リカバリーなどの基本的な単位となっています。

図5:インスタンス内にデータベースを作成したイメージ
図5:インスタンス内にデータベースを作成したイメージ

 DB2はインスタンス同様、データベースも複数作成することが出来ます。(図6)

図6:1つのインスタンス内に2つのデータベース(SAMPLEおよびTEST)を作成したイメージ
図6:1つのインスタンス内に2つのデータベース(SAMPLEおよびTEST)を作成したイメージ

 そして、データベース・サーバーのOS、インスタンス、データベースそれぞれに対し、様々な設定をする事ができます。(図7)

図7:DB2の構成情報
図7:DB2の構成情報

 「環境変数」は、オペレーティング・システム・レベルで設定される変数です。

db2set コマンドを利用します
$ db2set
DB2COMM=TCPIP
DB2AUTOSTART=YES

 「データベース・マネージャー構成ファイル」(dbm cfgと記述される事が多い)は、インスタンスの作成時に作成され、定義されたパラメーターは、インスタンスとインスタンスに含まれるすべてのデータベースに影響します。パラメーターの多くは、 データベース・マネージャーの単一のインスタンスに割り振られるシステム・リソースの量を制御したり、 通信サブシステムを構成します。

db2 get dbm cfg コマンドでパラメーター一覧を取得できます。
$ db2 get dbm cfg

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

     ノード・タイプ                                      = ローカルとリモート・クライアントを持つデータベ

 データベース・マネージャー構成リリース・レベル          = 0x0f00

 CPU 速度 (ミリ秒/命令)                       (CPUSPEED) = 8.659644e-07

 並行アクティブ・データベースの最大数            (NUMDB) = 32
 フェデレーテッド・データベース・システム・サポート (FEDERATED) = NO
 トランザクション・プロセッサー・モニター名 (TP_MON_NAME) = 

 デフォルトのチャージ・バック・アカウント (DFT_ACCOUNT_STR) = 

 Java 開発キット・インストール・パス          (JDK_PATH) = /home/db2inst1/sqllib/java/jdk32

 診断エラーのキャプチャー・レベル            (DIAGLEVEL) = 3
 通知レベル                                (NOTIFYLEVEL) = 3
 診断データのディレクトリー・パス             (DIAGPATH) = /home/db2inst1/sqllib/db2dump/
 現行メンバーの解決済の DIAGPATH                         = /home/db2inst1/sqllib/db2dump/

……………

 エージェント・プール・サイズ           (NUM_POOLAGENTS)  = AUTOMATIC(100)
 プールにあるエージェントの初期化数      (NUM_INITAGENTS) = 0
 コーディネーター・エージェントの最大数 (MAX_COORDAGENTS) = AUTOMATIC(200)
 クライアント接続の最大数              (MAX_CONNECTIONS)  = AUTOMATIC(MAX_COORDAGENTS)

……………

 「データベース構成ファイル」(db cfgと記述される事が多い) は、データベースの作成時に作成され、データベースごとに1つの構成ファイルがあります。 このデータベース構成ファイルで、データベースに割り当てるリソースの量を指定します。

対象のデータベースに接続してから、db2 get db cfg コマンドでパラメーター一覧を取得できます。
$ db2 connect to sample

   データベース接続情報

 データベース・サーバー = DB2/LINUX 10.1.0
 SQL 許可 ID            = DB2INST1
 ローカル・データベース別名 = SAMPLE

$ db2 get db cfg

       データベースのデータベース構成   

 データベース構成リリース・レベル                        = 0x0f00
 データベース・リリース・レベル                          = 0x0f00

 データベース・テリトリー                                = JP
 データベース・コード・ページ                            = 1208
 データベース・コード・セット                            = UTF-8

 設定するパラメーターが多いのでは?と思われる方もいらっしゃるかもしれませんが、現在ではパラメーターの多くはAUTOMATIC、自動で設定されようになっています。

※この続きは、会員の方のみお読みいただけます(登録無料)。


※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • 野間愛一郎(ノマアイイチロウ)

    日本アイ・ビー・エム(株) インフォメーション・マネジメント事業 アーキテクト 製造や金融のお客様を中心に、DB2 データベースやXMLデータを活用したシステム構築の技術支援を行っている。 また、コミュニティ活動にも力を入れ、2006年からDB2のコミュニティ「ClubDB2」を主宰し、データベース技術者の輪を広げている。 ClubDB2

バックナンバー

連載:サバ?DB2
All contents copyright © 2007-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5