Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


13.9.2 データ用DBエリアだけを暗号化している場合

データ用DBエリアだけを暗号化している場合にデータ暗号鍵を更新するには,暗号化対象のすべてのデータ用DBエリアを再作成する必要があります。そのため,暗号化対象のデータ用DBエリアに格納されている表およびインデクスの再定義や,表へのデータインポートなどを実施する必要があります。手順を以降で説明します。

〈この項の構成〉

(1) データベースのバックアップを取得する

データ暗号鍵の更新手順を間違えると,データベースの状態がデータ暗号鍵の更新前とは異なってしまうおそれがあります。そのため,データ暗号鍵を更新する前にデータベースのバックアップを取得してください。バックアップの取得方法については,「13.6 バックアップを取得する場合」を参照してください。

データ暗号鍵の更新手順を間違えた場合,バックアップからデータベースを回復し,データ暗号鍵を再度更新してください。

(2) DBエリア追加・変更オプションファイルを作成する

暗号化対象のデータ用DBエリアを再作成(いったん削除したあとに追加)するため,暗号化対象のデータ用DBエリアの情報を取得し,それを基にadbmodareaコマンドのDBエリア追加・変更オプションファイルを作成してください。

データ用DBエリアを削除するときに使用するDBエリア追加・変更オプションファイルの作成

暗号化対象のデータ用DBエリアを削除するときに使用するDBエリア追加・変更オプションファイルを次の手順で作成してください。

手順

  1. 暗号化対象のデータ用DBエリアの一覧を取得する

    DBA権限を持っているHADBユーザで,付録B.22 ディクショナリ表の検索」の「(41) 暗号化対象のDBエリアの一覧を表示する方法」で説明している作業を実施してください。

    号化対象のデータ用DBエリアの一覧が出力されます。

    <暗号化対象のデータ用DBエリアの一覧の出力例>

     DBAREA_ID    DBAREA_TYPE DBAREA_NAME
     ------------ ----------- -----------------------------------------------------
               11        DATA ADBUIDX01
               12        DATA ADBUTBL01
               14        DATA ADBUTBL03
    KFAA96404-I 3 rows were selected.
    メモ

    DBAREA_TYPE列にDATA以外が出力されている場合は,データ用DBエリア以外のDBエリアを暗号化しています。この場合は,「13.9.1 データ用DBエリア以外のDBエリアを暗号化している場合」の方法でデータ暗号鍵を更新してください。

  2. DBエリア追加・変更オプションファイルを作成する

    1.で出力された実行結果を使用して,暗号化対象のデータ用DBエリアを削除するときに使用するDBエリア追加・変更オプションファイルを作成してください。

    adbrmarea -n ADBUIDX01
    adbrmarea -n ADBUTBL01
    adbrmarea -n ADBUTBL03

    下線部分には,DBAREA_NAME列に出力されたデータ用DBエリア名を指定します。

    この例の場合,削除するデータ用DBエリアが3つあるので,DBエリア追加・変更オプションファイルを3つ作成しています。

データ用DBエリアを追加するときに使用するDBエリア追加・変更オプションファイルの作成

暗号化対象のデータ用DBエリアを削除したあとに,同じデータ用DBエリアを追加するため,現状のデータ用DBエリアの構成を反映したDBエリア追加・変更オプションファイルを次の手順で作成してください。

クラウドストレージ機能を使用しているかどうかによって手順が異なります。

手順(クラウドストレージ機能を使用していない場合)

