Отбрасывает менеджер связей данных DB2 из списка зарегистрированных менеджеров связей данных DB2 для заданной базы данных.
Авторизация
Одни из следующих:
Синтаксис команды
>>-DROP DATALINKS MANAGER FOR----+-DATABASE-+--имя_базы_данных--> '-DB-------' >----USING---имя-----------------------------------------------><
Параметры команды
Примеры
Пример 1
Отбрасывание менеджера связей данных DB2 micky.almaden.ibm.com из базы данных TEST в экземпляре validate, находящейся на хосте bramha.almaden.ibm.com, в то время как в некоторых таблицах базы есть связи с micky.almaden.ibm.com. При отбрасывании менеджера связей данных DB2 крайне важно выполнить следующие действия.
connect to test in exclusive modeЭто должно быть единственное соединение с test под этим 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 не допускает пустых значений, можно использовать:
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Это удалит связи всех файлов, которые все еще связаны с базой данных TEST, на случай, если пользователь забыл удалить их до перехода к шагу 3. Если на micky.almaden.ibm.com есть информация резервного копирования (например, файлы архивов, метаданные) для файлов, ранее связанных с базой TEST, эта команда запустит чистку мусора для этой информации. Фактическое удаление связей и чистка мусора будут выполняться асинхронно.
Пример 2
Удаление значений DATALINK, являющихся связями с файлами менеджера связей данных DB2 micky.almaden.ibm.com, в то время как менеджер уже отброшен из базы данных TEST. Это может потребоваться, если при отбрасывании micky.almaden.ibm.com не выполнялись шаги из Примера 1. Операторы SQL DELETE, SELECT и UPDATE не сработают для таких значений DATALINK (SQL0368). Пользователь должен выполнить операцию согласования для всех таблиц, содержащих такие значения DATALINK. Все значения DATALINK, которые были связями с micky.almaden.ibm.com, будут заменены на NULL или значение DATALINK нулевой длины. Все строки, содержащие такие значения, будут вставлены в таблицу исключений (если она была задана). Однако значение DATALINK не будет содержать имени-префикса. Имя-префикс в оригинальном значении DATALINK больше не может быть получено системой, поскольку micky.almaden.ibm.com отброшен. Например, если оригинальное значение 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. Если на micky.almaden.ibm.com есть информация резервного копирования (например, файлы архивов, метаданные) для файлов, ранее связанных с базой TEST, эта команда запустит чистку мусора для этой информации. Фактическое удаление связей и чистка мусора будут выполняться асинхронно.
Пример 3
Несколько экземпляров менеджера связей данных DB2 micky.almaden.ibm.com для базы данных TEST. В этом сценарии показано, как можно перерегистрировать менеджер связей данных 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Пользователь увидит следующее:
SQL0368 Менеджер связей данных 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возвратит:
SQL0368 Менеджер связей данных DB2 "MICKY.ALMADEN.IBM.COM" не зарегистрирован в базе данных. SQLSTATE=55022.так как выбираемое значение - связь с экземпляром micky.almaden.ibm.com, отброшенным ранее на шаге 3.
Замечания по использованию
Последствия выполнения команды DROP DATALINKS MANAGER нельзя отменить. При использовании команды DROP DATALINKS MANAGER чрезвычайно важно следовать шагам из Примера 1.
Эта команда действует только после того, как от базы данных отключатся все прикладные программы.
После успешного завершения команды пользователю сообщается (DB210201I), что Менеджер связей данных DB2 не выполняет операций для этих связей. До того, как отбросить менеджер связей данных DB2, пользователь должен убедиться, что в базе данных нет связей с файлами на этом менеджере связей данных DB2. Если после отбрасывания менеджера связей данных DB2 в базе данных остаются связи, пользователь должен удалить их при помощи утилиты согласования. Утилита согласования заменит эти связи на NULL (если столбец DATALINK допускает пустые значения) или на значение DATALINK нулевой длины.
Файлы, соответствующие связям между базой данных и отброшенным менеджером связей данных DB2, остаются в связанном состоянии. Это значит, что для них недоступны такие операции, как чтение, запись, переименование, удаление, изменение разрешений или владельцев.
При чистке мусора эта команда не удаляет архивированные копии файлов удаленных связей на менеджере связей данных DB2. Однако пользователи могут в явном виде запускать операцию удаления связей и чистку мусора при помощи команды dlfm drop_dlm на менеджере связей данных DB2.
Перед отбрасыванием менеджера связей данных DB2 рекомендуется сделать резервную копию базы данных. Кроме того, убедитесь, что для всех зарегистрированных репликаций реплицированы все изменения, затрагивающие этот менеджер связей данных DB2.
Если до отбрасывания менеджера связей данных DB2 из базы данных была сделана резервная копия, и эта копия используется для восстановления после отбрасывания этого менеджера связей данных DB2, операция восстановления или повтора транзакций может перевести некоторые таблицы в состояние отложенного согласования связей данных (DRP).