本文へジャンプ

DB2 Developer Domain > 製品別技術情報 > DB2秘剣シリーズ >

DB2秘剣シリーズ

 
レベル: 中級者者向け
2006年4月28日(金)
肆の刀 オートノミックの巻

桜の花は咲いたと思うと、あっというまにぱっと散るでござるな。多くの人に惜しまれながら、まこと潔ぎよい花でござる。人もかくありなんと思うのでござるが、ここで一句、「里山の川辺に咲きしDB2、一輪こぼれて大河に至る」。
皆様方、その日を夢見てつらい修行に励むでござる。 


執筆者
春野さくら
春野さくら

さて、今回はRecoveryとMonitorの話でござる。

DB2 V8.2.2ではオートノミック・ストレージ機能に従って、RESTOREコマンドも機能拡張されました。例えば、以下のようなコマンドでデータベースを作成して、Backupをとりその後データベースを削除したとします。

 
CREATE DATABASE TESTDB ON /fs1, /fs2, /fs3 DBPATH  ON /fs4

ケース1

 
RESTORE DATABASE TESTDB

この場合、database pathもstorage pathも指定されていないので、DB2はdatabase pathはインスタンス構成パラメーターの値とバックアップ・イメージの中のstorage pathを使って、DB2はRESTOREを実行します。

  • Databath path : dftdbpath (構成パラメーター)
  • Storage path: /fs1, /fs2, /fs3


ケース2

 
RESTORE DATABASE TESTDB TO /newfs1

この場合、database pathは指定されていますが、storage pathは指定されていないので、ケース1ど同じようにバックアップ・イメージの中のstorage pathを使います。

  • Database path: /newfs1
  • Storage path: /fs1, /fs2, /fs3


ケース3

 
RESTORE DATABASE TESTDB ON /newfs1, /newfs2

この場合、database pathとして、ON リストの最初のパスを使います。

  • Database path: /newfs1
  • Storage path: /newfs1, /newfs2


ケース4

 
RESTORE DATABASE TESTDB ON /newfs1, /newfs2 DBPATH ON /newfs3

この場合、コマンドの指定どおりにRESTOREを実行します。

  • Database path: /newfs3
  • Storage path:/newfs1, /newfs2

ケース1〜4のいずれの場合も、もしデータベースが削除されていない場合は、RESTORE コマンドで何を指定しても、既存のdatabase pathが使われます。

この使い方さえ覚えれば、RESTOREコマンドがずいぶん楽になったでござるな?

DB2には、データベース名、database path, 表スペースコンテナーのロケーションを変更できる便利なコマンドがあります。

 
CREATE DATABASE TESTDB ON /DIR1, /DIR2, /DIR3

このstorage pathをDIRからNEWDIRに変更したい場合次のコマンドを実行します。

 
db2relocatedb -f config.txt

ここで、config.txtは以下のように指定します。

 
DB_NAME=TESTDB
INSTANCE=db2inst
DB_PATH=/DIR1, /NEWDIR1
STORAGE_PATH=/DIR1, /NEWDIR1
STORAGE_PATH=/DIR2, /NEWDIR2
STORAGE_PATH=/DIR3, /NEWDIR3

データベースがオートマティック・ストレージがenableになっていない場合、データベース・スナップショットでは以下のように表示されます。

 
Number of automatic storage paths = o

オートマティック・ストレージがenableになっている場合は例えば次のように表示されます。

 
Number of automatic storage paths = 2
Automatic storage path            =/fs1
Automatic storage path            =/fs2

スナップショットUDFを使うこともできます。

 
select num_db_storage_paths from table(snap_get_db
('DBNAME', -1)as dbinfo select db_storage_path from table (snap_get_sto_paths
('DBNAME' -1)) as stgpaths

他にも新しいUDFが多く提供されています。

 
select  tbsp_name,
tbsp_id,
        tbsp_using_auto_storage,
        tbsp_auto_resize_enabled
        from table(snap_get_tbsp('TESTDB', -1) as tbsinfo

この例では表スペースの名前、タイプ、オートノミックがenableになっているかどうかの情報を返します。

 
select  tbsp_name,
        tbsp_id,
        dbpartitionnum,
        tbsp_initial_size,
        tbsp_current_size,
        tbsp_max_size,
        tbsp_increase_size,
        tbsp_increase_size_percent,
        tbsp_last_resize_time,
        tbsp_last_resize_failed
        from table(snap_get_tbsp_part('TESTDB', -1) 
as tbspartinfo

ここでは表スペースの現在のサイズ、使用サイズ、状態などの情報を返します。

オートマティック・ストレージに関してヘルス・インディケーターにも新しい項目が追加されています。

  • データベース・オートノミック・ストレージ使用率:
     
    db.db_auto_storage_util=db.auto_storage_used/
    db2.auto_storage_total)*100

    これはdatabase storage pathのフリースペースをトラッキングします。

  • 表スペース・オートマティック・リサイズ状況:
     
    ts.ts_auto_resize_status= Normal/Resize failed

    これは表スペースの自動リサイズが成功したかどうかをトラッキングします。

  • オートマティック・リサイズ表スペース使用率:
     
    ts.ts_util_auto_resize

    これは表スペースにmaximum sizeが定義されている場合、auto-resize表スペースの使用率をトラッキングします。

最後に、既存のnon-automatic storage databaseはautomatic storageには変更できませんし、また逆もできません。なぜなら、オートマティック・ストレージ・データベースは多数の重要なメタデータを持っているからです。auto-resizeに既存のDMS表スペースを変更することは可能です。ただし、Auto-resize 表スペースもメタデータを持っているので、そのままでは、DB2 V8.2.2ではそのままでは使えません。その場合、最初にその表スペースのauto-resizeをdisableにすることにより使用できるようになります。

さて、今回でオートマティック・ストレージは終了じゃ。難しかったかな? 
それではさらばじゃ。


上に戻る




上に戻る
 
レベルマークについて

このページで紹介されている情報はレベル別にカテゴライズされています。

上級者向け
中級者向け
初級者向け
入門者向け

製品紹介
DB2 UDB V8