次のすべての操作は,HADB管理者が実行してください。

  1. DBエリア追加・変更オプションの基となる情報を作成する

    adbdbstatusコマンドを実行して,データ用DBエリアなどを構成するファイルの情報を出力してください。

    adbdbstatus -d used | grep -E "^Used" | awk -F',' '{print $3, $9}' | awk '!a[$0]++' \
    | sed -e '/"ADBDIC"/d' \
          -e '/"ADBSTBL"/d' \
    | sed -r 's/^"(.*)" "(.*)"/adbaddarea -n \\"\1\\" -i 0K,x -v "\2",\\/g'

    <上記のコマンドの実行結果の例>

    adbaddarea -n \"ADBUIDX01\" -i 0K,x -v "/dev/disk/by-id/wwn-0x60...0000",\
    adbaddarea -n \"ADBUTBL01\" -i 0K,x -v "/dev/disk/by-id/wwn-0x60...0001",\
    adbaddarea -n \"ADBUTBL02\" -i 0K,x -v "/dev/disk/by-id/wwn-0x60...0400",\
    adbaddarea -n \"ADBUTBL03\" -i 0K,x -v "/dev/disk/by-id/wwn-0x60...0401",\
    adbaddarea -n \"ADBUTBL03\" -i 0K,x -v "/dev/disk/by-id/wwn-0x60...0402",\
  2. 1.の実行結果を編集する

    1.の実行結果をエディタに貼り付けて,このファイルの内容をDBエリア追加・変更オプションファイルとして修正していきます。マニュアルHADB コマンドリファレンスDBエリア追加・変更オプションの形式を参照して,ファイルの内容を修正してください。

    また,次のことを確認して修正してください。

    • データ用DBエリアを削除するときに使用するDBエリア追加・変更オプションファイルの作成」の手順の1.のDBAREA_NAME列に出力されたDBエリア以外が-nオプションに指定されている場合は,adbaddarea以降の記述を削除してください。

    • -vオプションにブロックスペシャルファイルが指定されていない場合は,次の修正をしてください。

      • -vオプションに指定されているDBエリアファイルがDBディレクトリ直下にある場合

        <修正例>

        adbaddarea -n \"ADBUTBL01\" -i 0K,x -v "$DBDIR/ADBUTBL01",\
           ↓下記のように修正する。
        adbaddarea -n \"ADBUTBL01\" -i 0K,1

        $DBDIRの部分は,DBディレクトリのパスが表示されます。上記の例の場合,DBディレクトリの直下にDBエリアファイルADBUTBL01があります。

        この場合,次の修正をしてください。

        -vオプション以降の指定を削除する。

        -iオプションに指定している作成ファイル数を1に変更する。

      • -vオプションに指定されているDBエリアファイルがDBディレクトリ直下にない場合

        <修正例>

        adbaddarea -n \"ADBUTBL01\" -i 0K,x -v "$DBDIR/AREAS/ADBUTBL01",\
           ↓下記のように修正する。
        adbaddarea -n \"ADBUTBL01\" -i 0K,1 -f \"AREAS/\"

        $DBDIRの部分は,DBディレクトリのパスが表示されます。上記の例の場合,「DBディレクトリ/AREAS」下にDBエリアファイルADBUTBL01があります。

        この場合,次の修正をしてください。

        -iオプションに指定している作成ファイル数を1に変更する。

        -v-fに変更する。

        ・「"$DBDIR/AREAS/ADBUTBL01"」を「\"AREAS/\"」に変更する。

        ・末尾の「,\」を削除する。

    • -nオプションに指定されているDBエリア名の重複行がある場合,すべての重複行で次の修正をしてください。重複行がない場合は,その行だけ次の修正をしてください。

      • 先頭行の-iオプションに指定しているファイル数を,重複行数と同じ数に変更してください。

      • 2行目以降については,ブロックスペシャルファイルより前の記述を削除してください。

      • 最終行の末尾の「,\」を削除してください。

    • すべてのadbaddareaオペランドに-eオプションを追加してください。

    <修正後のファイルの例>

    adbaddarea -e -n \"ADBUIDX01\" -i 0K,1 -v "/dev/disk/by-id/wwn-0x60...0000"
    adbaddarea -e -n \"ADBUTBL01\" -i 0K,1 -v "/dev/disk/by-id/wwn-0x60...0001"
    adbaddarea -e -n \"ADBUTBL03\" -i 0K,2 -v "/dev/disk/by-id/wwn-0x60...0401",\
                                              "/dev/disk/by-id/wwn-0x60...0402"
  3. ファイルを編集する

    データ用DBエリアファイルのシンボリックリンクをDBディレクトリ下のサブディレクトリに配置している場合,そのデータ用DBエリアを定義しているadbaddareaオペランドに,-fオプションを指定する必要があります。3.では,adbaddareaオペランドに-fオプションを指定する必要があるかどうかと,-fオプションに指定するパスを調査します。

    なお,2.で-fオプションを指定したadbaddareaオペランドについては,3.の作業は不要です。

    手順

    メモ

    手順の各操作にある$DBDIRにはDBディレクトリ名を入力してください。また,実行結果にある$DBDIRにはDBディレクトリ名が表示されます。

    1. DBディレクトリ直下のファイルの一覧を表示する

      ls $DBDIR

      上記のコマンドを実行すると,DB ディレクトリ直下のファイルの一覧が表示されます。

      <lsコマンドの実行結果の例>

      ADBDIC ADBMST ADBSTBL ADBSYS ADBWORK ADBWRK AREAS ADBUIDX01 ADBUTBL01 ADBUTBL02 SPOOL

      上記の実行結果に,2.の「<修正後のファイルの例>」に指定しているデータ用DBエリア名と同名のファイルがあるかどうかを確認してください。この例の場合,同名のファイルとしてADBUIDX01およびADBUTBL01はありますが,ADBUTBL03はありません。したがって,データ用DBエリアファイルのシンボリックリンクADBUIDX01およびADBUTBL01はDBディレクトリ直下に配置されていますが,シンボリックリンクADBUTBL03はDBディレクトリ直下に配置されていません。シンボリックリンクADBUTBL03は,DBディレクトリ下のサブディレクトリに配置されています。

    2. シンボリックリンクADBUTBL03の配置場所を調査する

      findコマンドを実行して,a.の実行結果に表示されていないシンボリックリンクADBUTBL03が,DBディレクトリ内のどこに配置されているかを調査してください。

      find $DBDIR -name ADBUTBL03 2>/dev/null

      上記のコマンドを実行すると,DBディレクトリ内に存在するファイル名がADBUTBL03であるファイルの一覧が表示されます。

      findコマンドの実行結果の例>

      $DBDIR/AREAS/OLD/ADBUTBL03
      $DBDIR/AREAS/NEW/ADBUTBL03

      上記の実行結果のように,異なるパスの同名ファイルが複数表示された場合は,次の手順に進んでください。

      パスが1 つしか表示されない場合は,d.に進んでください。

    3. $DBDIR/AREAS/OLD/ADBUTBL03のリンク先を調査する

      ls -lコマンドを実行して,b.の実行結果に表示された$DBDIR/AREAS/OLD/ADBUTBL03のリンク先を表示してください。

      ls -l $DBDIR/AREAS/OLD/ADBUTBL03* | sed -e 's/.* -> //g'

      lsコマンドの実行結果の例>

      /dev/disk/by-id/wwn-0x60...a000

      上記の実行結果と,2.の「<修正後のファイルの例>」に指定しているデータ用DBエリアADBUTBL03の定義の-vオプションに指定しているブロックスペシャルファイルのパスを見比べてください。

      この例の場合,上記の実行結果とブロックスペシャルファイルのパスが一致していないため,該当するファイルではありません。

    4. $DBDIR/AREAS/NEW/ADBUTBL03のリンク先を調査する

      ls -lコマンドを実行して,b.の実行結果に表示された$DBDIR/AREAS/NEW/ADBUTBL03のリンク先を表示してください。

      ls -l $DBDIR/AREAS/NEW/ADBUTBL03* | sed -e 's/.* -> //g'

      lsコマンドの実行結果の例>

      /dev/disk/by-id/wwn-0x60...0401
      /dev/disk/by-id/wwn-0x60...0402

      上記の実行結果と,2.の「<修正後のファイルの例>」に指定しているデータ用DBエリアADBUTBL03の定義の-vオプションに指定しているブロックスペシャルファイルのパスを見比べてください。

      この例の場合,上記の実行結果とブロックスペシャルファイルのパスが一致しています。したがって,$DBDIR/AREAS/NEW/ADBUTBL03が,該当するファイルとなります。$DBDIR/AREAS/NEW/ADBUTBL03の下線部分を,データ用DBエリアADBUTBL03adbaddareaオペランドの-fオプションに指定してください。

      <修正後のファイルの例>

      adbaddarea -e -n \"ADBUIDX01\" -i 0K,1 -v "/dev/disk/by-id/wwn-0x60...0000"
      adbaddarea -e -n \"ADBUTBL01\" -i 0K,1 -v "/dev/disk/by-id/wwn-0x60...0001"
      adbaddarea -e -n \"ADBUTBL03\" -f \"AREAS/NEW/\" -i 0K,2\
                 -v "/dev/disk/by-id/wwn-0x60...0401",\
                    "/dev/disk/by-id/wwn-0x60...0402"

      下線部分の-fオプションを追加します。

  4. DBエリア追加・変更オプションファイルを作成する

    3.で作成したファイルを,追加するデータ用DBエリアごとに3つに分割して,DBエリア追加・変更オプションファイルを作成してください。

    adbaddarea -e -n \"ADBUIDX01\" -i 0K,1 -v "/dev/disk/by-id/wwn-0x60...0000"
    adbaddarea -e -n \"ADBUTBL01\" -i 0K,1 -v "/dev/disk/by-id/wwn-0x60...0001"
    adbaddarea -e -n \"ADBUTBL03\" -f \"AREAS/NEW/\" -i 0K,2\
               -v "/dev/disk/by-id/wwn-0x60...0401",\
                  "/dev/disk/by-id/wwn-0x60...0402"
