Этот сайт посвящается администрированию баз данных OpenEdge Progress.
Не корысти ради, а познания для!

С уважением,
Валерий Башкатов
Сайт разработан при участии компании Progress Technologies, официального дистрибьютора Progress Software Corp. на территории стран СНГ и Латвии.

RSS RSS подписка на обновления сайта

Поиск по сайту

Лучшие материалы

Orphus System
На сайте функционирует система коррекции ошибок. Обнаружив неточность в тексте, выделите её и нажмите Ctrl+Enter



Результаты опроса: Нужны ли книги по Progress OpenEdge на русском языке? (опрос проводился с мая 2009 по ноябрь 2010)

Да, нужны. Потому что будет легче понять материал - 268
Нет, не нужны. Достаточно материалов на английском языке - 10
Не знаю, мне всё равно - 6

А знаете ли вы что..



Защита данных - After-imaging


After-imaging

Основы баз данных OpenEdge
Защита данных
   Стратегия резервного копирования (backup)
   Востановление базы данных
   After-imaging
     Области и екстенты After-image
     Оценка необходимого места для использования After-imaging
     Создание областей After-image
     Активирование After-imaging в Offline
     Активирование After-imaging в Online
     Управление after-image файлами
        Мониторинг статусов AI файлов
        Переключение на новый AI файл
        Архивирование AI файлов
           Планирование
           Выполнение копирования
           Защита копии
           Извлечение AI блоков
        Получение доступного AI файла для использования
     Утилиты AI File Management
        Архивация AI файлов в указанное место расположение
        Активирование автоматического режима AI File Management
        Мониторинг и установка параметров Ai File Management
        Архивные экстенты
        Журнал архива
     Добавление и изменений AI экстентов
     Выполнение наката (roll-forward recovery)
     Последовательность After-image
     Деактивация after-imaging
   Обеспечение безопасности
   Auditing
   Репликация данных
   Failover Clusters
Поддержка и мониторинг базы данных
Команды запуска и останова
Параметры запуска баз данных
Утилиты OpenEdge RDBMS
Виртуальные системные таблиц (VST)


After-imaging позволяет восстановить базу данных когда она будет повреждена или потеряна. Когда этот механизм активирован, движок базы данных записывает описания всех изменений в базе данных в after-image (AI) файлы. Эти файлы используются для последовательного наката на восстановленную из резервной копии базу данных, тем самым, исключая потерю транзакций, совершенных с момента формирования последней резервной копии, до момента, когда база оказалась поврежденной или потерянной.


Области и екстенты After-image

AI области определяются в структурном файле базы данных (.st). Можно создать как одну, так и множество областей AI, так же размещать их можно как на одном, так и на многочисленных дисках. Если имеется более одной AI области, вы без проблем можете выполнять online копирование при активированном After - imaging. Независимо от того, сколько AI областей определено, каждая такая область состоит только из одного экстента. Перед тем как определять количество AI экстентов, рассмотрите  следующее:
  • Движок базы данных использует AI области, определенные в структурном файле. При определении областей, можно размещать более чем одну область на диск. Тем не менее, не рекомендуется размещать их на диске, на котором расположены файлы базы данных (DB) и файлы before-image (BI).
  • Как для экстентов с фиксированным размером, так и для экстентов с переменным размером, движок базы одинаково переключает экстенты, если текущий заполнен, на следующий пустой экстент. Если определяется три экстента фиксированного размера, в течение дня, вы можете использовать для заполнения 1 экстент, а второй пустой использовать при необходимости переключения. Третий экстент также остается пустым, на случай, если активность базы возрастает, увеличивая количество транзакций, и используется при заполнении второго.

Движок базы данных использует Ai области последовательно, в порядке описания их в структурном файле. Области AI имеют расширение “.an”, где n это порядковый номер области. После того как последняя область будет заполнена, движок переключится на первую область, если конечно она к этому времени уже пустая. Переключение экстентов, это действие по переходу от использования одной области до использования другой. Это механизм наглядно показан на рисунке 7-1.


Рисунок 7-1 Переключение AI областей

Перед переключением, необходимо проверять статус экстента, чтобы не пытаться использовать несуществующий файл.

Как и файлы базы данных и BI файлы, AI экстенты могут быть двух типов:
  • Фиксированного размера
  • Переменного размера.

Экстенты фиксированного размера

Это экстенты, размер которых, предварительно зафиксирован и отформатирован на диске. Он позволят точно определять размеры экстентов на диске, и определяется в структурном файле.

Экстенты переменной длины

Такие экстенты не имеют ограничения по размеру. Они заполняются, пока весь диск не заполнится, или поеп вы не скопируете базу данных или не используете команду RFUTIL AIMAGE NEW. Первоначальный размер задается автоматически равным 128К. Вы можете создать более чем один экстент для одной базы данных.


Оценка необходимого места для использования After-imaging

Перед активацией After-imaging очень важно правильно оценить необходимое дисковое пространство, позволяющее содержать все ai – файлы базы данных. Так как, например, если вы используете экстенты переменной длины, а свободное дисковое пространство закончится и при этом не возможно будет переключиться на пустой доступный экстент, база данных будет вынуждена остановиться, до вмешательства администратора. Подобный вариант можно предотвратить, если при запуске базы использовать параметр старта after-image stall (-aistall). Если этот параметр активирован, при возникновении такой ситуации, база приостановит свою деятельность, и отправит сообщении о недостаточности места в виде ошибки в лог база данных.

