db2look - Db2 統計および DDL 抽出ツール ・コマンド

データ定義言語 (DDL) ステートメントを抽出して、実動データベースのデータベース・オブジェクトをテスト・データベースに複製します。

db2look コマンドは、オブジェクト・タイプごとに DDL ステートメントを生成します。
注:
  • db2look コマンドは、SYSTOOLS スキーマのすべてのオブジェクト (ユーザー定義関数と ストアード・プロシージャーを除く) を無視します。
  • データベース特権を抽出するための db2look コマンドでは、 付与者が SYSIBM であるデータベース特権を抽出しません。 これらの特権は、デフォルトで Db2 によって付与されます。

多くの場合、実動システムのデータのサブセットを含むテストシステムがあると有利です。 このようなテストシステムに選択されるアクセスプランは、実稼働システムに選択されるアクセスプランと必ずしも同じものではありません。 ただし、db2lookツールを使用すると、実動システムに使われるアクセス・プランに類似したアクセス・プランを持つテスト・システムを作成できます。 このツールでUPDATEステートメントを生成し、テストデータベースの本番データベースのオブジェクトのカタログ統計を複製できます。 このツールを使用して、 UPDATE DATABASE CONFIGURATIONUPDATE DATABASE MANAGER CONFIGURATION、および db2set コマンドを生成することもできます。 コマンドでテストデータベースのクエリオプティマイザ関連の構成パラメータとレジストリ変数値が本番データベースの値とマッチするように確保してください。

db2look コマンドによって生成された DDL ステートメントを確認してください。これらのステートメントは、元の SQL オブジェクトのすべての特性を再現しない可能性があるためです。 パーティション・データベース環境の表スペースでは、アクティブでないデータベース・パーティションが存在する場合、DDL が完全でない可能性があります。 ACTIVATE DATABASE コマンドですべてのデータベース・パーティションがアクティブであることを確保します。

許可

システム・カタログ表に対する SELECT 特権。

場合によっては (表スペース・コンテナー DDL の生成など)、以下のいずれかの権限が必要です。
  • SYSADM
  • SYSCTRL
  • SYSMAINT
  • SYSMON
  • DBADM
  • ADMIN_GET_STORAGE_PATHS 表関数に対する EXECUTE 特権
注: ほとんどの場合、 db2look ツールを使用して表スペース情報を取得するには、DBADM 権限のみが必要です。 ただし、表スペース情報を取得するコマンドを呼び出すと、基礎となる呼び出しが db2GetSnapshot API に対して行われる場合があります。 この呼び出しには、 db2GetSnapshot API の追加権限が必要な場合があります。

必要な接続

なし

コマンド構文

Read syntax diagramSkip visual syntax diagramdb2look-dDBname-createdb-printdbcfg-e-ucreator-zschema-tTname-twTname-ct-dp-vVname-h-ap-oFname-a-m-c-r-l1-x-xdep2-xd-xddep-f-tddelimiter-noview-iuserid-wpassword-wlm-wrap-wrapperWname-serverSname-tntenantname-nofed-fedonly-mod-xs-xdirdirname-cor-noimplschema
Notes:
  • 1 You cannot specify both the -x parameter and -xdep parameter
  • 2 You cannot specify both the -xd parameter and -xddep parameter

コマンド・パラメーター

-d DBname
照会する実動データベースの別名。 DBname は、 Db2 または Db2 for z/OS® データベースの名前にすることができます。 DBnameDb2 for z/OS データベースの場合、 db2look コマンドは以下のステートメントを生成します。
  • 表、索引、ビュー、およびユーザー定義特殊タイプ用の DDL ステートメント
  • 表、列、列分散および索引用の UPDATE 統計ステートメント
これらの DDL および UPDATE 統計ステートメントは、 Db2 データベースに適用され、 Db2 for z/OS データベースには適用されません。 これらのステートメントは、 Db2 for z/OS オブジェクトを抽出して Db2 データベースに再作成する場合に役立ちます。
-createdb
ソース・データベースの作成に使用した CREATE DATABASE コマンドを生成します。
生成される CREATE DATABASE コマンドには、CREATE DATABASE 構文にある通常のパラメーターとオプションが含まれます。ただし、以下のパラメーターは除きます。
  • ALIAS
  • NUMSEGS
  • RESTRICTIVE
  • WITH
  • AUTOCONFIGURE
-printdbcfg
データベース構成パラメーターの UPDATE DB CFG コマンドを生成します。 printdbcfg コマンドは、GET DB CFG コマンドから返される結果と同じ順序でUPDATE DB CFGコマンドを生成します。

AUTOMATIC 値をサポートするパラメーターの場合、生成される UPDATE DB CFG コマンドの末尾に AUTOMATIC を追加する必要がある場合があります。