手順(クラウドストレージ機能を使用している場合)
  1. DBエリア追加・変更オプションファイルを作成する

    暗号化対象のデータ用DBエリアを追加するときに使用するDBエリア追加・変更オプションファイルを作成してください。

    adbaddarea -e -n ADBUIDX01
    adbaddarea -e -n ADBUTBL01
    adbaddarea -e -n ADBUTBL03

    下線部分には,「データ用DBエリアを削除するときに使用するDBエリア追加・変更オプションファイルの作成」の2.で指定した削除対象のデータ用DBエリア名を指定します。

    この例の場合,追加するデータ用DBエリアが3つあるので,DBエリア追加・変更オプションファイルを3つ作成しています。

メモ

ここで作成したDBエリア追加・変更オプションファイルは,後ほどの作業で使用します。

(3) 表およびインデクスの定義情報を取得する

データ用DBエリアの再作成後に表やインデクスを再定義するため,表およびインデクスの定義情報と,表に対するアクセス権限の情報を次の手順で取得してください。

メモ

ここで取得した情報は,後ほどの作業で使用します。

手順

  1. 暗号化対象のデータ用DBエリアに格納されている表およびインデクスの一覧を取得する

    DBA権限を持っているHADBユーザで,「付録B.22 ディクショナリ表の検索」の「(15) DBエリアに格納されている表の表名を調べる場合」および「(16) DBエリアに格納されているインデクスのインデクス名を調べる場合」で説明している作業を実施してください。

  2. 表に対するアクセス権限の情報を取得する

    DBA権限を持っているHADBユーザでディクショナリ表を検索し,暗号化対象のデータ用DBエリアに格納されている表のアクセス権限の情報を取得してください。

    SELECT "GRANTOR","GRANTEE","OWNER","SELECT_PRIVILEGE","INSERT_PRIVILEGE",
           "UPDATE_PRIVILEGE","DELETE_PRIVILEGE","TRUNCATE_PRIVILEGE",
           "REFERENCES_PRIVILEGE", "IMPORT_TABLE_PRIVILEGE","REBUILD_INDEX_PRIVILEGE",
           "GET_COSTINFO_PRIVILEGE","EXPORT_TABLE_PRIVILEGE","MERGE_CHUNK_PRIVILEGE",
           "CHANGE_CHUNK_COMMENT_PRIVILEGE","CHANGE_CHUNK_STATUS_PRIVILEGE",
           "ARCHIVE_CHUNK_PRIVILEGE","UNARCHIVE_CHUNK_PRIVILEGE"
        FROM "MASTER"."SQL_TABLE_PRIVILEGES"
          WHERE "TABLE_SCHEMA"=? AND "TABLE_NAME"=?

    adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求には表のスキーマ名を,2番目の要求には表の表識別子を入力してください。入力するスキーマ名と表識別子は,1.の調査結果に出力されたTABLE_SCHEMA列とTABLE_NAME列のスキーマ名と表識別子を使用してください。

    上記のSELECT文の実行結果の各列に出力される情報を説明します。

    • GRANTOR

      アクセス権限を付与したHADBユーザの認可識別子が出力されます。

    • GRANTEE

      アクセス権限を付与されたHADBユーザの認可識別子が出力されます。

    • OWNER

      表の所有者であるHADBユーザの認可識別子が出力されます。

    • 上記以外の列

      HADBユーザが各種のアクセス権限を持っているかどうかの情報が出力されます。'G'が出力されている場合は,そのアクセス権限を付与権付きで持っています。'Y'が出力されている場合は,そのアクセス権限を持っています。'N'が出力されている場合は,そのアクセス権限を持っていません。

  3. 暗号化対象のデータ用DBエリアに格納されている表およびインデクスの定義情報を取得する

    DBA権限を持っているHADBユーザで,「付録B.22 ディクショナリ表の検索」の「(29) 実表の定義情報を調べる場合」および「(30) インデクスの定義情報を調べる場合」で説明している作業を実施してください。

    メモ
    • HADBでは,表およびインデクスの定義情報を出力する機能を提供していません。そのため,ディクショナリ表を検索して,表およびインデクスの定義情報を取得しておき,データ用DBエリアの再作成後に表およびインデクスを再定義できるようにしておく必要があります。

    • 表およびインデクスを定義したときの定義情報がある場合は,この作業を実施する必要はありません。

  4. 暗号化対象のデータ用DBエリアに格納されている表に定義されている全インデクスの定義情報を取得する

    DBA権限を持っているHADBユーザで,「付録B.22 ディクショナリ表の検索」の「(30) インデクスの定義情報を調べる場合」で説明している作業を実施してください。

    なお,3.で取得したインデクスの定義情報と重複している情報がある場合は,その情報を削除してください。

  5. 暗号化対象のデータ用DBエリアに格納されている表を基表とするビュー表の名称を取得する

    DBA権限を持っているHADBユーザで,「付録B.22 ディクショナリ表の検索」の「(9) 表名から表を使用する全ビュー表のビュー表名を調べる場合」で説明している作業を実施してください。

    なお,SELECT文の実行結果の重複排除をしてください。

  6. ビュー表のビューレベルを取得する

    DBA権限を持っているHADBユーザでディクショナリ表を検索してください。

    SELECT "TABLE_SCHEMA" AS "スキーマ名"
          ,"TABLE_NAME" AS "表識別子"
          ,"VIEW_LEVEL" AS "ビューレベル"
        FROM "MASTER"."SQL_VIEWS"
          WHERE "TABLE_SCHEMA" = ? AND "TABLE_NAME" = ?

    adbsqlコマンドで上記のSELECT文を実行した場合,?パラメタに対する入力データの入力要求があります。最初の入力要求には,5.で取得したビュー表のスキーマ名を,2番目の入力要求にはビュー表の表識別子を入力してください。

  7. コスト情報を収集している表の一覧を取得する

    DBA権限を持っているHADBユーザで,「付録C.9 システム表の検索」の「(1) コスト情報を収集した全実表の表名と収集日時を調べる場合」で説明している作業を実施してください。