Для определения необходимого дискового пространства, воспользуйтесь отчетом BI Log Activity Display утилиты PROMON, для определения количества записей в BI за промежуток времени. Информация, записываемая в BI файлы, тесно связана с файлами AI. Следовательно, статистика PROMON BI Bytes written это то же самое, что и если бы это была статистика по AI файлам.

Измерьте статистику BI Bytes written несколько раз. Так как эти значения могут меняться в зависимости от периода работы, загрузки и активности в системе, поэтому за основу можно взять максимальное значение самого закруженного дня. Если нагрузка имеет тенденцию возрастать, увеличьте доступное пространство для AI файлов. Помните, лучше иметь запас свободного пространства, чем потом тратить время на восстановление.

Другой путь расчета размеров AI файлов, это использование Before-Image Cluster Size из утилиты PROMON окна BI Log Activity Display и Checkpoints из окна Activity Display. Если вы хотите, чтобы ai файл содержал все изменения в течение двух часов, определите, сколько контрольных точек (checkpoints) было в течение этих двух часов при максимальной нагрузке. Количество checkpoints умноженное на размер BI кластера (BI Cluster Size) равняется минимальному размеру AI экстента, необходимого для хранения изменений. Например, если в течение двух часов было четыре контрольных точки и размер кластера 0,5Mb, значит размер ai файла, для хранения двух часовых изменений, должен быть, по крайней мере, 2 Mb.

После того как были установлены размеры AI областей, необходимо постоянно следить за ними, чтобы обеспечивать необходимое свободное пространство для записи в экстенты.


Создание областей After-image

Создать AI области можно с помощью утилиты PROSTRCT и структурного файла. При создании новой базы используется команда PROSTRCT CREATE, а для добавления ai областей в существующую базу – PROSTRCT ADD.

Добавление ai областей для новой базы:
 
1.    Создайте структурный файл
  • Определите экстенты данных
  • Определите BI экстенты
  • Определите необходимой количество ai экстентов фиксированной длины. Экстенты определяются четырьмя признаками. Их описание находится в таблице:
 Признак  Описание
 Storage area Type  Определяет тип файла. Тип “a” определяет, что этот файл – ai экстент
 Extent path and file name  Определяет путь к файлу экстента. Введите путь по правилам текущей операционной системы. Если вы не установите расширение, OE автоматически проставит его по правилу “.an”
 Extent type  Определяет тип экстента – переменной или фиксированной длины. Экстент фиксированной длины определяется как – f.
 Extent size  Определяет размер экстента в килобайтах. Минимальное значение – 16 K.  Размер экстента должен быть кратным 16K для всех операционных систем. Если будет определен другой размер, PROSTRCT выдаст предупреждение и автоматически округлит значение до следующего кратного 16 K. Максимальный размер ограничен возможностями операционной системы и размерами диска.


Следующий пример показывает пример определения ai экстента фиксированной длины:

a db/mary/apdir/test.a1 f 2048
  • Определите необходимое количество ai экстентов переменной длины. Вам необходимо указать только первые два признака в определении: тип экстента и путь к файлу экстента. В отличие от BI экстентов, вы можете определять сколько угодно ai экстентов переменной длины для базы данных.
 
2.    Создайте базу данных, используя для формирования структуры одну из команд PROSTRCT, PROCOPY или PROREST.

Добавление AI областей в существующую базу:

1.    Создайте структурный файл, содержащий информацию о добавляемых экстентах.
2.    Используйте PROSTRCT ADD совместно с созданным структурным файлом, для добавления экстентов.
3.    Используйте PROSTRCT LIST для обновления st-файла базы данных.

 

 Активирование After-imaging в Offline

Для активации after-imaging необходимо использовать классификатор AIMAGE BEGIN утилиты RFUTIL. Для использования after-imaging необходимо выполнить полную резервную копию, т.к. ai файлы и полная копия используются совместно для восстановления базы данных.

Для активации в offline необходимо:

1.  Создать ai области для базы
2.  Сформировать резервную полную копию
3.  После копирования использовать следующую команду для активации

rfutil db-name -C aimage begin

Если база данных будет изменена после формирования копии, и до активации after-imaging, RFUTIL отобразит сообщение об ошибке и не выполнит активацию.

 

Активирование After-imaging в Online

Используйте утилиту PROBKUP с классификаторами online и enable ai для активации after-imaging при запущенной базе данных. Время завершения копирования будет являться базовой точкой для наката ai файлов.

Для активации необходимо:
 
1.  Создать области  ai в базе данных
2.  Одновременно скопируйте базу данных и активируйте after-imaging, используя следующую команду:

probkup online dbname output-device enableai

В данном случае возможны дополнительные классификаторы, для их использования обратитесь в соответствующий раздел.


Управление after-image файлами

Многое в управлении after-imaging может работать в автоматическом режиме, но, тем не менее, важно понимать, как эти процедуры работают, и как их можно выполнять вручную. Далее подробно описывается каждая процедура при работе в ручном режиме.


Мониторинг статусов AI файлов

