DB2 データ・リンク・マネージャーを、指定されたデータベースの 登録済み DB2 データ・リンク・マネージャーのリストからドロップします。
権限
以下のいずれかとなります:
コマンド構文
>>-DROP DATALINKS MANAGER FOR----+-DATABASE-+--dbname---USING---> '-DB-------' >----name------------------------------------------------------><
コマンド・パラメーター
例
例 1
いくつかのデータベース表に micky.almaden.ibm.com へのリンクがあるときに、 ホスト bramha.almaden.ibm.com に存在するインスタンス妥当性検査の下で、 データベース TEST から DB2 データ・リンク・マネージャー micky.almaden.ibm.com を ドロップします。DB2 データ・リンク・マネージャーをドロップするときは、 以下のステップを行うことが極めて重要です。
connect to test in exclusive modeこの接続が、上記のユーザー ID を使用してテストを行う唯一の接続であることを 確実にします。 これにより、リンクが新たに作成されるのを防ぎます。
select tabname, colname from syscat.columns where substr(dl_features, 2, 1) = 'F'
select count(*) from t where dlurlserver(t.c) = 'MICKY.ALMADEN.IBM.COM'
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'
commit
drop datalinks manager for db test using node micky.almaden.ibm.com
terminate
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 は発生しません。
add datalinks manager for db test using node micky.almaden.ibm.com port 14578
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
drop datalinks manager for db test using micky.almaden.ibm.com
connect to test select * from t terminateユーザーに対しては以下が表示されます。
SQL0368N DB2 データ・リンク・マネージャー "MICKY.ALMADEN.IBM.COM" がデータベースに登録されていません。SQLSTATE=55022
add datalinks manager for db test using node micky.almaden.ibm.com port 14578
connect to test insert into t values(2, dlvalue('file://micky.almaden.ibm.com/pictures/tahoe.jpg')) commit
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) 状態になる可能性があります。