Activate DB

DB2のデータベースに接続(CONNECT)する際、時間が少しかかる時と、すぐつながる時がある感じがする時がないでしょうか?

DBに接続するには、必要なメモリを確保したりログの整合性をチェックしたりする作業が必要です。これをDB2ではデータベースのActivate(活動化)と呼んでいます。

DB2はインスタンスを起動した際(db2startの際)には活動化は行いません。DBに最初のユーザが接続した際に活動化が行われます。つまり、最初のユーザのみ接続に時間がかかるという事です。またユーザが誰も接続していない状態になると非活動化(DEACTIVATE)が行われます。

この最初の接続に時間がかかる現象を回避するために、ACTIVATE DATABASE (DB)というコマンドが用意されています。使い方はデータベース名を指定するだけです。

ACTIVATE DB sample

このコマンドを実行すると活動化が行われますので、その後の接続が速くなります。ACTIVATE DATABASEを解除するには、DEACTIVATE DATABASEコマンドを実行します。

ACTIVATEコマンドを実行すると、ユーザが接続していなくてもメモリを開放しなくなりますが、これによってバッファープールにたまったキャッシュをクリアしなくなるので、動作速度の向上が起こる場合もあります。

Stinger - ja_JP.UTF-8の環境でCREATE DATABASE

最近のLinuxでは、日本語環境のデフォルトロケール(Locale)が"ja_JP.UTF-8"とUnicodeになっています。Fedora Core やSUSE 9.1などがそうです。

この環境でコードページを明示的に指定せずにCREATE DATABASEを行った場合DB2 Stinger Open Beta (Linux)では、データベースのコードページが何になるのかを試してみました。

$ db2 create db test1
$ db2 get db config for test1


Database Configuration for Database test1
(略)
Database territory = JP
Database code page = 1208
Database code set = UTF-8
Database country/region code = 81
Database collating sequence = BINARY

と、ちゃんとUTF-8で作成されるようです(たしか以前はja_で始まるロケールでは全部EUC-JPになっていたと思います)。また、collate(文字のソート順)はBINARYになるようですね。

LinuxにDB2 Stinger Open Betaをインストールする

DB2 Stinger Open BetaのLinux版をKernel 2.6.x採用の新しめのLinuxディストリビューションにインストールしようとすると、少しコツが必要だったので書いておきます。

試したのは、Fedora Core 2と、SUSE Professional 9.1で、どちらもkernel 2.6を採用しています。これらのディストリビューションでdb2setupを起動しようとするとSegmentatil Faiultで停止する場合があるようです。

原因は、DB2 Stinger Open Betaに付属するIBM JDK 1.4.1が、kernel 2.6だとうまく動かない事のようで、それを回避してやる必要があります。

簡単な回避方法は、環境変数のLD_ASSUME_KERNELの値を2.4.19か2.2.5に変えてみる事です。付属のドキュメントにはRHEL3では2.4.19を試すように書かれていましたが、SUSE 9.1の場合は、2.2.5でないとうまく起動しませんでした。

例) # LD_ASSUME_KERNEL=2.2.5 ./db2setup

これでとりあえずインストールできます。インストール中にインスタンスも作ってしまうのが良いでしょう。インストールのメニューで"Custom"を選択して、開発環境も入れる事をお勧めします。

インストールが完了したら、DB2が使用するJDKをIBM JDK 1.4.1から他のJDKに変える必要があります。

(2004/6/4 追記:SUNのJDKを入れる必要はなく、IBM JDKを最新に更新する事で対応できるようです。ここを参照。)

SUNのJDK 1.4.2ならKernel 2.6上でも動作するようなのでこれをインストールします。SUSE 9.1の場合は、SUNのJRE 1.4.2が最初から入っているのでこれを使うと良いでしょう。

使用するJDKの設定は、DBM CONFIGのJDK_PATHを変更します。
例) db2inst1でログインして、
$ db2 update dbm cfg using JDK_PATH /usr/lib/java

これでGUIツールなども動作するようになるはずです。

(KDEやGNOMEのメニューにもちゃんとDB2が登録されています)


P.S DB2/Linux版はまだ、日本語メッセージが入っていないようで表示はすべて英語です。

DB2で自動的に数値が更新される列を作成するには

列の値を自動的に作成して欲しい場合というのは良くあります。つまり、

INSERT INTO a(value) VALUES('AAA');
INSERT INTO a(value) VALUES('BBB');


とするだけで、

SELECT * FROM a;

ID VALUE
===============
 1 AAA
 2 BBB


となるような表です。DB2にはIDENTITY列(ID列)という機能があり、簡単に実現できます。例えば上の表aを実現するには、以下のように表を作成します。