Статус ai файлов может принимать следующие значения:
 
  • Empty – ai файл пустой и доступен для использования
  • Busy – текущий используемый ai экстент
  • Full – когда текущий экстент заполняется, происходит переключение экстентов: состояние текущего (busy) экстента меняется на заполненный (full) и следующий пустой (empty) экстент становится текущим (busy)
  • Locked – при работающей репликации, заполненный экстент заблокирован (locked) пока его данные не будут реплицированы на целевую (target) базу. Как только репликация будет завершена, экстент будет разблокирован и помечен как полный (full).
  • Archived – при работающем OE Replication и AI File Management, экстент, который был заблокирован, и заархивирован утилитой AI File Management, и будет помечен как архивный (archived) пока процесс репликации не будет завершен. После завершения репликации экстент будет помечен как пустой (empty).

Существует три способа определить статус AI файла.
 
1.    RFUTIL AIMAGE EXTENT LIST

Эта команда отображает всю информацию о каждом ai экстенте, включая их статус:

rfutil db-name -C aimage extent list

Команда не выдаст информацию, если after-imaging не активирован.
 
2.    PROMON

В PROMON также можно просмотреть информацию о статусе экстентов в мониторе PROMON -> R&D -> Status Displays -> AI Extents

 
3.    RFUTIL AIMAGE QUERY

Классификатор AIMAGE QUERY утилиты RFUTIL позволяет определять статус конкретного ai экстента. Возвращаемое значение для большинства запросов он будет равен либо простому числу, либо слову. Это сделано для того, чтобы возвращаемое значение было легко использовать и обрабатывать в скриптах.

Используйте следующую команду для осуществления запроса:

rfutil db-name -C aimage query query-option by search-option search-value

Query-option определяет, какую информацию вы хотите собрать об ai экстенте. Search-option определяет способ определения ai экстентов для запроса. Search-value определяет значения для использования в search-option. Например, если вы хотите определить, когда after-imaging начал запись в конкретный экстент, определенный своим порядковым номером, используйте следующую команду:

rfutil db1 -C aimage query startdate by sequence 1

Возвращаемое значение будет датой:

Wed May 26 15:06:49 2004

Если необходимо получить полную информацию об экстенте, определенном по имени, используйте следующую команду:

rfutil db1 -C aimage query all by name db1.a1

Возвращено будет следующее:

Extent: 1
Status: Busy
Type: Fixed Length
Path: /dbshare/databases/db1.a1
Size: 120
Used: 1
Start: Wed May 26 15:06:49 2004
Seqno: 1

RFUTIL AIMAGE EXTENT FULL показывает имя самого старшего полного (full) ai экстента. Используйте эту информацию для архивирования ai – файлов в правильном порядке их заполнения. Даже если будут существовать одновременно несколько заполненных (full) ai файлов, команда сообщит о наиболее старшем из них.

rfutil db-name -C aimage extent full

Переключение на новый AI файл

Переключение между ai файлами может понадобиться в следующих случаях:
 
  • Как часть резервной спецификации
  • Когда текущий экстент фиксированного размера заполнен или когда свободное пространство на диске, на котором расположен экстент, закончилось
  • После архивации ai экстента

Кроме того, переключение на новый ai экстент устанавливает точку для формирования резервной копии. После восстановления базы из копии, накат ai файлов происходит именно с этого ai файла.

Примечание: при выполнении ONLINE BACKUP, происходит автоматическое переключение на следующий пустой (empty) экстент. Поэтому, желательно предварительно убедиться, что такой экстент имеется.

Экстенты фиксированной длины имеют строго определенный размер, поэтому движок базы данных в состоянии самостоятельно определить, когда экстент заполнится.

В отличие от экстентов фиксированной длины, экстенты переменной длины не ограничены по размеру. Следовательно, движок базы данных не может определить, когда экстент будет заполнен. Если не используется RFUTIL AIMAGE NEW, экстент будет продолжать заполняться, пока не достигнет ограничения по размеру файла, выставленный операционной системой, или будет достигнут предел в 2Gb адресного пространства для OpenEdge, если не активирована поддержка больших файлов, или просто не закончится место на диске. Когда текущий экстент будет заполнен (full), произойдет автоматическое переключение на следующий экстент, при условии что он пустой (empty).

Если  же следующий экстент заполнен (full), база данных будет остановлена. Однако можно использовать параметр запуска базы данных After-image Stall (-aistall), для приостановления активности базы и отправки сообщения в лог базы или до отключения after-imaging с помощью классификатора AIMAGE AIOFF утилиты RFUTIL. При использовании –aistall, можно заархивировать  старший заполненный экстент и пометить его как пустой (empty). Тогда система автоматически переключит экстенты и восстановит активность базы данных. Если вы используете RFUTIL AIMAGE AIOFF, after-imaging будет выведен из строя и больше не сможет записывать ai файлы.

Примечание: использование параметра –aistall и  RFUTIL AIMAGE AIOFF можно только в многопользовательском режиме.

Когда база данных приостанавливает активность или происходит ее останов, в лог базы данных отправляется следующее сообщение:

Can’t switch to after-image extent filename it is full.
Backup ai extent and mark it as empty (3774)

База данных не сможет восстановить активность, пока необходимый для переключения экстент, не будет заархивирован и помечен как пустой.

Можно вручную выполнять в online переключение ai файлов, для обеспечения архивации файлов не дожидаясь их полного заполнения.

