リリース情報


10.15 DROP DATALINKS MANAGER (新規コマンド)

DROP DATALINKS MANAGER

DB2 データ・リンク・マネージャーを、指定されたデータベースの 登録済み DB2 データ・リンク・マネージャーのリストからドロップします。

権限

以下のいずれかとなります:

コマンド構文

>>-DROP DATALINKS MANAGER FOR----+-DATABASE-+--dbname---USING--->
                                 '-DB-------'
 
>----name------------------------------------------------------><
 

コマンド・パラメーター

DATABASE dbname
データベース名を指定します。

USING name
LIST DATALINKS MANAGER コマンドによって表示された通りに DB2 データ・リンク・マネージャー・サーバーの名前を指定します。

例 1

いくつかのデータベース表に micky.almaden.ibm.com へのリンクがあるときに、 ホスト bramha.almaden.ibm.com に存在するインスタンス妥当性検査の下で、 データベース TEST から DB2 データ・リンク・マネージャー micky.almaden.ibm.com を ドロップします。DB2 データ・リンク・マネージャーをドロップするときは、 以下のステップを行うことが極めて重要です。

  1. データベース TEST のデータベース・バックアップを取る。
  2. micky.almaden.ibm.com へのリンクがある場合は、そのリンクを解除する。
    1. SYSADM_GROUP に属するユーザー ID でログオンして、データベース TEST への 排他モード接続を取得する。
         connect to test in exclusive mode
      
      この接続が、上記のユーザー ID を使用してテストを行う唯一の接続であることを 確実にします。 これにより、リンクが新たに作成されるのを防ぎます。
    2. すべての FILE LINK CONTROL DATALINK 列のリストと、 その列を含むデータベース内の表を取得する。

         select tabname, colname from syscat.columns where substr(dl_features, 2, 1) = 'F'
      
    3. リスト内の FILE LINK CONTROL DATALINK 列ごとに SQL SELECT を実行して、 micky.almaden.ibm.com へのリンクが存在するかどうかを判別する。 たとえば、表 t の DATALINK 列 c の場合、SELECT ステートメントは 次のようになります。

         select count(*) from t where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM'
      
    4. このようなリンクを含む FILE LINK CONTROL DATALINK 列ごとに SQL UPDATE を実行して、 micky.almaden.ibm.com にリンクされている値をリンク解除する。 たとえば、表 t の DATALINK 列 c の場合、UPDATE ステートメントは次のようになります。

         update t set t.c = null where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM'
      
      t.c が NULL 可能でない場合は、代わりに以下を使用できます。

         update t set t.c = dlvalue('') where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM'
      
    5. この SQL UPDATE をコミットする。

      commit
      
  3. DROP DATALINKS MANAGER コマンドを実行する。

       drop datalinks manager for db test using node micky.almaden.ibm.com
    
  4. 変更を有効にしてデータベースへの他の接続を許可するために、 排他モード接続を終了する。

       terminate
    
  5. micky.almaden.ibm.com にある TEST のバックアップ情報のリンク解除処理と ガーベッジ・コレクションを開始する。DB2 データ・リンク・マネージャー管理者として、 micky.almaden.ibm.com で次のコマンドを実行してください。

       dlfm drop_dlm test validate bramha.almaden.ibm.com
    
    これにより、ステップ 3 を呼び出す前のリンク解除をユーザーが忘れた場合に備え、 データベース TEST にまだリンクされているすべてのファイルがリンク解除されます。 前にデータベース TEST にリンクされていたファイルのバックアップ情報 (たとえば、アーカイブ・ファイル、メタデータなど) が micky.almaden.ibm.com にある場合、 このコマンドはバックアップ情報のガーベッジ・コレクションを 開始します。実際のリンク解除とガーベッジ・コレクションは非同期で実行されます。

例 2

micky.almaden.ibm.com という DB2 データ・リンク・マネージャーが データベース TEST からすでにドロップされているときに、 その DB2 データ・リンク・マネージャーのファイルへのリンクである DATALINK 値を 削除します。これは、micky.almaden.ibm.com のドロップで 例 1 のステップが行われなかった場合に必要となる可能性があります。 このような DATALINK 値の場合には、 SQL DELETE、SELECT、および UPDATE ステートメントは成功しません (SQL0368)。 ユーザーは、このような DATALINK 値を含む各表に対して、 調整操作を実行しなければなりません。 micky.almaden.ibm.com へのリンクである各 DATALINK 値は、 ヌルまたはゼロ長の DATALINK 値に更新されます。 このような値を含む行は例外表に挿入されます (例外表が指定されている場合)。 ただし、DATALINK 値には接頭部名は組み込まれません。 micky.almaden.ibm.com がドロップされているため、オリジナルの DATALINK 値の接頭部名は この時点では取得できません。 たとえば、オリジナルの DATALINK 値が 'http://host.com/dlfs/x/y/a.b' で 接頭部名が '/dlfs' の場合、例外表の DATALINK 値には 'http://host.com/x/y/a.b' が 含まれます。 これらの DATALINK 値によって参照させるファイルは、 DB2 データ・リンク・マネージャーではリンクされたままの状態になります。 これらのファイルのリンク解除処理を開始するには、 micky.almaden.ibm.com に対して dlfm drop_dlm コマンドを実行してください。 前にデータベース TEST にリンクされていたファイルのバックアップ情報 (たとえば、アーカイブ・ファイル、メタデータなど) が micky.almaden.ibm.com にある場合、 このコマンドはバックアップ情報のガーベッジ・コレクションを開始します。実際のリンク解除とガーベッジ・コレクションは非同期で実行されます。