CREATE TABLE a(
 id INT NOT NULL GENERATED ALWAYS AS IDENTITY
 (START WITH 1 INCREMENT BY 1 NO CACHE),
 value VARCHAR(100)
);


ID列については、以下の記事に詳しいです。
-> 「DB2 Universal Databaseでの数値シーケンス自動生成」

RDBMS市場、2003年は5%成長

表題の記事がITmediaに載っています。

ITmediaニュース:RDBMS市場、2003年は5%成長
RDBMS市場、2003年は5%成長RDBMS市場におけるIBMのシェアは35.7%。ミッドレンジサーバとメインフレーム上でのDB2が好調だったという。

IBM,Oracle,Microsoftのシェア争いはまだまだアツイというところでしょうか。どこがシェアを伸ばすとかはともかく、各社の競争が続いてこれからもどんどん面白い機能がDBMSに追加されれば良いなーと思うのです。

dBforums

dBforumsというホームページがあります。

DBMSそのものに関する議論やQ&Aの他、DBに関連する開発言語(Java,PHP,ASP etc.)のフォーラムなどもある、データベース関連の総合掲示板といったところです。DB2のフォーラムも用意されています。使用言語は英語ですが、投稿もかなり活発ですし、検索機能もありますので、一度覗いてみる事をお勧めします。なにかエラーが出て困った時などエラーメッセージで検索するだけで回答が見付かる時もあります。

Stingerがやってくる

以前ここで紹介した、DB2 Stingerの新機能を解説した記事が、日本語訳されてDB2 Developer Domainに上がっています。

「Stingerがやってくる」