Для переключения необходимо:
 
1.  Проверить был ли архивирован текущий экстент, и если нет – сделать это.
2.  Используйте RFUTIL AIMAGE NEW со следующим синтаксисом:

rfutil db-name -C aimage new

При запуске RFUTIL AIMAGE NEW, утилита изменяет статус текущего экстента на full и изменяет статус следующего на busy.

 

Архивирование AI файлов


Планирование

План зависит от расписания резервного копирования для вашей базы данных и необходимости резервного копирования ai файлов:
 
  • При выполнении резервного копирования базы данных: Копируйте ai файлы каждый раз при выполнении резервной копии базы. Они должны быть обычной частью резервного копирования. Также, старайтесь копировать ai файлы на отдельный диск, на котором не хранятся файлы базы данных, лог и bi файлы. Эта техника обеспечит восстановление базы данных путем наката ai файлов на восстановленную из полной копии базу. Если же вы выберете тот же диск, вам необходимо обеспечить их восстановление отдельно от восстанавливаемой базы. Примечание: при одновременном копировании ai файлов и файлов базы данных имейте в виду, что ai файлы базируются на предыдущей копии базы, а не на текущей. Также на базе данных, имеющей ai экстенты, в online можно использовать утилиту RFUTIL. Можно выполнять online резервное копирование, когда after-imaging активирован. Утилита резервного копирования автоматически пометит busy экстенты как full и переключит экстенты.
  • Ежедневно: Вы можете принять этот метод в следующих случаях: в вашей резервной спецификации определено еженедельное резервное копирование базы данных, а ai файлы в течение недели вырастают до больших размеров; вы решаете выполнять ежедневные копии ai файлов вместо инкрементальных копий базы данных. Тем не менее, имейте в виду, что восстановления базы из инкрементальной копии происходит намного быстрее, чем с использованием наката ai файлов.

Если используется один ai файл, очень важно копировать его, прежде чем свободное место на диске, на котором он находится, закончится. Если вы своевременно этого не сделаете, база данных будет остановлена. Опять же, нежелательно использовать только один ai файл, так как усложняется процедура управления after-imaging, например, в данном случае, для копирования необходимо останавливать базу.

Если же используется множество ai файлов, нужно следить за их размерами и производить своевременное копирования, чтобы не допустить использования всего дискового пространства. Так же, имейте в виду, что восстановление из одного большого ai файла проще, чем из множества файлов маленького размера.

 
Выполнение копирования

Вы можете использовать утилиты операционной системы для копирования как одного ai файла, так и для многочисленных файлов. В этом случае проверьте, что они поддерживают целостность файлов. Во многих Unix системах некоторые утилиты (например, cpio) копируют только часть файла, это регулируется параметром ULIMIT. Копии таких файлов не пригодны для использования. Если вы копируете файлы по ftp, то обязательно должна быть включена поддержка бинарных файлов. Так как бинарные файлы могут быть некорректно скопированы по ftp.

 
Защита копии

После копирования AI файлов необходимо убедиться в следующем:
  • Метка резервной копии. Информативное именование копии, гарантирует быструю идентификацию, а, следовательно, вам не понадобится много времени для нахождения необходимой копии при необходимости восстановления. Рекомендуется, чтобы имя копии содержало:
          Дату и время формирования
          Имя базы данных
          Имя и тип файла
          Номер тома и общее количество томов, даже если копия состоит из одного файла
          Инициалы сотрудника, создавшего копию
          Имя утилиты, с помощью которой можно выполнить восстановление. Конечно же, это лишь рекомендация, и вы можете добавить дополнительную необходимую вам информацию, либо убрать не нужную.
  • Храните копии в легко доступном месте, по крайней мере, в течение недели
  • Храните архивные копии на другом компьютере, а лучше всего, даже в другом здании

Извлечение AI блоков

Извлечение AI блоков из AI экстента, позволит вам значительно уменьшить размер хранимого файла. Это очень удобно, в случае, когда необходимо пересылать файлы на другой сервер, так как с файлы меньшего размера копируются быстрее.

Используйте классификатор AIMAGE EXTRACT утилиты RFUTIL для выгрузки AI блоков:

rfutil db-name -C aimage extract -a ai-extent -o output-file

Итоговый файл будет аналогичен исходному файлу, и его можно использовать точно так же для наката с помощью утилиты RFUTIL.

Примечание: подобное извлечение имеет смысл только для экстентов фиксированной длины. Для экстентов переменной длины эффект будет минимальным.


Получение доступного AI файла для использования

После того, как текущий AI файл будет скопирован, он должен быть помечен как пустой (empty) для обеспечения повторного использования. Пометить файл можно с помощью классификатора AIMAGE EXTENT EMPTY утилиты RFUTIL. После того как файл будет помечен как пустой, его содержимое будет автоматически перезаписано.

Для выполнения процедуры используйте следующую команду:

rfutil db-name -C aimage extent empty [ extent-number | extent-path ]

Если параметры extent-number и extent-path не будут указаны, RFUTIL автоматически пометит самый старший заполненный (full) экстент.

Для определения необходимого вам экстента, используйте RFUTIL AIMAGE LIST и RFUTIL AIMAGE EXTENT FULL.


Утилиты AI File Management