生成される UPDATE DB CFG コマンドには、UPDATE DATABASE CONFIGURATION 構文にある通常のパラメーターとオプションが含まれます。ただし、以下のパラメーターは除きます。
  • PAGE_AGE_TRGT_MCR
  • DFT_TABLE_ORG
  • STRING_UNITS
  • NCHAR_MAPPING
  • EXTENDED_ROW_SZ
  • CONNECT_PROC
-e
以下のデータベース・オブジェクト用の DDL ステートメントを抽出します。
  • 別名
  • 監査ポリシー
  • チェック制約
  • 関数マッピング
  • 関数テンプレート
  • グローバル変数
  • 索引 (パーティション表上のパーティション索引を含む)
  • 索引仕様
  • マテリアライズ照会表 (MQT)
  • ニックネーム
  • 主キー、参照整合性、およびチェック制約
  • 参照整合性制約
  • ロール
  • スキーマ
  • セキュリティー・ラベル
  • セキュリティー・ラベル・コンポーネント
  • セキュリティー・ポリシー
  • シーケンス
  • サーバー
  • ストアード・プロシージャー
  • 注: SYSIBM.SYSTABLES カタログ表の列 STATISTICS_PROFILE の値は含まれません。
  • トリガー
  • トラステッド・コンテキスト
  • タイプ・マッピング
  • 使用リスト
  • ユーザー・マッピング
  • ユーザー定義特殊タイプ
  • ユーザー定義関数
  • ユーザー定義メソッド
  • ユーザー定義の構造化タイプ
  • ユーザー定義トランスフォーム
  • ビュー
  • ラッパー
db2look コマンドに生成されるDDLステートメントを使う場合、関数を使用可能に設置しなければなりません。 このコマンドは、ユーザー定義関数とその関数が参照するソースコード(たとえば、EXTERNAL NAME句)の再作成に実行されます。
-u creator
指定された作成者 ID で作成されたオブジェクトに対する DDL ステートメントを生成します。 出力を、指定された作成者 ID で作成されたオブジェクトに制限します。 出力に作動不能オブジェクトは含まれません。 作動不能オブジェクトを表示するには、-a パラメーターを使ってください。 -aパラメーターを指定する場合、-u パラメーターは無視されます。
-z schema
指定されたスキーマ名を持つオブジェクトに対する DDL ステートメントを生成します。 出力を、指定されたスキーマ名を持つオブジェクトに制限します。 出力に作動不能オブジェクトは含まれません。 作動不能オブジェクトを表示するには、-a パラメーターを使ってください。 -zパラメーターを指定しない場合、すべてのスキーマ名のオブジェクトが抽出されます。 -aパラメーターを指定する場合、-z パラメーターは無視されます。 また、このパラメーターも、フェデレーテッド DDL ステートメントでは無視されます。

スキーマ名に単一引用符がある場合:

  1. スキーマ名で大/小文字を区別しない場合:「\" Schema name \ "」のように 2 組の二重引用符を使用してスキーマ名を入力します。引用符があるスキーマ名には 2 つの単一引用符を入力します。

    例-schema name = Sample 'enter it as "¥" Sample' ¥ "