原題は`That Bee in My Bonnet is IBM DB2 UDB Stinger'という題だったんですが、日本語訳のタイトルはシンプルになっていますね。

DB2の資格制度

DB2にも資格制度があります。最近は本屋でもDB2の資格の本を見かけるようになりました。細かい話はおいておくと、全体としては以下のような制度になっています。

[DB2アドバンスドエキスパート]

[DB2エキスパート]

[DB2エンジニア]

[DB2アドバイザー]

他の資格制度と一緒で、下位の資格から順に取得する必要がありますが、アドバイザーだけはパスしてエンジニアから取得する事ができます。

詳細はこちらに。

DB2をサポート切れのLinuxで使用する

ここここの投稿で書きましたが、DB2/Linuxを動作させるサーバでLinuxを選択した場合、ディストリビューションの選択は悩ましいものがあります。

DB2だけ動かせば良いのであればまだ楽なのですが、他のソフトも動作させる必要があるとなると、DB2のためだけにディストリビューションを乗り換えるという訳にもいかないですよね。Redhat 8などは、まだ現役で稼働している場所も多いのではないでしょうか。

しかしご存知のようにRedhat 8はすでにサポートが切れています。サポートが切れるとセキュリティーフィックスのパッチが提供されなくなるため、サーバとして使用するには難しい物があります。もちろん自分で全てパッチを作成すれば不可能ではありませんが、手間を考えると現実的では無いように思います。

で、その要望を満たすために、Redhatがサポートを止めたディストリビューションに対してセキュリティーパッチを提供する業者が現れています。

- テンアートニ
- クララオンライン(バックエンドはProgenyのようです)

このような動きはいかにもオープンソースという感じで面白いですね。またお値段もクララオンラインの方であれば一台あたり1000円/月程度と非常にリーズナブルです。DB2 V8はRedhat8に対応していますので、上記サービスで運用するというのも一手ですね。

DB2 V8 Fixpakの新機能(7) - 照会サンプリング機能

DB2 V8 Fixpak 2から「照会サンプリング」という機能が追加されています。
これは、検索(SELECT)実行の際、対象の行全部をよみこまず、一部だけ読み込み(サンプリング)、概算で結果を出すという物です。

要するに、データを全部読まずに一部だけ読む事で処理速度をあげる機能です。データの何パーセント位読むかを指定できます。
使い方は簡単で、SELECT文の後ろにTABLESAMPLEと書くだけです。

例 - employee表のsalaryの合計値を5%のサンプリングで実行する
SELECT AVG(salary) FROM employee TABLESAMPLE BERNOULLI(5)

もちろん結果が不正確になる可能性がありますから、用途は限定されますが、超大規模データへの検索で平均値や合計値の大まかな値が分かれば良い場合(OLAP系の処理など)では使える機能ですね。

上ではBERNOULLIしか紹介していませんが、他にもオプションが存在します。詳しくは、ISE技術図書室SQL機能強化(I)をどうぞ。

著書
「AWSではじめるデータレイク」
データレイクの本を書きました(共著)
DB2cover_small.jpg
DB2の管理方法を解説した本を書きました。
ad
無料のDb2 Community Edition
リンク集
about this site
recommend
プログラマのためのSQL 第4版
プログラマのためのSQL 第4版 (JUGEMレビュー »)
ジョー・セルコ
名著が第4版として、内容拡充されて発売されました。SQLの考え方を基礎からしっかり学習したい方にお勧めです。
recommend
recommend
WebSphere Application Server 構築・運用バイブル 【WAS8.5/8.0/7.0対応】
WebSphere Application Server 構築・運用バイブル 【WAS8.5/8.0/7.0対応】 (JUGEMレビュー »)
串宮 平恭,達見 圭介,田中 孝清,原口 知子,福崎 哲郎,盛林 哲
WebSphere Application Serverの運用管理本が出ました!WAS v7〜v8.5まで幅広いバージョンに対応しています。
recommend
recommend
Effective Java 第2版 (The Java Series)
Effective Java 第2版 (The Java Series) (JUGEMレビュー »)
Joshua Bloch
すべてのJava開発者必読の書が大幅改訂されて第2版になりました!。
文法などは解説していませんが、Java言語でプログラムを書くにはどういう事に気をつけるべきかという事が非常に端的に、かつ明確な理由とともに解説されています。
第2版ではJava SE 6対応がなされ、第1版で提案してJava SEに取り込まれた部分は整理され、新しい機能であるGenericsやアノテーションについての記述が多数追加されています。以前に増してお勧めできる書になりました。
まだ読んだことが無いJava開発者はぜひ読んでみてください。
recommend
 (JUGEMレビュー »)

基礎的なSQLは書けるようになったけど、今ひとつSQLのルールになんとなくしっくりこない、腑に落ちない。そんな人にお勧めの入門書です。SQLの根底に流れる基本的な考え方をやさしく解説してくれています。(レビューはこちら)
recommend
SQLパズル 第2版 プログラミングが変わる書き方/考え方
SQLパズル 第2版 プログラミングが変わる書き方/考え方 (JUGEMレビュー »)
ジョー・セルコ,Joe Celko
SQL入門を終えて、SQL中級/上級者になりたいと考えている方にぴったりのトレーニング本です(レビューはこちら)
recommend
XML-DB開発 実技コース
XML-DB開発 実技コース (JUGEMレビュー »)
下佐粉 昭,野間 愛一郎,久保 俊彦,高橋 賢司
XML-DBのやさしい入門書です。XMLの基礎から、XPath,XQueryの解説、設計の基礎、Javaでのプログラミング等盛りだくさんの内容です。
recommend
データベースパフォーマンスアップの教科書 基本原理編
データベースパフォーマンスアップの教科書 基本原理編 (JUGEMレビュー »)
エンコアコンサルティング
DBMSの基本的な内部構成、動作についての考え方をやさしく解説してくれています。(レビューはこちら)
recommend
メインフレーム実践ハンドブック z/OS(MVS),MSP,VOS3のしくみと使い方
メインフレーム実践ハンドブック z/OS(MVS),MSP,VOS3のしくみと使い方 (JUGEMレビュー »)
神居 俊哉
メインフレームの技術について、基礎概念から、実践的な使い方までを網羅した初めての解説書です。
recommend
 (JUGEMレビュー »)

CSSの概念/基礎をしっかりと解説してくれるCSS入門書。サイトへの実践的な適用方法も解説されています(レビューはこちら)
recent entries
categories
recent comments
  • Db2 11.5 Base Edition の標準サポート提供は2025年9月30日まで (Standard EditionやAdvanced Editionとは別です)
    sim (02/09)
  • Db2 11.5 Base Edition の標準サポート提供は2025年9月30日まで (Standard EditionやAdvanced Editionとは別です)
    oda (02/07)
  • ORDER BYでNULLを最小に持ってくるには
    通りすがり (03/15)
  • Db2をAWS上に構築する際のヒント&TIPS (2021年2月版)
    Jiyong, Jung (12/09)
  • DB2小ネタ - ALLOW REVERSE SCANS
    meijik (06/24)
  • DB2の正式名称が"Db2"に変更。dashDB for TransactionもDb2 on Cloudに名称変更
    Taco (06/24)
  • DB2でインスタンスを追加で作成するには
    SIM (03/18)
  • DB2でインスタンスを追加で作成するには
    晩衛 (03/17)
  • SQLの学習サイト
    SIM (03/26)
  • SQLの学習サイト
    DB (03/25)
recent trackbacks
archives