AI File Management предоставляет хорошие средства для управления after-imaging. AI File Management может работать в двух режимах: ручном и автоматическом. Автоматический режим предназначен для использования пользователями с небольшим опытом, либо с полным его отсутствием. В автоматическом режиме легко происходит архивирование AI файлов. В ручном режиме, опытный пользователь имеет больше возможностей по управлению архивированием.


Архивация AI файлов в указанное место расположение

Автоматическое архивирование экстентов выполняется демоном, запущенным брокером базы данных. Он может работать в двух режимах: временном и мгновенном (on-demand). Во временном режиме переключение экстентов выполняется через интервал времени, при использовании специального параметра, даже если экстент еще не заполнен. Минимальный интервал – 120 секунд, максимальный – 86400 секунд (24 часа). В режиме мгновенного реагирования (on-demand), переключение происходит, только если экстент заполнен (full). В любом случае, проверка экстента на заполнение происходит каждые пять секунд. При использовании AI File Management вы должны иметь достаточное количество экстентов, чтобы всегда имелся хотя бы один файл доступный для записи.

Временной режим архивации без OE Replication

Как только истекает установленный интервал, демон AI File Management выполняет следующее:
 
1.    “Просыпается” по истечению пять секунд, и архивирует все заполненные AI экстенты.
2.    Проверяет, истек ли интервал. Если интервал истек, текущий экстент переключается. Текущий экстент со статусом BUSY помечается как FULL, а следующий EMPTY экстент помечается как BUSY.
3.    Заархивированный экстент помечается как EMPTY.
4.    “засыпание” на 5 секунд

Возможно, что во время многих повторений этих действий, не будет найден ни один экстент со статусом FULL. По истечении периода, обычно обязательно находится как минимум один FULL экстент для архивирования, и один для установки статуса FULL, при выполнении шага 2. В загруженной системе, возможно, что экстенты будут заполнены еще при выполнении шагов 3 и 4. Они обработаются, когда демон в следующий раз “проснется”.

Временной режим архивации с OE Replication

Когда для базы данных активирован OE Replication, демон выполняет следующие шаги:
 
1.    “Просыпается” после 5 секундного сна, и архивирует все FULL и LOCKED экстенты.
2.    Проверяет, истек ли интервал. Если истек – переключает текущий экстент. При переключении BUSY экстент помечается как LOCKED, а следующий EMPTY экстент помечается как BUSY.
3.    Помечает заархивированные FULL экстенты как EMPTY, а LOCKED экстенты как ARCHIVED.
4.    “Засыпает” на пять секунд.

Отличие заключается в том что, при активированном OE Replication, экстент не может быть помечен как EMPTY, пока он не будет полностью скопирован. Экстенты переходят из состояния BUSY в состояние LOCKED. Если LOCKED экстент будет скопирован до того, как архивирован, он перейдет в состояние FULL, и AI File Management будет архивировать уже его. Если же LOCKED экстент будет архивирован до того, как скопирован, то он перейдет в состояние ARCHIVED, и ответственность за перевод его в состояние EMPTY будет возложена в этом случае на OE Replication.


Рисунок: схема смены статусов AI экстентов

Процесс мгновенной архивации без OE Replication

При работе демона в режиме мгновенной реакции (on-demand), он выполняет следующие шаги:

1.    “Просыпается” после пять секундного сна. Архивирует все FULL AI экстенты и помечает их как EMPTY.
2.    При нормальной активности базы данных, заполненный текущий BUSY экстент, помечается как FULL, а следующий EMPTY экстент помечается как BUSY.
3.    “Засыпает” на пять секунд.

Процесс мгновенной архивации с OE Replication

При активированном OE Replication и работе демона AI File Management в режиме мгновенного реагирования, выполняются следующие шаги:
 
1.    “Просыпается” после пять секундного сна. Архивирует FULL и LOCKED экстенты. LOCKED экстенты помечает как архивные, а FULL – как EMPTY.
2.    Текущий заполняемый BUSY экстент помечается как LOCKED, а следующий EMPTY экстент как BUSY.
3.    Когда OE Replication скопирует LOCKED экстент, он пометит его как EMPTY.
4.    Демон “засыпает” на пять секунд.

 
Активирование автоматического режима AI File Management

Если after-imaging для вашей базы данных активирован, следующий шаги продемонстрируют, как активировать автоматический режим для работы AI File Management. Если after-imaging не активирован, вы можете активировать его и Ai File Management одновременно в online.

Активация в Offline:
 
1.    Проверьте, имеются ли в базе данных AI области и активирован ли after-imaging. Если нет, то добавьте области и активируйте after-imaging.
2.    Создайте каталог, в который будет производиться архивация AI файлов
3.    Активируйте Ai File Management для базы данных

rfutil mydb -C aiarchiver enable
 
4.    Запустите брокер базы данных  со следующими параметрами Ai File Management:

proserve mydb -S 6931
-aiarcdir /usr1/aiarchives/mydb/,/usr2/aiarchives/mydb/
-aiarcinterval 120

Активация в Online:
 
1.    Проверьте, имеются ли в базе данных AI области и активирован ли after-imaging. Если нет, то добавьте области и активируйте after-imaging.
2.    Создайте каталог, в который будет производиться архивация AI файлов
3.    Выполните online резервное копирование базы с активацией Ai File Management, копия базы будет считаться отправной точкой для наката Ai файлов:

probkup online mydb /usr4/backups/mydb.bck enableaiarchiver -aiarcdir
/usr1/aiarchives/mydb/,/usr2/aiarchives/mydb/
-aiarcinterval 120

В обоих примерах, определены два каталога для расположения архивов файлов, это usr1/aiarchives/mydb/,/usr2/aiarchives/mydb/. Если эти директории будут отсутствовать, они могут быть созданы автоматически при условии, что указан параметр –aiarcdircreate.Для Windows при определении более чем одного каталога, необходимо указать их в кавычках. Ai File Management переключится на следующий каталог, если в текущем каталоге закончится доступное место (диск заполнен). Поэтому, если определяется более одного каталога, то это имеет смысл только тогда, когда они размещены на разных носителях. Естественно, что параметр –aistall должен быть активирован.

Параметр –aiarcinterval установлен в 120, чтобы будить демона для архивации ai экстентов каждые 2 минуты. Этот интервал может быть установлен от 1 минуты до 24 часов. Если этот параметр не указан, демон будет просыпаться каждый раз, когда экстенты будут заполнены для их архивации, не зависимо от времени.

Если вы не уверены в выборе интервала для параметра –aiarcinterval, можете временного его не указывать, и по истечении определенного срока, проанализировав лог ai архивирования (db.archival.log) окончательно определиться с интервалом.

 
Мониторинг и установка параметров Ai File Management

Как только автоматический режим архивации был включен, вам следует постоянно проводить мониторинг производительности демона и состояние архивных каталогов. Утилита RFUTIL обеспечивает вас необходимыми классификаторами для изменения параметров в online.

Для изменения списка каталогов, используемых для архивации ai файлов, используйте следующую команду:

rfutil mydb -C aiarchiver setdir
/usr3/aiarchives/mydb/,/usr4/aiarchives/mydb/

Команда заменяет установленные ранее каталоги на новые. Если новых каталогов не существует, необходимо добавить параметр –aiarcdircreate, чтобы Ai File Management их создал.

Для изменения интервала архивирования, используйте следующую команду:

rfutil mydb -C aiarchiver setinterval 600

В данном случае таймер для демона будет установлен на 10 минут.

Для того чтобы следующий FULL Ai экстент немедленно архивировать, используйте:

rfutil mydb -C aiarchive nextextent

Команду архивирует следующий FULL экстент в указанный по списку каталог. Если демон работает во временном режиме, то в этом случае его таймер будет сброшен. Если активность базы будет приостановлена из-за заполнения всех экстентов, эта команда освободит экстент. Как только активность будет восстановлена, установите таймер демона в меньшее значение или вообще на ноль, чтобы предотвратить повторную остановку активности.

 
Архивные экстенты

При автоматическом архивировании экстентов демоном Ai File Management архивам присваиваются уникальные имена. Имя архивного файла, это комбинация из имени архивируемого файла, номера экстента, идентифицирующих исходный файл, и состояния исходной базы данных на момент архивации.

Элементы имени архивного файла следующие:
 
  • Полный путь к исходной базе данных, в котором разделителем каталогов является “~”
  • В Windows, двоеточие (:) - символ, следующий за символом диска, заменен на восклицательный знак (!)
  • Порядковый номер копии в мастер-блоке базы данных в момент, когда экстент получил статус FULL
  • Порядковый номер AI экстента или номер файла
  • Имя AI экстента

Из этих элементов, связанных в одно имя файла, получается следующее:

directory~spec~database.backup-sequence.ai-sequence.extent-name

Например, если имя архивного файла usr1~dbs~sales.01.03.sales.a3, то можно получить следующую информацию:
 
  • /usr1/dbs/sales.db, это имя исходной базы данных
  • Номер резервной копии – 01
  • Порядковый номер экстента  - 03
  • Имя экстента - sales.a3

Журнал архива

Ai File Management, ведет журнал (log) архивируемых экстентов. Этот журнал находится в том же каталоге, что и файл базы данных (.db), и называется - database-name.archival.log. Он создается в момент архивирования первого экстента. Информация, в нем хранимая, обеспечивает вас всеми данным, такими как время формирования архива, резервных копиях базы и экстентах, необходимыми для разработки автоматического или ручного способа восстановления базы данных. Этот файл поддерживается AI File Management, он может быть прочитан, но нельзя его менять.

Каждый раз, когда демон Ai File Management запускается, в журнал записывается две строки, содержащих дату, время и информацию о версии, в следующем формате:

# After-image Extent Manager started on : Tuesday October 11, 2005 at 10:02:25
# 0255,20051011,100225,100100

Вторая строка содержит версию и информацию о запуске и имеет следующий смысл:

# 0255, date, time, release

Таблица: Формат линии запуска в журнале архива
Поле
Значение
 Индикатор версии (0255)  Индикатор линии версии
 Date  дата старта утилиты в формате YYYYMMDD
 Time  Время старта утилиты в формате HHMMSS


После заголовка, каждая строка содержит информацию об архивах, разделенную запятой.

Линия архивов

Архивная линия хранится в следующем формате:

Extent archive indicator,database,date,time,buseq,aibegin-date,aibegin-time, aiseq,extent-name,target-directory,target-extent-name