スキーマ名に二重引用符がある場合:
  1. スキーマ名に大/小文字の区別がない場合: 二重引用符 (") を付けてスキーマ名を入力します。 円記号 (¥) の後に二重引用符 (¥ ") を付ける必要がある場合

    例-schema name = SAMPLE "enter it as SAMPLE ¥"

  2. スキーマ名に大/小文字の区別がある場合: スキーマ名を二重引用符 (") 付きで入力します。 円記号 (¥) の後に二重引用符 (¥ ") を付ける必要がある場合 二重引用符 (\") が付いたスキーマの開始と終了

    例-schema name = sample " enter it as \" sample \" \"

表名またはスキーマ名に二重引用符または単一引用符が含まれている場合は、 SchemaName.TableName 形式で入力しないでください。 代わりに、 -z SchemaName -t TableName 形式で入力する必要があります。

-t Tname1 Tname2 ... TnameN
指定した表とその従属オブジェクトに対する DDL ステートメントを生成します。 表リストに指定された表に出力を制限し、ユーザー指定表のすべての依存オブジェクトDDLステートメントを生成します。 表の最大数は 30 です。
従属オブジェクトには、以下のものが含まれます。
  • コメント
  • 索引
  • 主キー
  • ユニーク・キー
  • 別名
  • 外部キー制約
  • チェック制約
  • ビュー
  • トリガー
リストを以下のように指定します。
  • 表名をブランク・スペースで区切ります。
  • 大/小文字の区別のある名前と 2 バイト文字セット (DBCS) 名は、円記号 (¥) および二重引用符 (" ") で囲む必要があります (例えば ¥" MyTabLe ¥")。
  • 複数語の表名は、円記号と 2 セットの二重引用符 (例えば "¥"My Table¥"") で囲むことにより、その対が一語ごとにコマンド行プロセッサー (CLP) で評価されないようにします。 二重引用符のセットを 1つだけ使用すると(例えば、"My Table")、すべてのワードが大文字に変換されます。 次に、 db2look コマンドは大文字の表名 (例えば、MY TABLE) を検索します。

-l パラメーターとともに-t パラメーターを指定すると、パーティション表がサポートされるようになります。

スキーマ.という形式の2部構成表名を使用すると、-z スキーマ パラメーターを使用せずに表名を完全に修飾できます。 表に、表のスキーマとは異なるスキーマに依存オブジェクトがある場合、2部構成表名を使用します。 また、依存オブジェクトに対してDDLステートメントを生成しなければならない場合、2部構成表名を使用してください。 -z スキーマパラメーターを使用してスキーマを指定する場合、このパラメーターは、同じ親スキーマを持たない依存オブジェクトを除外します。 このパラメーターは、依存オブジェクトのDDLステートメントが生成されないようにします。

表名が単一引用符で囲まれている場合:
  1. 表名が大/小文字を区別しない場合: 2 組の二重引用符を使用して表名を入力します。例えば、「\" 表名 \ "」のように入力し、以降の引用符がある表名には 2 つの単一引用符を入力します。

    例-table name = Sample 'enter it as "¥" Sample' ¥ "

表名に二重引用符がある場合:
  1. 表名の大/小文字を区別しない場合: 二重引用符 (") を使用して表名を入力します。 円記号 (¥) の後に二重引用符 (¥ ") を付ける必要がある場合

    例-table name = SAMPLE "enter it as SAMPLE ¥"

  2. 表名に大/小文字の区別がある場合: 二重引用符 (") を使用して表名を入力します。 円記号 (¥) の後に二重引用符 (¥ ") を付ける必要がある場合 二重引用符 (\") 付きのテーブルの開始と終了

    例-table name = sample "enter it as ¥ sample ¥" ¥ "

表名またはスキーマ名に二重引用符または単一引用符が含まれている場合は、 SchemaName.TableName 形式で入力しないでください。 代わりに、 -z SchemaName -t TableName 形式で入力する必要があります。

-tw Tname
Tname で指定したパターンに一致する名前を持つ表の DDL ステートメントを生成し、それらの表のすべての従属オブジェクトの DDL ステートメントを生成します。 Tname は単一値のみでなければなりません。 Tname 内の下線文字 (_) は、任意の 1 文字を表します。 パーセント記号 (%) は、ゼロ個以上の文字のストリングを表します。 -tw を指定した場合は、-t オプションが無視されます。

スキーマ.という形式の2部構成表名を使用すると、-z スキーマ パラメーターを使用せずに表名を完全に修飾できます。 表に、表のスキーマとは異なるスキーマに依存オブジェクトがある場合、2部構成表名を使用します。 また、依存オブジェクトに対してDDLステートメントを生成しなければならない場合、2部構成表名を使用してください。 -z スキーマパラメーターを使用してスキーマを指定する場合、このパラメーターは、同じ親スキーマを持たない依存オブジェクトを除外します。 このパラメーターは、依存オブジェクトのDDLステートメントが生成されないようにします。

-ct
オブジェクト作成時刻に基づいて DDL ステートメントを生成します。 オブジェクト DDL ステートメントは、正しい従属順序では表示されない可能性があります。 -ct パラメーターを -e パラメーターと一緒に指定すると、 db2look コマンドは -xdir -b-nolbac, -wrapper-server-fedonly-nofed-nostatsclause-xs-f-fd-createdb、および -printdbcfgの各パラメーターをサポートしません。 -ct パラメーターを指定した場合、 db2look コマンドは -xs-f-fd-createdb、および -printdbcfgの各パラメーターをサポートしません。 -ct パラメーターを -z および -t パラメーターと一緒に使用すると、 db2look コマンドは UPDATE ステートメントを生成して、表、統計ビュー、列、および索引に関する統計を複製します。
-dp
CREATE ステートメントの前に DROP ステートメントを生成します。 ドロップされたオブジェクトに依存するオブジェクトの場合、DROP ステートメントは機能しない可能性があります。 例えば、表がスキーマに依存している場合、そのスキーマをドロップできません。 また、ユーザー定義型またはユーザー定義関数に依存する型、関数、トリガー、または表の場合、ユーザー定義型またはユーザー定義関数を削除できません。 型付き表の場合、DROP TABLE HIERARCHY ステートメントはルート表についてのみ生成されます。 表がドロップされると索引、主キーと外部キー、および制約も常にドロップされるため、それらについての DROP ステートメントは生成されません。 RESTRICT ON DROP 属性を持つ表はドロップできません。
-v Vname1 Vname2 ... VnameN
指定したビューに対する DDL ステートメントを生成しますが、それらの従属オブジェクトに対しては生成しません。 ビューの最大数は 30 です。 大/小文字の区別がある表名、DBCS 表名、マルチワード表名の規則は、ビュー名にも適用されます。 -tパラメーターを指定する場合、-v パラメーターは無視されます。

ビューを完全修飾するために、schema.view フォーマットの 2 部から成るビュー名を使用できます。

-h
ヘルプ情報を表示します。 このパラメーターを指定した場合、 他のすべてのパラメーターは無視されます。
-ap
監査ポリシーを他のデータベース・オブジェクトに関連付けるのに必要な AUDIT USING ステートメントを生成します。
-o Fname
出力をFname ファイルに書き込みます。 拡張子を指定しない場合は、.sql拡張子が使用されます。 このパラメーターを指定しない場合、出力は標準出力に書き込まれます。
-a
作動不能オブジェクトを含め、他のユーザーによって作成されたオブジェクトに対する DDL ステートメントを生成します。 例えば、このパラメーターを-eパラメーターと一緒に指定すると、データベースのすべてのオブジェクトのDDLステートメントが抽出されます。 このパラメーターを-mパラメーターと一緒に指定すると、データベースのすべてのユーザー作成表と索引について、UPDATE統計ステートメントが抽出されます。

-uパラメーターも-aパラメーターも指定しない場合は、USER 環境変数が使用されます。 UNIX オペレーティング・システムでは、この変数を明示的に設定する必要はありません。 ただし、Windows オペレーティング・システムでは、USER 環境変数にデフォルト値はありません。 したがって、SYSTEM 変数にユーザー変数を設定するか、セッションに対して set USER=username コマンドを発行する必要があります。

-m
表、統計ビュー、列、索引に関する統計を複製するUPDATEステートメントを生成します。 -mパラメータの使用は、模倣モードでの実行と呼ばれます。
-c
このオプションを指定した場合、db2look コマンドは、COMMIT、CONNECT、および CONNECT RESET ステートメントを生成しません。 デフォルト・アクションでは、これらのステートメントを生成します。 -mまたは-eパラメーターも指定しない限り、このオプションは無視されます。
-r
このオプションを -m パラメーターと共に指定する場合、db2look コマンドは RUNSTATS コマンドを生成しません。 デフォルトのアクションでは、 RUNSTATS コマンドが生成されます。
重要: -m パラメーターを指定した db2look コマンドを使用して作成されたコマンド・プロセッサー・スクリプトを別のデータベースに対して実行する場合、両方のデータベースで同じコード・セット、テリトリー、照合、および固有性の判別を使用する必要があります。
-l
以下のデータベース・オブジェクト用の DDL ステートメントを生成します。
  • ユーザー定義表スペース
  • ユーザー定義ストレージ・グループ
  • ユーザー定義データベース・パーティション・グループ
  • ユーザー定義バッファー・プール
-x
GRANT ステートメントなどの許可 DDL ステートメントを生成します。
サポートされている許可には、以下のものが含まれます。
  • 列: UPDATE、REFERENCES
  • データベース: ACCESSCTRL、BINDADD、CONNECT、CREATETAB、 CREATE_EXTERNAL_ROUTINE、CREATE_NOT_FENCED_ROUTINE、 DATAACCESS、DBADM、EXPLAIN、IMPLICIT_SCHEMA、LOAD、 QUIESCE_CONNECT、SECADM、SQLADM、WLMADM
  • 免除
  • グローバル変数
  • 索引: CONTROL
  • パッケージ: CONTROL、BIND、EXECUTE
  • ロール
  • スキーマ: CREATEIN、DROPIN、ALTERIN、SELECTIN、INSERTIN、UPDATEIN、DELETEIN、EXECUTEIN、SCHEMAADM、DATACCESS、ACCESSCTRL、LOAD
    注: スキーマは「従属」オブジェクトではないため、 -xdep および -xddep オプションを更新する必要はありません。
  • セキュリティー・ラベル
  • シーケンス: USAGE、ALTER
  • ストアード・プロシージャー: EXECUTE
  • 表: ALTER、SELECT、INSERT、DELETE、UPDATE、INDEX、 REFERENCE、CONTROL
  • ビュー: SELECT、INSERT、DELETE、UPDATE、CONTROL
  • ユーザー定義関数 (UDF): EXECUTE
  • ユーザー定義メソッド: EXECUTE
  • 表スペース: USE
  • ワークロード: USAGE
注: このパラメーターを -t パラメーターまたは -tw パラメーターと一緒に使用すると、従属オブジェクトの許可 DDL ステートメントは生成されません。 親オブジェクトと従属オブジェクトに対して許可 DDL ステートメントを生成する場合は、-xdep パラメーターを使用してください。
-xdep
親オブジェクトと従属オブジェクトに対して許可 DDL ステートメント (例えば GRANT ステートメント) を生成します。 -tパラメーターまたは-tw パラメーターいずれかが指定されていない場合、このパラメーターは無視されます。 サポートされている許可には、以下のものが含まれます。
  • 列: UPDATE、REFERENCES
  • 索引: CONTROL
  • ストアード・プロシージャー: EXECUTE
  • 表: ALTER、SELECT、INSERT、DELETE、UPDATE、INDEX、 REFERENCE、CONTROL
  • 表スペース: USE
  • ユーザー定義関数 (UDF): EXECUTE
  • ユーザー定義メソッド: EXECUTE
  • ビュー: SELECT、INSERT、DELETE、UPDATE、CONTROL
-xd
元の定義者を含むが、付与者SYSIBMを持つオブジェクトを除外する認証DDLステートメントを生成します。 システムカタログ表およびカタログビューの認証DDLは生成されません。
注: このパラメーターを -t パラメーターまたは -tw パラメーターと一緒に使用すると、従属オブジェクトの許可 DDL ステートメントは生成されません。 親オブジェクトと従属オブジェクトに対して許可 DDL ステートメントを生成する場合は、-xddep パラメーターを使用してください。
-xddep
オブジェクト作成時に SYSIBM によって権限を付与されたオブジェクトの許可 DDL ステートメントを含めて、 親オブジェクトおよび従属オブジェクトに対して、すべての許可 DDL ステートメントを生成します。 -tパラメーターまたは-tw パラメーターいずれかが指定されていない場合、このパラメーターは無視されます。
-f
照会オプティマイザーに影響を与える構成パラメーターおよびレジストリー変数を抽出します。
-td delimiter
db2look コマンドによって生成される SQL ステートメントのステートメント区切り文字を指定します。 デフォルトの区切り文字はセミコロン(;)です。 抽出されたオブジェクトにはトリガーまたはSQLルーチンが含まれている可能性があるため、-eパラメーターを指定する場合は、このパラメーターを使用してください。
-noview
CREATE VIEW DDLステートメントを抽出しないことを指定します。
-i userid
リモート・システムにログオンするために db2look コマンドが使用するユーザー ID を指定します。 このパラメーターと -w パラメーターを指定すると、db2look コマンドをリモート・システム上のデータベースに対して実行することができます。 ローカル・データベースとリモート・データベースは、同じ Db2 for z/OS バージョンを使用する必要があります。
-w password
リモート・システムにログオンするために db2look コマンドが使用するパスワードを指定します。 このパラメーターと -i パラメーターを指定すると、db2look コマンドをリモート・システム上のデータベースに対して実行することができます。 ローカル・データベースとリモート・データベースは、同じ Db2 for z/OS バージョンを使用する必要があります。
-wlm
WLM 固有の DDL 出力を生成します。 この出力は、以下のものに関する CREATE および ALTER ステートメントの生成に使用できます。
  • ヒストグラム
  • サービス・クラス
  • Thresholds
  • WLM イベント・モニター
  • ワークロード
  • 作業アクション・セット
  • 作業クラス・セット
-wrap
ルーチン、トリガー、ビュー、PL/SQL パッケージの DDL ステートメントの難読化バージョンを生成します。
-wrapper Wname
指定したラッパーに適用するフェデレーテッド・オブジェクト用の DDL ステートメントを生成します。 生成される可能性のあるフェデレーテッド DDL ステートメントには、以下のものがあります。
  • CREATE FUNCTION ... AS TEMPLATE
  • CREATE FUNCTION MAPPING
  • CREATE INDEX SPECIFICATION
  • CREATE NICKNAME
  • CREATE SERVER
  • CREATE type MAPPING
  • CREATE USER MAPPING
  • CREATE WRAPPER
  • GRANT (ニックネーム、サーバー、索引に対する特権)
ラッパー名を指定しない場合や、複数指定した場合には、エラーが戻されます。
-server Sname
指定したサーバーに適用するフェデレーテッド・オブジェクト用の DDL ステートメントを生成します。 生成される可能性のあるフェデレーテッド DDL ステートメントには、以下のものがあります。
  • CREATE FUNCTION ... AS TEMPLATE
  • CREATE FUNCTION MAPPING
  • CREATE INDEX SPECIFICATION
  • CREATE NICKNAME
  • CREATE SERVER
  • CREATE TYPE MAPPING
  • CREATE USER MAPPING
  • CREATE WRAPPER
  • GRANT (ニックネーム、サーバー、索引に対する特権)
サーバー名を指定しない場合や、複数指定した場合には、エラーが戻されます。
-tn tenantname
特定のテナントと、そのテナントに定義されるオブジェクトのDDLステートメントを生成します。
-nofed
フェデレーテッドDDLステートメントを生成しないことを指定します。 このパラメーターが指定されると、-wrapperパラメーターと-server パラメーターは無視されます。
-fedonly
フェデレーテッド DDL ステートメントのみを生成することを指定します。
-mod
各モジュール、および各モジュールに定義されているすべてのオブジェクト用に DDL ステートメントを生成します。
-xs
XML スキーマと DTD をターゲット・データベースに登録するために必要なすべてのファイルをエクスポートし、それらを登録するための該当するコマンドを生成します。 エクスポートXSR オブジェクトのセットは、 -u-z-aパラメーターに制御されます。
-xdir dirname
XML 関連ファイルを指定されたパスにエクスポートします。 このパラメーターを指定しない場合、XML 関連ファイルはすべて現行ディレクトリーにエクスポートされます。
-cor
ステートメントに元々その句が含まれていたかどうかに関係なく、CREATEORREPLACE句を使用してDDLステートメントを生成します。
-noimplschema
暗黙的に作成されたスキーマに関する CREATE SCHEMA DDL ステートメントを生成しないように指定します。 このパラメーターを指定する場合は、 -e パラメーターも指定しなければなりません。

以下の例は、db2look コマンドの使用方法を示しています。
  • データベースDEPARTMENTでユーザー walidに作成されたオブジェクトのDDLステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -u walid -e -o db2look.sql
  • データベースDEPARTMENTに、ユーザーwalidに作成されたスキーマ名 ianheを持つオブジェクトの DDL ステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -u walid -z ianhe -e -o db2look.sql
  • UPDATEステートメントを生成して、データベースDEPARTMENTでユーザーwalidに作成されたデータベースオブジェクトの統計を複製します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -u walid -m -o db2look.sql
  • ユーザー walidに作成されたオブジェクトのDDLステートメントとUPDATEステートメントの両方を生成して、同じユーザーに作成されたデータベースオブジェクトの統計を複製します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -u walid -e -m -o db2look.sql
  • データベース DEPARTMENT ですべてのユーザーによって作成されたオブジェクトの DDL ステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -a -e -o db2look.sql
  • すべてのユーザー定義データベース・パーティション・グループ、バッファー・プール、表スペースのDDLステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -l -o db2look.sql
  • オプティマイザー関連のデータベースおよびデータベース・マネージャーの構成パラメーター用の UPDATE ステートメント、 およびデータベース DEPARTMENT にあるオプティマイザー関連のレジストリー変数用の db2set コマンドを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -f -o db2look.sql
  • オプティマイザー関連のレジストリー変数と、データベース DEPARTMENT のための以下のステートメントに対して db2set コマンドを生成します。
    • すべてのデータベース・オブジェクトのための DDL ステートメント
    • すべての表と索引についての統計を複製するための UPDATE ステートメント
    • GRANT 許可ステートメント
    • オプティマイザー関連のデータベースおよびデータベース・マネージャーの構成パラメーターに対する UPDATE ステートメント
    • オプティマイザー関連のレジストリー変数に対する db2set コマンド
    • すべてのユーザー定義のデータベース・パーティション・グループ、バッファー・プール、および表スペースに対する DDL ステートメント
    出力はdb2look.sqlファイルに送信されます。
       db2look -d department -a -e -m -l -x -f -o db2look.sql
  • オリジナルの作成者によって作成されたオブジェクトも含む、 データベース DEPARTMENT 内のすべてのオブジェクトのすべての許可 DDL ステートメントを生成します。 (この場合には、オブジェクトの作成時に SYSIBM によって権限が付与されました。) 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -xd -o db2look.sql
  • データベース DEPARTMENT ですべてのユーザーによって作成されたオブジェクトの DDL ステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -a -e -td % -o db2look.sql
    出力は CLP によって読み取ることができます。
       db2 -td% -f db2look.sql
  • データベース DEPARTMENT 内のオブジェクト用に、 CREATE VIEW ステートメントを除く DDL ステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -e -noview -o db2look.sql
  • 指定した表に関連するデータベース DEPARTMENT 内のオブジェクト用に、DDL ステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -e -t tab1 "\"My TaBlE2\"" -o db2look.sql
  • フェデレーテッド・データベース FEDDEPART にすべてのオブジェクト (フェデレーテッドおよび非フェデレーテッド) 用の DDL ステートメントを生成します。 フェデレーテッド DDL ステートメントでは、指定されたラッパー FEDWRAP に適用されるもののみが生成されます。 出力が標準出力に書き込まれます。
       db2look -d feddepart -e -wrapper fedwrap
  • 非フェデレーテッド DDL ステートメントのみを含むスクリプト・ファイルを生成します。 次のシステムコマンドは、連合データベースFEDDEPARTに対して実行でき、未連合データベースに対して実行された場合に見られるような出力のみを生成します。 出力はout.sqlファイルに送信されます。
       db2look -d feddepart -e -nofed -o out
  • スキーマ名walidを持つオブジェクトの DDL ステートメントをデータベースDEPARTMENTに生成します。 組み込まれた XMLスキーマとDTDを登録ファイルは、現行ディレクトリーにエクスポートされます。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -z walid -e -xs -o db2look.sql
  • データベース DEPARTMENT ですべてのユーザーによって作成されたオブジェクトの DDL ステートメントを生成します。 組み込まれるXMLスキーマとDTDを登録するファイルは、/home/ofer/ofer/ディレクトリーにエクスポートされます。 出力が標準出力に書き込まれます。
       db2look -d department -a -e -xs -xdir /home/ofer/ofer/
  • データベース DEPARTMENT に対する WLM 固有の DDL ステートメントだけを生成します。
    db2look -d department -wlm
  • データベース DEPARTMENT 内のすべてのオブジェクトに対する DDL ステートメントを生成します。
    db2look -d department -wlm -e -l
  • スキーマ TABLES 内の親表 TAB1 と、TAB1 の従属ビュー (データベース DB1 内の VIEWS スキーマにあり VIEW1 と呼ばれる) の両方に対して DDL ステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。
    db2look -d DB1 -t TABLES.TAB1 -e -o db2look.sql
  • スキーマTABLES内の親表TAB1 の DDL ステートメントと認証DDLステートメントを生成します。 さらに、VIEW1 という TAB1 の従属ビューをデータベースDB1のVIEWS スキーマに生成します。 出力はdb2look.sqlファイルに送信されます。
    db2look -d DB1 -t TABLES.TAB1 -e -xdep -o db2look.sql
  • 模倣モードで TABLE1 表に RUNSTATS DDL ステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。 このコマンドで使用可能な RUNSTATS 節すべてがサポートされているわけではありません。
    db2look -d DB1 -t TABLE1 -m  -e -o db2look.sql
  • データベース DEPARTMENT の作成に使用した CREATE DATABASE コマンドを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -createdb -o db2look.sql
  • データベース DEPARTMENT から UPDATE DB CFG ステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -printdbcfg -o db2look.sql
  • データベース DEPARTMENT の作成に使用した CREATE DATABASE コマンドと、データベースに作成されるオブジェクトの UPDATE DB CFG ステートメントおよび DDL ステートメントを生成します。 出力はdb2look.sqlファイルに送信されます。
       db2look -d department -createdb -printdbcfg -e  -o db2look.sql

使用上の注意

Windows オペレーティング・システムでは、 Db2 コマンド・ウィンドウから db2look コマンドを発行する必要があります。

デフォルトでは、インスタンス所有者には db2look パッケージに対する EXECUTE 特権があります。 他のユーザーがdb2lookコマンドを実行するには、インスタンス所有者がdb2lookパッケージに対する EXECUTE権限を付与しなければなりません。 db2look パッケージ名を判別するには、以下のようにして db2bfd コマンドを使用できます。
	cd .../sqllib/bnd
	db2bfd -b db2look.bnd
	db2bfd -b db2lkfun.bnd
	db2bfd -b db2lksp.bnd
フェデレーテッド・オブジェクトのための DDL ステートメントを作成するためには、データベース・マネージャー構成でフェデレーテッド・システムを使用可能に設定する必要があります。 db2look コマンドがスクリプト・ファイルを生成した後、そのスクリプトを実行する前に、federated 構成パラメーターを YES に設定する必要があります。 以下の db2look コマンド・パラメーターがフェデレーテッド環境でサポートされます。
-ap
AUDIT USING ステートメントを生成します。
-e
フェデレーテッド・オブジェクト用の DDL ステートメントを生成します。
-f
フェデレーテッド関連情報をデータベース・マネージャー構成から抽出します。
-m
ニックネームの統計を抽出します。
-x
フェデレーテッド・オブジェクトに対する特権を付与する GRANT ステートメントを生成します。
-xd
フェデレーテッド・オブジェクトに対してシステムが付与する特権を追加する DDL ステートメントを生成します。
-wlm
WLM 固有の DDL ステートメントを生成します。

ニックネーム列とリモート表列のデータ型が異なる場合、 db2lookコマンドはニックネームCOLUMNのALTER列ステートメントを生成します。

出力スクリプトを変更して、CREATE USER MAPPING ステートメントのリモート・パスワードを追加する必要があります。

Db2 ファミリー・インスタンスをデータ・ソースとして定義するために使用される CREATE SERVER ステートメントに AUTHORIZATION および PASSWORD を追加することにより、 db2look コマンド出力スクリプトを変更する必要があります。

-tw オプションの使用法は、次のとおりです。
  • abcから始まる名前を持つ表に関連付けられているDEPARTMENTデータベースのオブジェクトのDDLステートメントを生成し、出力をdb2look.sqlファイルに送信するには、
       db2look -d department -e -tw abc% -o db2look.sql
  • 名前の2番目の文字としてdを持つ表に関連付けられたDEPARTMENTデータベースのオブジェクトのDDLステートメントを生成し、出力をdb2look.sqlファイルに送信するには、
       db2look -d department -e -tw _d% -o db2look.sql
  • db2look コマンドはLIKE述部を使用して、 TNAME 引数に指定されたパターンにマッチする表名を評価します。 LIKE述部が使用されるため、_文字または%文字のいずれかが表名の一部である場合。 次に、_または%の直前に円記号(\)エスケープ文字を使わなければなりません。 この状況では、TNAMEで_または%はワイルドカード文字として使用されません。 たとえば、名前の最初または最後の位置にパーセント記号がある表に関連付けられているDEPARTMENTデータベースのオブジェクトのDDLステートメントを生成するには、
       db2look -d department -e -tw string\%string
  • 大/小文字の区別がある名前、DBCS 名、複数語表名および複数語ビュー名は、 円記号および二重引用符の両方で囲む必要があります。 以下に例を示します。
       \"My TabLe\"

    マルチバイト文字セット(MBCS)またはダブルバイト文字セット(DBCS)の名前が後方スラッシュと二重引用符に囲まれておらず、小文字と同じバイトが含まれる場合、大文字に変換され、 db2lookは変換名のデータベースオブジェクトを求めます。 その結果、DDLステートメントが抽出されます。

  • -tw オプションは、-x オプション (GRANT 特権を生成する場合)、-m オプション (表統計および列統計を戻す場合)、および -l オプション (ユーザー定義表スペース、データベース・パーティション・グループ、およびバッファー・プールの DDL を生成する場合) とともに使用できます。 -t オプションを -tw オプションとともに指定すると、-t オプション (およびそれに関連した Tname 引数) が無視されます。
  • -tw オプションを使用して、フェデレーテッド・データ・ソース上、または Db2 Universal Database on z/OS および OS/390®Db2 for i、または Db2 Server for VSE & VM上にある表 (およびそれらの関連オブジェクト) の DDL を生成することはできません。
  • -tw オプションはCLPにのみサポートされます。

パーティション・データベース環境のシステムでDDLステートメントを生成しようとすると、使用できないデータベース・パーティションにある表スペースのDDLステートメントの代わりに警告メッセージが表示されます。 すべての表スペースに対して正しい DDL ステートメントが作成されるようにするため、すべてのデータベース・パーティションをアクティブにする必要があります。

db2look コマンドは、 Db2 クライアントから、そのクライアントと同じかそれ以降のリリースのデータベースに対して発行できます。 ただし、このコマンドをクライアントから、クライアントより前のリリースのデータベースに発行できません。 例えば、バージョン 9.8 クライアントから バージョン 10.1 データベースに db2look コマンドを発行することはできますが、 バージョン 10.1 クライアントからバージョン 9.8 データベースにコマンドを発行することはできません。

db2look ユーティリティーを呼び出すと、db2look コマンドは、未コミットトランザクションに作成されたすべてのオブジェクトのDDLステートメントを生成します。

タイプ配列のセキュリティー・ラベル・コンポーネントのための DDL ステートメントを抽出する場合、抽出されたステートメントが生成するコンポーネントの内部表記 (その配列内のエレメントのエンコード) が、db2look コマンドの発行対象のデータベース内のコンポーネントの内部表記と一致しないことがあります。 この不一致は、セキュリティー・ラベル・コンポーネントに 1 つ以上のエレメントを追加することによってコンポーネントを変更した場合に発生する可能性があります。 このような場合、ある表から抽出し、db2look出力から作成された別表に移動したデータには、対応セキュリティー・ラベル値がなく、新しい表の保護が損なわれる可能性があります。

パーティション・データベース環境では、データベース管理スペース (DMS) またはシステム管理スペース (SMS) によって管理される表スペースを使用して、$N 式で定義されたコンテナー・パスを指定してデータベースが作成された場合、 db2look -createdb generated CREATE DATABASE コマンドは、指定された元のパスまたは $N 式だけでなく、各データベース・パーティション上のすべてのコンテナー・パスをリストします。 生成ステートメントを実行する前に、コンテナー設定を調整しなければなりません。 パーティション・データベース環境では、自動ストレージ・オプショ制限はありません。

pureScale 環境では、db2look -printdbcfg コマンドを実行するデータベース・メンバーの値によって、db2look -printdbcfg コマンドは UPDATE DATABASE CONFIGURATION 値を生成します。

障害エラー・メッセージ Failed parsing table DDL string, rc = 0 が検出された場合は、環境変数 SKIP_BAD_DDL=Y を設定して、 db2look が次のオブジェクトの処理を続行し、エラーを無視できるようにすることができます。 問題発生した一部の表DDLには、完全な表 DDLがありません。 Linux/AIX を使用している場合、このコマンドは export SKIP_BAD_DDL=Y です。

ユーザーは、環境変数 DB2LOOK_SKIP_MIMIC_RESET=Y を設定して、 SYSSTAT.TABLES、 SYSSTAT.INDEXES、および SYSSTAT.COLUMNS from -m オプション。 Linux/AIX を使用している場合、このコマンドは export DB2LOOK_SKIP_MIMIC_RESET=Y です。

db2look コマンドは、データベースが実行されているオペレーティング・システムと同じエンディアンのオペレーティング・システムで実行されている Db2 クライアントからのみ発行できます。