MENU
OS
データベース
プログラミング
フリーウェア
SEの為の業務知識





 DB2  

DB2コマンド

DB2コマンド

   WINDOWSコマンドプロンプトからのSQL実行方法

  1. Windowsコマンドプロンプトからdb2cmdを実行(コマンド行プロセッサの起動)

    C:\> DB2CMD

     使用時の注意点:

    1. 自動コミットがデフォルト有効となっている

      • 確認方法

        DB2 LIST COMMAND OPTIONS

      • 解除方法

        DB2 UPDATE COMMAND OPTIONS USING C OFF

   サービスの起動・停止

  • 起動

    DB2 DB2START

  • 停止

    DB2 DB2STOP

   インスタンスの作成

    DB2 DB2ICRT [インスタンス名]

   DB2の接続

    DB2 CONNECT TO [データベース名] USER [接続ユーザ] PASSWORD [パスワード]

   表領域の作成

    DB2 CREATE TABLESPACE [表領域名] MANAGED BY SYSTEM USING ('D:\DB2\NODE0000\表領域名')

   表領域の変更(表領域不足が発生した場合)

    (SQL0289N 表スペース "テーブルスペース名" の新規ページを割り振れません。SQLSTATE=57011 などの
     エラー発生時)

  1. テーブルスペースの確認を行い、合計ページ数、コンテナー数を取得

  2. テーブルスペースの変更を行う

    DB2 ALTER TABLESPACE [表領域名] RESIZE (ALL [変更サイズ])

    ※変更サイズ: 合計ページ数/コンテナー数+増加させたいページ数(128ページくらい?)


   データベースの作成

    DB2 CREATE DATABASE [データベース名] ON D: USING CODESET IBM-943 TERRITORY JP COLLATE
    USING IDENTITY

   テーブルの作成

    DB2 CREATE TABLE [テーブル名] { フィールド名1 データ型1, フィールド2 データ型2,・・・}
    IN [表領域]

   フィールドの追加

    DB2 ALTER TABLE [テーブル名] ADD COLUMN [フィールド名] [型名] NOT NULL

   テーブルのコピー(エクスポート、インポート)

  1. テーブルコピー元のデータベースよりエクスポートを行う

    ・データベース接続
    DB2 CONNECT TO [コピー元データベース名]

    ・エクスポート
    DB2 EXPORT TO [エクスポートファイル名].IXF OF IXF MESSAGES [エクスポートファイル名].EXM
    SELECT * FROM [テーブル名]

    ・切断
    DB2 CONNECT RESET

  2. テーブルコピー先のデータベースへインポートを行う ※コピー先のデータベースにコピー元のテーブルが無い場合

    ・データベース接続
    DB2 CONNECT TO [コピー先データベース名]

    ・インポート
    DB2 IMPORT FROM [エクスポートしたファイル名].IXF OF IXF COMMITCOUNT 1000 MESSAGES
    [エクスポートしたファイル名].EXM CREATE INTO [テーブル名]

    ・切断
    DB2 CONNECT RESET

  3. テーブルコピー先のデータベースへインポートを行う ※コピー先のデータベースにコピー元のテーブルがある場合

    ・データベース接続
    DB2 CONNECT TO [コピー先データベース名]

    ・インポート
    DB2 IMPORT FROM [エクスポートしたファイル名].IXF OF IXF COMMITCOUNT 1000 MESSAGES
    [エクスポートしたファイル名].EXM INSERT INTO [テーブル名]

    ・切断
    DB2 CONNECT RESET

    <注>・インポート、エクスポートコマンドは対象テーブルをロックする
        ・大量データの場合は必ずコミット件数を指定すること
        ・テーブルへの反映モードを状況に応じて変更し使用する
          1.INSERT
             挿入
          2.INSERT_UPDATE
             一時キーによる更新+挿入
          3.REPLACE
             削除+挿入
          4.REPLACE_CREATE
             テーブルが無い場合、テーブル作成+削除+挿入
          5.CREATE
             テーブル作成+挿入
  • CSVファイル形式をインポート

    ※インポートするタイプをDELにする

    DB2 IMPORT FROM [CSVファイル名].CSV OF DEL COMMITCOUNT [コミット件数] MESSAGES
    [ログ出力名] REPLACE INTO [テーブル名]

   複数のテーブルをまとめてコピー

    DB2 DB2MOVE [データベース名] EXPORT -sn [スキーマ名] -tn [テーブル名] -u [ユーザ名] -p [パスワード]

    ・コマンド実行フォルダにエクスポートされる
    ・テーブル名に「,」をつけて複数重ねることが可能
    ・戻す場合は DB2MOVE [データベース名] IMPORT

   表領域の確認

    DB2 LIST TABLESPACES [SHOW DETAIL]

   データベースの確認

    DB2 LIST DATABASE DIRECTORY

   コンテナーの確認

    DB2 LIST TABLESPACE CONTAINERS FOR [表スペースID]

   テーブルの確認

    DB2 LIST TABLES FOR ALL

   フィールドの確認

    DB2 DESCRIBE TABLE [テーブル名]

   インデックスの確認

    DB2 DESCRIBE INDEXES FOR TABLE [テーブル名]

   外部ファイルの実行

  • auto commit offでの実行

    DB2 -rvf [ファイル名]

  • auto commit onでの実行

    DB2 +c -rvf [ファイル名]

    ※外部ファイル内にエクスポート、インポート文を記述していると一括で実行することができる

   表の再編成

  1. 表の統計情報を更新

    DB2 RUNSTATS ON TABLE [スキーマー名].[テーブル名]

  2. データベースでの統計を計算し、表または索引が、再編成またはクリーンアップされる必要があるか判別

    ※「*」が表示されていると再編成が必要と思われる

    DB2 REORGCHK CURRENT STATISTICS ON TABLE [スキーマー名].[テーブル名]

  3. 表の再編成

    DB2 REORG TABLE [スキーマー名].[テーブル名]

  4. 索引の再編成

    DB2 REORG INDEXES ALL FOR TABLE [スキーマー名].[テーブル名]

  5. 再編成後、表と索引の統計情報を更新

    DB2 RUNSTATS ON TABLE [スキーマー名].[テーブル名] WITH DISTRIBUTION AND DETAILED INDEXESE ALL

  6. 再編成後の内容を確認

    DB2 REORGCHK CURRENT STATISTICS ON TABLE [スキーマー名].[テーブル名]

[トップページへ] [戻る]

Copyright(c)2007-2008 Freedom.Net Co., Ltd. All rights reserved.