Таблица: Формат линии архивного AI экстента в журнале архива
Поле
Значение
 Extent archive indicator Может принимать следующие значения:
0001 – Экстент архивирован автоматически
0003 – Экстент архивирован вручную
0004 – Экстент архивирован вручную в NULL устройство
 database  Имя базы данных
 date  Дата резервной копии в формате YYYYMMDD
 Time  Время резервной копии в формате HHMMSS
 Buseq  Порядковый номер копии
 aibegin-date  Дата старта after imaging для базы данных в формате YYYYMMDD
 aibegin-time  Время старта after imaging для базы данных в формате HHMMSS
 aiseq  Порядковый номер AI, с указанием ведущих нулей
 extent-name  Исходное имя архивируемого экстента
 target-directory  Каталог, в который архивирован экстент
 target-extent-name  Имя архивируемого экстента


Линия резервного копировании базы данных

Backup indicator,database,date,time,online indicator,buseq,backup-date,

backup-time,incr-seq,target-count,backup-targets,backupset-name

Таблица: формат линии резервного копирования базы данных
Поле
 Значение
 Backup indicator Тип резервной копии:
0032 – Полная копия
0033 – Инкрементальная копия
 Database  Имя базы данных
 Date  Дата записи в журнал в формате YYYYMMDD
 Time  Время записи в журнал в формате HHMMSS
 online indicator Индикатор типа копии:
0 – offline
1 – online
 buseq  Порядковый номер копии
 backup-date  Дата формирования копии в формате YYYYMMDD
 backup-time  Время формирования копии в формате HHMMSS
 incr-seq  Если это инкрементальная копия, то указывается ее порядковый номер, иначе, значение остается пустым
 target-count  Количество файлов в копии
 backup-targets  Список имен файлов копии, разделенных запятой
 backupset-name  Копии установлено имя. Имеет следующий формат: BACKUP_SET_YYYYMMDD_HHMMSS. Где дата и время установлены на основании значений backup-date и backup-time.s



Добавление и изменений AI экстентов

Добавление AI экстента может понадобиться, когда не возможно выполнить переключение экстентов из-за того, что все они заполнены, и нет возможности перевести любой из них в состояние EMPTY. В такой ситуации база данных либо будет остановлена, либо ее активность будет заморожена, при условии, что при старте был указан параметр after-image stall.

Для добавления экстент используйте команды PROSTRCT ADD или PROSTRCT ADDONLINE. При добавлении AI экстента, он будет добавлен к концу списка экстентов базы данных. Утилита PROSTRCT REORDER AI переместит новый AI экстент так, чтобы он находился сразу за заполненным экстентом. Таким образом, реорганизация AI экстентов необходима, когда следующий по порядку экстент заполнен. Это так же может произойти, когда при активированном OE Replication, все экстенты имеют статус LOCKED, так как репликация блокирует экстент от использования его утилитой RFUTIL.

Для реорганизации AI экстентов используйте следующую команду:

prostrct reorder ai db-name

Предупреждение: PROSTRCT REORDER AI изменяет имена AI файлов, а именно расширение .an. Номер области так же меняется. Обязательно после использования утилиты, выполните PROSTRCT LIST, для переформирования st файла.

Следующий пример иллюстрирует эффект от PROSTRCT REORDER для экстентов.

На рисунке показан случай, когда при заполнении экстента A1 база данных будет остановлена, т.к. невозможно будет переключиться на следующий экстент, потому что A2 и A3 заполнены.



Добавляем новые AI экстенты:



Но простое добавление экстентов не достаточно для предотвращения остановки базы данных, т.к. по-прежнему экстент A1 не сможет переключиться на следующий экстент A2, потому что он всё еще заполнен. На следующем рисунке показан результат реорганизации ai файлов утилитой PROSTRCT REORDER AI.

После реорганизации ai файлы снова смогут продолжить работу по переключению. Это произойдет из-за того, что добавленные пустые экстенты будут перемещены сразу за занятым (BUSY) экстентом. Их номера и имена файлов будут изменены, но при этом, их физическое размещение и размеры затронуты не будут.

 
Выполнение наката (roll-forward recovery)

Для того чтобы выполнить roll-forward recovery, далее, я его буду называть “накат ai файлов”, необходимы все ai экстенты, созданные после формирования последней резервной копии. Так же имейте в виду, что последний файл обычно является файлом, созданным в момент сбоя, и, следовательно, может содержать информацию, приведшую к нему, поэтому, если вы не уверены, то лучше его не накатывать. К тому же, если какой-то из файлов был потерян, то восстановление будет возможным только до этого файла. Накат ai файлов должен быть осуществлен до того как целевая база данных будет изменена. Если вы случайно, даже просто, запустите базу данных до завершения наката, все не завершенные транзакции будут отменены. Так как эти транзакции могли быть завершены в ai файлах, которые еще не накатились, а, следовательно, они будут считаться не завершенными. В этом случае, если вы хотите получить целую, работоспособную базу данных, вам необходимо заново провести всю процедуру восстановления, начиная с последней резервной копии.

Используйте классификатор ROLL FORWARD утилиты RFUTIL для наката каждого ai файла. Синтаксис следующий:

rfutil db-name -C roll forward -a ai-name

При использовании классификатора обычно допускают следующие ошибки, будьте внимательны:
 
  • Не указывают параметр –a для ai файла
  • Не правильные права доступа на открытие ai файла
  • Указано не правильное имя ai файла