(4) 表のデータをエクスポートする

暗号化対象のデータ用DBエリアに格納されている表のデータをエクスポートしてください。表がマルチチャンク表かどうかで手順が異なります。

メモ

次の手順の操作は,表の所有者が実行してください

(5) 暗号化対象のデータ用DBエリアを再作成する

次の手順で,暗号化対象のデータ用DBエリアを再作成してください。

手順

  1. 暗号化対象のデータ用DBエリアに格納されている表およびインデクスを削除する

    DROP TABLE文およびDROP INDEX文を実行して,暗号化対象のデータ用DBエリアに格納されている表およびインデクスを削除してください。

    なお,DROP TABLE文を実行する際,削除動作を指定しないでください。

    削除対象の表およびインデクスは,「(3) 表およびインデクスの定義情報を取得する」で情報を取得しています。

    メモ
    • 暗号化対象のデータ用DBエリアに格納されている表をDROP TABLE文(削除動作省略)で削除すると,その表のインデクスは自動的に削除されます。

    • 暗号化対象のDBエリアに,表は格納されていないがインデクスだけが格納されている場合は,そのインデクスはDROP INDEX文で削除してください。

  2. 暗号化対象のデータ用DBエリアを削除する

    adbmodareaコマンドを実行して,暗号化対象のデータ用DBエリアを削除してください。

    (2) DBエリア追加・変更オプションファイルを作成する」で作成したDBエリア追加・変更オプションファイルを使用してください。

    メモ

    1回のadbmodareaコマンドではデータ用DBエリアを1つしか削除できないため,削除するデータ用DBエリアの数だけadbmodareaコマンドを繰り返し実行してください。

  3. 暗号化対象のデータ用DBエリアを追加する

    adbmodareaコマンドを実行して,暗号化対象のデータ用DBエリアを追加してください。

    (2) DBエリア追加・変更オプションファイルを作成する」で作成したDBエリア追加・変更オプションファイルを使用してください。

    メモ

    1回のadbmodareaコマンドではデータ用DBエリアを1つしか追加できないため,追加するデータ用DBエリアの数だけadbmodareaコマンドを繰り返し実行してください。

