27_SH43-0144-00 (1038594), страница 81
Текст из файла (страница 81)
Резервные копии базы данных - активные, неактивные и с истекшим срокомРисунок 20. Последовательность файлов журнала с истекшим сроком годностиОсобенности Менеджера связей данных DB2В следующих разделах приводится информация для таблиц со столбцамиDATALINK. Полное описание столбцов DATALINK смотрите в описанииоператора CREATE TABLE в справочнике SQL Reference.Особенности восстановления после отказовКогда прикладная программа выдает запросы SQL, вовлекающие в работусерверы связей данных, на которых работает DB2 Data Links Manager (используястолбцы DATALINK с атрибутом FILE LINK CONTROL), менеджер баз данныхраспределяет работу среди серверов связей данных. Он также следит засерверами связей данных, которые участвуют в транзакции.
Когда прикладнаяпрограмма требует принять транзакцию, менеджер баз данных выполняетГлава 8. Восстановление базы данных379принятие, используя протокол двухфазного принятия. На первой фазе менеджербаз данных заносит в журнал запись PREPARE и передает требование PREPAREвсем серверам связей данных. Серверы связей данных отвечают одним изследующих способов:v YES - сервер связей данных готов к принятиюv NO - из-за ошибки сервер связей данных не готов к принятию.Первая фаза считается успешной, если все серверы связей данных ответили“YES”.Обработка на второй фазе зависит от результата первой фазы.
Если хотя быодин сервер связей данных ответил “NO”, менеджер баз данных передает всемучаствующим в транзакции серверам связей данных требование ABORT.Выполняется откат транзакции, а прикладной программе возвращаетсясообщение об ошибке SQL0903N с кодом причины “03”. В противном случаеменеджер баз данных производит принятие транзакции, как он это делаетобычно без участия серверов связей данных. В конце обработки транзакции онпередает требование COMMIT всем участвующим в ней серверам связей данных.Если на сервере связей данных произошла ошибка, оставившая какие-либотранзакции в состоянии PREPARED, такие транзакции называютсянеоднозначными транзакциями. Менеджер баз данных отвечает за отслеживаниерезультата таких транзакций и за их периодическое разрешение на сервересвязей данных. Как только менеджер баз данных определяет, что ошибка,возможно, создала на сервере связей данных неоднозначные транзакции, онпомечает этот сервер, как нуждающийся в восстановлении после отказа.
Покасервер находится в этом состоянии, запрещены все требования SQL,вовлекающие его в работу. Прикладной программе, выдавшей такое требованиеSQL, возвращается сообщение SQL0357N с кодом причины “03”.Во время обработки RESTART, ACTIVATE DATABASE или первой операцииCONNECT менеджер баз данных пытается связаться с каждым изсконфигурированных серверов связей данных и разрешить неоднозначныетранзакции путем отказа от них или их принятия. Состояние сервера связейданных помечается как доступное, если разрешены все его неоднозначныетранзакции, за исключением тех, которые неоднозначны и на самом менеджеребаз данных. В доступном состоянии разрешены требования SQL, затрагивающиеэтот сервер связей данных. В конце этой попытки разрешения неоднозначныхтранзакций, если менеджер баз данных определяет, что на сервере связей данныхпотенциально остались неоднозначные транзакции, он помечает этот сервер какнуждающийся в восстановлении после отказа.
Это, например, может произойти,если сервер связей данных недоступен во время обработки RESTART, ACTIVATEDATABASE или первого операции CONNECT, а также в том случае, когда серверсвязей данных во время этой обработки обнаружил ошибку.380Руководство администратора: РеализацияКогда сконфигурированный для базы данных сервер связей данных находится всостоянии, требующем восстановления после отказа, менеджер баз данных неразрешает требования SQL, затрагивающие конкретно этот сервер связейданных. Требования SQL, затрагивающие остальные данные в базе данных,по-прежнему разрешены. Менеджер баз данных запускает процесс, которыйасинхронно пытается выполнить восстановление после отказа на всех серверахсвязей данных, на которых это необходимо.
Когда этот процесс успешновыполнит восстановление после отказа, состояние сервера связей данныхпомечается как доступное, тем самым разрешая дальнейшие требования SQL,затрагивающие этот сервер.Особенности утилиты резервного копированияDB2 проверяет, что ко времени завершения работы утилиты резервногокопирования для связанных файлов при работе Менеджера связей данных DB2на серверах связей данных также сделана резервная копия.
(Утилита резервногокопирования может быть запущена как без отключения, так и в автономномрежиме, а образ резервной копии может относиться как к базе данных, так и ктабличному пространству.) Дальнейшее описание касается только файлов,указанных в столбцах DATALINK, у которых для параметра RECOVERY заданоYES. (Для файлов, указанных в столбцах DATALINK с RECOVERY=NO,резервная копия не делается.)||||||||||Когда на файлы есть ссылки, серверы связей данных планируют их асинхронноекопирование на архивный сервер, например, TSM, или на диск. При работеутилиты резервного копирования DB2 проверяет, что скопированы всевнесенные в расписание для копирования файлы. В начале резервногокопирования DB2 также проверяет, что запущены все серверы связей данных,указанные в файле конфигурации DB2.
Если у сервера связей данных есть одинили несколько связанных файлов, он должен быть доступен до самого концаоперации резервного копирования. Если сервер связей данных становитсянедоступным до окончания операции резервного копирования, эта операцияобъявляется незавершенной.|||||||||Когда ссылка на файл удаляется, сам файл либо удаляется, либо возвращается кпредыдущему режиму разрешений в зависимости от значения, указанного дляпараметра ON UNLINK.
Успешная операция резервного копирования можетпривести к тому, что серверы связей данных сотрут архивные версии файлов насервере архивирования (на диске или TSM). Параметр конфигурации базыданных num_db_backups указывает число резервных копирований базы данныхDB2 до удаления архивированных версий файлов (на которые были удаленыссылки). Дополнительную информацию об этом параметре конфигурациисмотрите в книге Руководство администратора: Производительность.При удалении файлов, на которые удалены ссылки, информация об этих файлахтакже удаляется из регистрационных таблиц сервера связей данных.Глава 8. Восстановление базы данных381Особенности утилиты восстановления и повтора транзакцийПриведенная ниже информация касается случая, когда есть столбцы DATALINK,определенные для таблицы с опцией RECOVERY=YES.
Если у таблицы естьстолбец DATALINK, определенный с опцией RECOVERY=NO, по окончаниюоперации восстановления эта таблица переводится в состояниеDatalink_Reconcile_Pending (ожидание синхронизации Datalink).Дополнительную информацию смотрите в разделе “Синхронизация связейданных” на стр. 390.Во время операций восстановления из резервной копии таблицы со столбцамиDATALINK могут быть переведены в одно из следующих состояний.v Datalink_Reconcile_Not_Possible (синхронизация Datalink невозможна)Когда таблица находится в состоянии Datalink_Reconcile_Not_Possible(синхронизация Datalink невозможна), она без ограничений доступна дляработы со всеми столбцами, кроме столбцов DATALINK. Когда столбецDATALINK затрагивается оператором SELECT, выдается предупреждение.
Вотношении столбцов DATALINK можно выполнять вызовы UPDATE (снекоторыми ограничениями - подробности смотрите в разделе “Выводтаблицы из состояния Datalink_Reconcile_Not_Possible (синхронизация Datalinkневозможна)” на стр. 389). Нельзя выполнять операторы INSERT и DELETE,поскольку они затрагивают столбец DATALINK.v Datalink_Reconcile_Pending (ожидание синхронизации Datalink)Когда таблица находится в состоянии Datalink_Reconcile_Pending (ожиданиесинхронизации Datalink), она без ограничений доступна для работы со всемистолбцами, кроме столбцов DATALINK.
Когда столбец DATALINKзатрагивается оператором SELECT, выдается предупреждение. Нельзявыполнять любые операторы DML, такие как UPDATE, INSERT или DELETE.Информация об этих состояниях отображается в файле db2diag.log при работеутилиты восстановления из резервной копии или повтора транзакций. Дляполучения этой информации можно также использовать команду db2dart.Если вы восстанавливаете из резервной копии базу данных или табличноепространство и не указали опцию WITHOUT DATALINK, чтобы эта операциявосстановления прошла успешно, должны соблюдаться следующие условия:v Все серверы связей данных, содержащие данные DATALINK, должны бытьдоступны.v Все серверы связей данных, записанные в файле резервной копии, должныбыть доступными.v Информация о всех столбцах DATALINK, записанных в файл резервнойкопии, должна существовать в соответствующих регистрационных таблицахсерверов связей данных.Если не вся информация о столбцах DATALINK записана в регистрационныетаблицы, таблица, в которой отсутствует информация о столбце DATALINK,382Руководство администратора: Реализацияпосле завершения операции восстановления из резервной копии (или операцииповтора транзакций) переводится в состояние Datalink_Reconcile_Not_Possible(синхронизация Datalink невозможна).|||||||Если резервная копия не записана в регистрационные таблицы, это означает,что предоставленный файл резервной копии более ранний, чем значение дляnum_db_backups, и уже был помечен для “чистки мусора”.