例 3

1 つのデータベース・テストに対して複数の DB2 データ・リンク・マネージャー micky.almaden.ibm.com を作成します。このシナリオでは、DB2 データ・リンク・マネージャーをドロップ後に再登録できることと、 それを新しい完全な DB2 データ・リンク・マネージャーとして扱えることを説明します。 以下のステップは、考えられるシナリオの唯一の解説です。 micky.almaden.ibm.com をドロップするために推奨通りに例 1 のステップを行った場合には、 micky.almaden.ibm.com の古い実体へのリンクはすでに存在しません。 つまり、下記のステップ 7 のエラー SQL0368 は発生しません。

  1. micky.almaden.ibm.com をデータベース TEST に登録する。
       add datalinks manager for db test using node micky.almaden.ibm.com port 14578
    
  2. micky.almaden.ibm.com のファイルへのリンクを作成する。

       connect to test
       create table t(c1 int, c2 datalink linktype url file link control mode db2options)
       insert into t values(1, dlvalue('file://micky.almaden.ibm.com/pictures/yosemite.jpg'))
       commit
       terminate
    
  3. micky.almaden.ibm.com をデータベース TEST からドロップする。
       drop datalinks manager for db test using micky.almaden.ibm.com 
    
  4. DATALINK 値を選択する。

       connect to test
       select * from t
       terminate
    
    ユーザーに対しては以下が表示されます。

       SQL0368N  DB2 データ・リンク・マネージャー  "MICKY.ALMADEN.IBM.COM"
          がデータベースに登録されていません。SQLSTATE=55022
    
  5. micky.almaden.ibm.com をもう一度データベース TEST に登録する。
       add datalinks manager for db test using node micky.almaden.ibm.com port 14578
    
  6. DATALINK 値をさらに追加する。

       connect to test
       insert into t values(2, dlvalue('file://micky.almaden.ibm.com/pictures/tahoe.jpg'))
       commit
     
    
  7. DATALINK 値を選択する。

       select c2 from t where c1 = 2
    
    これは、選択されている値が 現在登録されている micky.almaden.ibm.com の実体へのリンクのため成功します。

       select c2 from t where c1 = 1
    
    以下が返されます。

       SQL0368N  DB2 データ・リンク・マネージャー  "MICKY.ALMADEN.IBM.COM"
          がデータベースに登録されていません。SQLSTATE=55022
    
    これは、 選択されている値が、上記のステップ 3 でドロップされた micky.almaden.ibm.com の実体への リンクであることが原因です。

使用上の注意

DROP DATALINKS MANAGER コマンドによる影響はロールバックできません。 DROP DATALINKS MANAGER コマンドを使用するときは、例 1 で示したステップを行うことが 極めて重要です。

このコマンドは、データベースからすべてのアプリケーションが 切断された後にのみ有効です。

コマンドが正常に完了すると、DB2 データ・リンク・マネージャーで何も処理が 行われていないことがユーザーに対して通知されます (DB210201I)。 DB2 データ・リンク・マネージャーをドロップする前に、 ユーザーは、その DB2 データ・リンク・マネージャーのファイルへのリンクが データベースに含まれていないことを確認する必要があります。 DB2 データ・リンク・マネージャーのドロップ後もデータベースにリンクが存在した場合、 ユーザーはそれを削除するために調整ユーティリティーを実行しなければなりません。 調整ユーティリティーはこれらのリンクをヌルに設定するか (DATALINK 列が NULL 可能な場合)、 DATALINK 値をゼロ長にします。

データ・リンク・マネージャーとドロップされた DB2 データ・リンク・マネージャーとの間の リンクに対応するファイルは、リンクされた状態のままです。 つまり、これらのファイルには、読み取り、書き込み、名前変更、削除、許可の変更、 または所有権の変更などの操作ではアクセスできません。

DB2 データ・リンク・マネージャーでリンク解除されたファイルの アーカイブされたコピーに対するガーベッジ・コレクションは、このコマンドでは行われません。 ただしユーザーは、DB2 データ・リンク・マネージャーで dlfm drop_dlm コマンドを使用して、 リンク解除処理とガーベッジ・コレクションを明示的に開始することができます。

DB2 データ・リンク・マネージャーをドロップする前に、 データベースのバックアップを取っておくことをお勧めします。 さらに、すべての複製サブスクリプションによって DB2 データ・リンク・マネージャーに関連する すべての変更が複製されていることを確認してください。

DB2 データ・リンク・マネージャーをデータベースからドロップする前に バックアップを取り、そのバックアップ・イメージを DB2 データ・リンク・マネージャーの ドロップ後の復元に使用した場合には、復元またはロールフォワード処理によって 特定の表がデータ・リンク調整保留 (DRP) 状態になる可能性があります。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]