IBM Support

[Db2] 接続できないデータベースのデータを db2dart コマンドで取り出す方法

How To


Summary

ロールフォワードやクラッシュ・リカバリーに必要なログがない場合や、ディスクの一部破損やクラッシュ・リカバリーの失敗でデータベースに接続できない場合、db2dart コマンドを使用してデータベースのデータを取り出せます。
ただし、ログを適用していない場合やクラッシュ・リカバリーが完了していない場合、データの論理的な整合性は保証されません。また、ディスクの一部破損の場合は、すべてのデータが取り出せる保証がない点に注意が必要です。

Steps

db2dart を利用してデータベースのデータを取り出す方法
  1. インスタンス・オーナー (Linux/UNIX) または Administrators 権限のユーザー (Windows) で Db2 サーバーにログインします。Windows の場合はさらに「DB2 コマンド ウィンドウ - 管理者」を開きます。
  2. データを取り出したいデータベースを指定して、db2dart コマンドの /ddel オプションを実行します。ここでは例として SAMPLE データベースを指定しています。
    $ db2dart sample /ddel
  3. 表 ID、表スペース ID、開始ページ、ページ数の指定を求められるのでカンマ区切りで入力します。ここでは例として ORG 表の表 ID (14)、表スペース ID (2) を指定し、全ページを意味する開始ページ 0 ページ数 0 を指定しています。
       Table object data formatting start.
       Please enter
    Table ID or name, tablespace ID, first page or logical row, num of pages or logical rows:
    (may suffix page number with 'p' for pool relative if working with a pool-relative tablespace)
    14,2,0,0
    
       5 of 5 columns in the table will be dumped.
       Column numbers and datatypes of the columns dumped:
             0  SMALLINT
             1  VARCHAR() -VARIABLE LENGTH CHARACTER STRING
             2  SMALLINT
             3  VARCHAR() -VARIABLE LENGTH CHARACTER STRING
             4  VARCHAR() -VARIABLE LENGTH CHARACTER STRING
    
  4. 出力先のファイル名がデフォルトでよい場合は n、指定したい場合は y を入力してファイル名を入力します。
    do you wish to change filename used? y/n
    n
    
       Filename used for output data file is SAMPLE_TS2T14.DEL. If the file exists, the data will be appended to it.
    
       Formatted data being dumped ...
       Dumping Page 0 ....
       Table object data formatting end.
    
             The requested DB2DART processing has completed successfully!
                      Complete DB2DART report found in: SAMPLE.RPT
  5. 出力されたファイルの内容を確認します。
    $ head SAMPLE_TS2T14.DEL
    10,"Head Office",160,"Corporate","New York"
    15,"New England",50,"Eastern","Boston"
    20,"Mid Atlantic",10,"Eastern","Washington"
    38,"South Atlantic",30,"Eastern","Atlanta"
    42,"Great Lakes",100,"Midwest","Chicago"
    51,"Plains",140,"Midwest","Dallas"
    66,"Pacific",270,"Western","San Francisco"
    84,"Mountain",290,"Western","Denver"
出力されたファイルを使用して表を復元する方法
ここでは復元されたデータを入力するデータベースが作成済みと仮定します。
表定義はあらかじめ db2look で取り出したもの、データベースの設計書に記載されたもの、古いデータベースのバックアップ (データは古いが定義は古くないもの) をリストアして db2look で取り出したものなどが使用可能です。ここでは、例として db2look で取り出し済みの表定義 (db2look_org.out)を使用します。
  1. 復元先データベースにデータベース管理者として接続します。
    db2 connect to <復元先データベース>
  2. 表定義を復元します。
    db2 -tvf db2look_org.out
  3. 表データを復元します。
    db2 "load from SAMPLE_TS2T14.DEL of del replace into org"
運用上の考慮点
  • db2dart の /ddel オプションは LOB や XML 列のデータを取り出せません。
    /ddel オプションがサポートしている列タイプは db2dart コマンドのマニュアルを参照してください。
  • データベースに含まれる表名と表スペース ID、表 ID は以下の照会で一覧できます。
    db2 "select TABSCHEMA,TABNAME,DATAPARTITIONID,TBSPACEID,PARTITIONOBJECTID from syscat.datapartitions"
関連情報
db2dart - データベース分析およびレポート・ツール・コマンド
[Db2] パスポート・アドバンテージによく寄せられる質問

お問合せ先
技術的な内容に関して、パスポート・アドバンテージの契約のもと Db2 テクニカル・サポートへお問い合わせください。
Db2 テクニカル・サポート

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PleAAE","label":"DB2 Tools-\u003Edb2dart and inspect"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
19 October 2023

UID

ibm17051169