(6) 表およびインデクスを再作成する

再作成したデータ用DBエリアに格納されていた表およびインデクスを再定義し,表にデータをインポートしてください。また,表に対するアクセス権限も付与してください。手順を次に示します。

手順

  1. 表を再定義する

    表の所有者がCREATE TABLE文を実行して,暗号化対象のデータ用DBエリアに格納していた表を再定義してください。「(3) 表およびインデクスの定義情報を取得する」で取得した表の定義情報を使用してください。

  2. インデクスを再定義する

    表の所有者がCREATE INDEX文を実行して,次のインデクスを再定義してください。「(3) 表およびインデクスの定義情報を取得する」で取得したインデクスの定義情報を使用してください。

    • 暗号化対象のデータ用DBエリアに格納していた表のインデクス

    • 暗号化対象のデータ用DBエリアに格納していたインデクス

    注※

    表は暗号化していないデータ用DBエリアに格納していて,インデクスだけが暗号化対象のデータ用DBエリアに格納されている場合が該当します。この場合,インデクスを再定義したあとに,インデクスを定義した表を処理対象表に指定してadbidxrebuildコマンドを実行し,インデクスを再作成してください。

  3. 表に対するアクセス権限を付与する

    1.で再定義した表に対するアクセス権限をGRANT文で付与してください。

    (3) 表およびインデクスの定義情報を取得する」で取得した,表に対するアクセス権限の情報を使用して,次の手順でアクセス権限を付与します。

    1. GRANTOR列の値 = OWNER列の値」かつ「GRANTOR列の値≠GRANTEE列の値」の行がある場合,表の所有者がGRANTEE列に表示されているHADBユーザにアクセス権限を付与します。各種アクセス権限を持っているかどうかを示す列の値によって,付与するアクセス権限が異なります。'G'が表示されている場合は,付与権付きでアクセス権限を付与します。'Y'が表示されている場合は,アクセス権限を付与します。'N'が表示されている場合は,アクセス権限を付与しません。

    2. 「a.でアクセス権限を付与されたHADBユーザ = GRANTOR列の値」の行がある場合,GRANTOR列に表示されているHADBユーザが,GRANTEE列に表示されているHADBユーザにアクセス権限を付与します。各種アクセス権限を持っているかどうかを示す列の値によって,付与するアクセス権限が異なります。'G'が表示されている場合は,付与権付きでアクセス権限を付与します。'Y'が表示されている場合は,アクセス権限を付与します。'N'が表示されている場合は,アクセス権限を付与しません。

    3. b.の作業を「b.でアクセス権限を付与されたHADBユーザ = GRANTOR列の値」の行が出てこなくなるまで繰り返します。

    4. a.~c.の作業をすべての表に対して実行してください。

  4. ビュー表を再作成する

    ALTER VIEW文を実行して,ビュー表を再作成してください。

    (3) 表およびインデクスの定義情報を取得する」の「5.暗号化対象のデータ用DBエリアに格納されている表を基表とするビュー表の名称を取得する」で調べたビュー表を再作成します。

    メモ

    (3) 表およびインデクスの定義情報を取得するの「6.ビュー表のビューレベルを取得する」で調べたビューレベルの値が低いビュー表から順に,ビュー表の所有者がビュー表を再作成してください。

  5. 表にデータをインポートする

    adbimportコマンドを実行して,再定義した表にデータをインポートしてください。

  6. コスト情報を収集する

    adbgetcstコマンドを実行して,表のコスト情報を収集してください。

    1.で再定義した表のうち,コスト情報を収集していた表のコスト情報を収集します。コスト情報を収集していた表の一覧は,「(3) 表およびインデクスの定義情報を取得する」で取得しています。

    メモ

    収集したコスト情報は,データ用DBエリアの再作成前のコスト情報とは異なる可能性があります。そのため,データ用DBエリアの再作成前とはSQL文のアクセスパスが変わる可能性があります。