В случае возникновения системного сбоя во время наката ai файлов, придется восстановить базу и повторить процесс наката.

Классификатор ROLL FORWARD, прежде чем начать накат, всегда деактивирует механизм after-imaging. Следовательно, по завершении процедуры восстановления, необходимо заново активировать after-imaging, средствами классификатора AIMAGE BEGIN.

Так же у классификатора ROLL FORWARD имеются параметры, позволяющие лишь частичное производить накат ai файла, это end time и entrants. Первый позволяет до конкретного времени, а второй – до конкретной транзакции.


Последовательность After-image

Классификатор SEQUENCE утилиты RFUTIL позволяет администратору базы данных  изменять номера AI в последовательности, тем самым, обеспечивая “горячее резервирование” базы даны в соответствии вашей стратегии.

RFUTIL SEQUENCE изменяет номер последовательности в целевой базе данных, чтобы соответствовать номеру последовательности занятого (BUSY) AI экстента в момент формирования резервной копии.

После выполнения этой команды, ваша целевая база данных будет синхронизирована, в плане нумерации последовательности, занятой (BUSY) в момент копирования AI экстента, и работа базы начнется именно с него. Для получения большей информации о команде смотрите раздел “Классификатор RFUTIL SEQUENCE”.

Стоит заметить, что использовать эту команду нужно только, если копия базы данных выполнялась средствами операционной системы. При использовании же PROCOPY или PROBKUP, эти утилиты автоматически закладывают в копию информацию о нумерации последовательности, необходимой для восстановления с AI файлов.

Следующий пример показывает,  как получить копию базы данных для “горячего резервирования” без корректировки SEQUENCE.

# Update your source database by adding after-imaging extents
#
prostrct add production_db add.st
# truncate the database BI file and mark as backed up
#
proutil production_db -C truncate bi
rfutil production_db -C mark backedup
# Activate after-imaging
#
rfutil production_db -C aimage begin
# Make a copy of the database using operating system commands
#
cp production_db* /db_standby
# Mark the source database as backed up
#
rfutil production_db -C mark backedup
# Fix the target database file specifications and make new database st file.
#
prostrct repair /db_standby/production_db /db_standby/standby.st
prostrct list /db_standby/production_db /db_standby/production_db.st
# At this point allow updates to the source database
#
# Roll forward the first AI extent from production_db to standby copy
#
rfutil /db_standby/production_db -C roll forward -a production_db.a1
# Continue allowing updates and regularly roll forward the AI extents from
# the production_db to the standby copy.

В следующем примере происходит почти тоже, за исключением, что базу данных успели изменить до копирования, а, следовательно, требуется корректировка с последовательности с помощью классификатора SEQUENCE.

# Update your source database by adding after-imaging extents
#
prostrct add production_db add.st
# truncate the database BI file and mark as backed up
#
proutil production_db -C truncate bi
rfutil production_db -C mark backedup
# Activate after-imaging
#
rfutil production_db -C aimage begin
# At this point allow updates to the source database. This activity will
# fill the first AI extent, production_db.a1, and causing a switch to the
# second AI extent, production_db.a2.
# Make a copy of the database using operating system commands
#
cp production_db* /db_standby
# Mark the source database as backed up
#
rfutil production_db -C mark backedup
# Fix the target database file specifications and make new database st file.
#
prostrct repair /db_standby/production_db /db_standby/standby.st
prostrct list /db_standby/production_db /db_standby/production_db.st
# Correct the sequence number of target database.
#
rfutil /db_standby/production_db -C sequence
# Roll forward the second AI extent from production_db to standby copy.
# This is the extent which was BUSY at the time the copy of the database
# was made.
#
rfutil /db_standby/production_db -C roll forward -a production_db.a2
# Continue allowing updates and regularly roll forward the subsequent AI
# extents from the production_db to the standby copy.

Обратите внимание, что SEQUENCE был применен до того, как начался накат AI файлов. Это связано с тем, что накат деактивирует After-imaging, а значит, будет не возможно изменить нумерацию последовательности.


Деактивация after-imaging

Для деактивации after-imaging используется утилита RFUTIL.

1.    Скопируйте все заполненные экстенты (FULL). Это необходимо, чтобы не потерять данные в ai экстентах, т.к. RFUTIL после деактивации пометит все экстенты как пустые, и вы потеряете данные.
2.    Скопируйте экстенты, которые на данный момент заняты (BUSY).
3.    Деактивируете after-imaging с помощью классификатора AIMAGE END утилиты RFUTIL:

rfutil db-name -C aimage end

Вы так же можете использовать классификатор AIMAGE AIOFF той же утилиты, когда вам необходимо приостановить работу механизма на время, например, при выполнении технических работ.





Главная |  Статьи |  Книги |  Гостевая |  Ссылки |  От автора |  Download ProKb


������ ᠩ� pr Online ProKB Blogger Welcome to Russian Progress Users Group at Facebook Welcome to Russian Progress Users Group at LinkedIn
© 2009 - 2011 Все права на материалы, находящиеся на сайте www.openedge.ru, охраняются в соответствии с законодательством РФ, в том числе, об авторском праве и смежных правах.
При любом использовании материалов сайта ссылка на источник обязательна.