СЕКРЕТЫ OPENEDGE: УПРАВЛЕНИЕ БАЗАМИ ДАННЫХ OPENEDGE ПРИ ПОМОЩИ OPENEDGE MANAGEMENT
ВКЛЮЧЕНИЕ ПРОЦЕССА AFTER-IMAGE
Процесс After-Image можно включить несколькими способами. Два способа включения рассмотрены ниже.
1) В режиме оффлайн базы данных:
rfutil dbname -C aimage begin
2) При запущенной базе данных, в онлайн-режиме:
probkup online dbname output-file enableai
Больше никаких действий выполнять не нужно. Включение AI-журналирования в оффлайн-режиме подразумевает, что это сделано непосредственно сразу после снятия бэкапа БД. В некоторых случаях необходимо обмануть этот механизм, для чего и существует команда, которая маркирует БД, как БД прошедшую резервное копирование. Эти случаи и саму команду мы рассмотрим ниже.
ВКЛЮЧЕНИЕ AI ARCHIVER
Автоматическая архивация AI-журналов (или AI Archiver) — это служба запускаемая при старте БД. AI Archiver помечает AI экстент со статусом BUSY как FULL-экстент и копирует его в заданное местоположение по заданным правилам. Любой экстент со статусом FULL (переключенный бэкапом БД, образовавшийся при заполнении экстента фиксированного размера или при включении режима quiet-point БД) будет обработан AI Archiver.
Для того, чтобы включить AI Archiver необходимо выполнить следующие команды:
1) Для остановленной БД (режим оффлайн):
rfutil dbname -C aiarchiver enable
2) Для запущенной БД:
probkup dbname enableaiarchiver setdir directory setinterval #_of_seconds
где directory — одна директория или список директорий для копирования заполненных AI-экстентов, #_of_seconds — интервал копирования в секундах (рассмотрим ниже)
Если вы включаете AI-журналирование в режиме онлайн, то у вас есть возможность одновременно включить и AI Archiver. Для этого надо использовать одновременно обе опции — enableai и enablearchiver.
ЗАДАНИЕ ПАРАМЕТРОВ AI ARCHIVER ПРИ ЗАПУСКЕ БД
Также можно задать значения параметрам AI Archiver при запуске базы данных. Опция -aiarchivedir задает директорию для архивирования экстентов AI, а -aiarchiveinterval — интервал архивирования. Рекомендуется данные параметры поместить в файл параметров (.pf-файл), который необходимо использовать для всех команд запуска и для других утилит БД. Это значительно упростит обслуживание этих параметров (для внесения изменений необходимо отредактировать лишь один файл).
ДОБАВЛЕНИЕ AI-ЭКСТЕНТОВ
При добавлении AI-экстентов к базе данных занимаемое этими экстентами место на диске описывается в файле описания структуры (.st-файле). Необходимо подготовить файл с описанием добавляемых экстентов и выполнить следующие команды
1) в режиме оффлайн:
prostrct add [structure-description-file]
2) в режиме онлайн:
prostrct addonline [structure-description-file]
Если не указать файл, то по умолчанию утилита prostrct будет искать st-файл совпадающий по имени с именем базы данных. Рекомендовано отслеживать изменения st-файла структуры БД в вашей системе контроля версий файлов (CVS,RCS,VSS…). После добавления экстентов командой prostrct add или их удалении командой prostrct remove необходимо воспользоваться командой prostcrt list для проверки того, что изменения прошли успешно.
ОПРЕДЕЛЕНИЕ ДИРЕКТОРИИ ДЛЯ ХРАНЕНИЯ АРХИВИРОВАННЫХ AI-ФАЙЛОВ
Наилучшее место для архивированных файлов AI-заметок — это другая система (например, копирование на сетевые диски). В этом случае при фатальном сбое на сервере БД архив файлов AI доступен на другой системе и без проблем используется для наката на бэкап БД.
Незначительное возможное снижение производительности при копировании данных через сеть рассматривать не стоит.
Если схема со вторым сервером невозможна, то запись архивируемых экстентов AI можно настроить на отдельный дисковый раздел продукционного сервера. При катастрофе с сервером достать архивы будет очень сложно, но при необходимости восстановления БД при её разрушении эти файлы легко использовать. Это более-менее приемлемая альтернатива первому (и самому надежному) варианту.
В самом худшем случае (которого необходимо избегать) — AI Archiver пишет архивируемые экстенты на раздел, где лежит база данных или на раздел AI-журналов. Риск здесь очевиден — если теряем раздел, то теряем всё. Это цена экономии на дисковых устройствах. Данные компаний стоят много больше дисковых устройств, на которых они размещаются — не надо на них экономить.
ОПРЕДЕЛЕНИЕ ВРЕМЕНИ ХРАНЕНИЯ АРХИВИРОВАННЫХ ЭКСТЕНТОВ
Как минимум необходимо хранить данные до тех пор, когда они не будут скопированы с продукционной среды на средства надежного хранения данных (или на архивную ленту). Как правило, стоит хранить все данные за неделю работы. Это означает, что сделав бэкап БД в понедельник мы можем больше не хранить такую же резервную копию за прошлый понедельник. Это самый простой подход.
(Обычно у каждой компании своя стратегия резервирования. Например, я делаю каждую ночь бэкап и от него уже сохраняю AI каждые 30 минут. Хранится это на неделю назад, далее на понедельник каждой недели в течение квартала и по одному бэкапу в месяц — принцип, я думаю, понятен. Не представляю ситуации, когда нужно накатывать AI от понедельника до четверга — это займет слишком много времени — прим. /dmi)
Как максимум, если позволяет объем — храните данные за как можно больший период.
НЕКОТОРЫЕ КОМАНДЫ И ОПЦИИ ЗАПУСКА AI ARCHIVER
Ниже описаны некоторые часто используемые команды для работы с AI. Полный список команд можно посмотреть в руководстве OpenEdge Data Management: Database Administration.
ОПЦИИ УТИЛИТЫ НАКАТА ЖУРНАЛОВ НА БД — ROLL FORWARD (RFUTIL)
aiarchiver enable
Включает AI Archiver и устанавливает директорию для сохранения архивных файлов и интервал такого сохранения (если они явно заданы)
aiarchiver end
Выключает сервис AI Archiver, но не выключает само AI журналирование базы данных
aiarchiver setdir
Позволяет переназначить директорию для сохранения архивных экстентов AI на запущенной базе данных. Все последующие файлы после такой команды будут сохраняться в новой директории
aiarchiver setinterval
Позволяет изменить интервал архивирования AI экстентов на запущенной базе данных. Или задает интервал, если интервал архивации не был задан при запуске базы данных
aiarchive extent
«Вручную» архивирует и помечает экстент пустым.
ПАРАМЕТРЫ ЗАПУСКА
-aiarchiveinterval #
Определяет частоту архивации AI-экстентов после запуска БД (в секундах)
-aiarchivedir директория
Определяет директории для копирования FULL AI экстентов при архивации. Это может быть список директорий через запятую. Копирование происходит в первую доступную директорию
УДАЛЕНИЕ АРХИВИРОВАННЫХ AI-ФАЙЛОВ
После того, как файл обработан AI Archiver, сохранен и сделана его резервная копия, он может быть удален. В большинстве случаев необходимо хранить AI-файлы на сутки назад, но требования могут быть разными. Можно автоматизировать удаление «старых» AI-файлов. Ниже приведены команды удаления файлов старше, чем 7 дней для UNIX/Linux и Windows систем.
Для UNIX/Linux используется команда find с ключом -mtime +days
find archive-dir -mtime +7 -exec \rm {} \; 2>&1 > /dev/null
Для Windows необходимо использовать forfiles.exe из пакета Windows Resource Kit(хотя я не вижу преград для использования CygWIN — прим. /dmi)
forfiles /P drive:\archive-dir /m *.a* /D -7 /C "CMD /C del /q @FILE"
Примечания:
- Эти скрипты перед переносом на продукционную среду необходимо обязательно протестировать. Вообще, DBA должен обязательно тестировать абсолютно все свои идеи перед тем как использовать их в продукции
- Эти скрипты могут показаться сложными для начинающих
Метка:OpenEdge, OpenEdge Management