カテゴリー: DBについて
投稿者: shinichi
Club DB2ナイト・サークルに参加してきました。講師は生粋の(?)千葉っ子、高橋さん。

【管理ツール編】という募集だったのですが、実は【運用管理編】でした。

あまり詳しく知らないのに運用管理なんて・・・と思いましたが、勉強したことはたったの三つ。

・バックアップ(backup)
・表の再編成(reorg)
・統計情報の更新(runstats)

DB2の資格研修で勉強したことがあるのでおおよその動きを知っている言葉達だったので良かったです。

初っぱなに「ずきっ」と来た言葉。

『DB管理者の仕事で一番大切なのはバックアップです。で、RAIDはバックアップではありません。』

よ~く知っております。知っていますけどたぶんうちの現場では、外部ディスク装置を使い始めてからバックアップをとっていないのではないかなと思われます(災対機にデータを移行するためにダンプをとっていますが、それはバックアップに入るかしら?)。

バックアップの名称が少し気になりました。

通常、フルバックアップ(full backup)の後に差分バックアップ(incremental backup)と増分バックアップ(differential backup)を単独もしくは組み合わせで使うと思いますが、DB2ではここで言う差分バックアップを「デルタバックアップ(incremental delta)」と呼び、増分バックアップを「累積バックアップ(incremental)」と呼ぶんだそうです。

表の再編成はすぐにコマンドが出てくるくらい気になる作業です。たま~にこの言葉が聞こえてくるとうきうきしてきます。実作業を見たことはないんですが。

表の再編成には二種類あって、一つは、テーブルを一時領域にコピーし、再編成をしながら元の領域に戻していく「シャドー・コピー」。もう一つは、PCのデフラグのように空きスペースを少しずつ動かしながら行う「インプレース」。

統計情報の更新についてはかなり駆け足でしたが、DB2 9.1から自動runstatsはデフォルトONだそうです。

大規模DBなどにおいてアクセス・プランが変わってしまうのがいやであれば忘れずに自動化機能をOFFにするようにと注意がありました。"db2look -m"で統計情報のDDLをバックアップできるのでrunstatsする場合にはとっておくのも手だと言うことです。

大規模DBを触ったことがないのでイメージがつきませんが、アクセス・プランが変わることでどれくらいSQLのパフォーマンスが変わるのか体感してみたいです(そもそもここで言う大規模ってどのくらいのDBなのだろう?)。

この連休中にバックアップ・リストアくらいは試してみようかな。
カテゴリー: DBについて
投稿者: shinichi
先週の土曜日にIBMのDB2チームが開催しているClub DB2の『【土曜開催】 さわってみよう DB2 9.7』に参加してきました。

なぜかDB2の上位資格を持っている私ですが、実際にはほとんどDB2に触れたことがありません。試験対策本やDB2新機能の本を読んで楽しんでいるので多少は知っているつもり。

データベースってなんだか不思議な気がしてとても興味を持っているのですが、せいぜいSQLを書くくらいです(前の現場では4000行を超えるSQLを書いたことがあります)。

今回のハンズオンは題名からわかるとおり、どちらかというと初心者向けの会でした。会の流れとしては、まず「DBやSQLってどんな感じのものなの?」というお話を聞いて、後は用意されたテキストに沿ってSQLのお勉強+DB2と仲良くなる時間となっていました。終了時間までは何をしてもOK!

SQLはだいたい知っているのでテキストはすぐに終わりました。ですので、普段触ることのないDB2でいろいろ遊んでいました。

・fromテーブルの作成
 DB2ではSQLの単語をテーブル名やカラム名に設定できると言うことを聞いていたので試してみました。
CREATE TABLE FROM(
SELECT SMALLINT,
FROM SMALLINT,
WHERE SMALLINT,
GROUP_BY SMALLINT,
ORDER_BY SMALLINT
);

 そして、適当なデータを挿入し、SELECT。

SELECT FROM FROM FROM
とか
SELECT SELECT FROM FROM WHERE WHERE ORDER BY ORDER_BY
という実務で発見したらぶちぎれそうなSQLを実行して楽しみました。

・新ロック機能"CS with CC"の体験
 何という言葉の短縮形だかは忘れてしまいましたが(CCは"Currently Committed")、Oracleに近い動きができるように追加されたらしいです。

 DB2の元々の動きとしては、テーブルAのデータをUPDATEして未コミット状態でいる場合、ほかのユーザーがテーブルAをSELECTしてもロックがかかっている状態なのでデータの取得ができません。

 今回新しく追加されたこの機能を有効にした後に上記と同じSQLを実行すると、変更前のデータを読み込んできてくれます。

 これが良いか悪いかは現場によりますね。

・CLP Plus
 なんだかOracleに迎合しているような気がしますが、SQL *Plusにかなり近い感じでオペレーションすることができます。
 dual表を使用することもできますし、表示レイアウトをOracleのコマンドで設定することもできます("set pages"や"set lin"など)。


 お勉強が終わったらIBMの人と、Club DB2に参加した人たちとの懇親会に行きました。

 土曜日に勉強・・・という感じですが、達成感のある午後でした。