Механизм After-Imaging в OpenEdge
Приложение 10 Работа After-Image репликации
В этом примере продемонстрированы настройка и запуск After-Image репликации с использованием скриптов, которые вы можете применить в своей промышленной среде. Работа скриптов неоднократно проверена, их работоспособность доказана в реальных промышленных условиях.
Принцип работы скриптов
Сначала, если таковые имеются, в специальный каталог AI_TO_DR копируются AI-экстенты со статусом FULL, после чего они помечаются как EMPTY. Затем выполняется переключение текущего AI-экстента (статус BUSY), выполняется его копирование и устанавливается статус EMPTY. Всё это делается в скрипте aiswitch.sh и его дочернем скрипте aiswitch2.sh. Скрипт aiswitchall.sh представляет собой только оболочку для первых двух скриптов, и используется в случаях, когда необходимо выполнять AI-репликацию более чем одной базы данных.
Перед выполнением FTP-копирования AI-файлы будут заархивированы, а после копирования, наоборот, разархивированы.
Если база данных будет остановлена, то репликация выполняться не будет, т.к. скрипт перед началом работы проверяет ее состояние.
Так же выполняется проверка того, что файлы были успешно скопированы по FTP, иначе они не будут перемещены в каталог AIBACKUP, и впоследствии они обработаются повторно.
Файлы в процессе FTP-копирования переименовываются в TMP_name, а по завершению копирования им возвращается реальное имя. Таким образом, скрипт наката AI не будет использовать файл, пока тот находится в процессе копирования.
В резервном каталоге AIBACKUP файлы будут храниться в течение 2-х дней, это регулируется последней строкой в скрипте aiswitch.sh (–mtime +2). То же верно и для целевой машины.
Список скриптов:
aiswitchall.sh, aiswitch.sh, aiswitch2.sh и aiftp.sh – должны запускаться на source-машине (базе данных)
Старт репликации начинается с запуска aiswitchall.sh, в котором должен быть задан список каталогов и имен баз данных, которые должны реплицироваться. Всю основную работу выполняет скрипт aiswitch.sh и его дочерний скрипт aiswitch2.sh.
aiftp.sh – выполняет FTP-копирование. Для него необходимо указать DR-server-name, user-name и password.
На target-машине (базе данных) запускается скрипт airollfwdall.sh, который содержит список каталогов и имен реплицируемых баз данных. Работу по накату на них файлов выполняет скрипт airollfwd.sh.
Изменения, которые необходимо внести в скрипты для работы в вашей среде, описаны в таблице 9:
Таблица 9 Описания изменений, необходимых для работы скриптов
Скрипт | Изменяемое значение | Назначение |
aiswitchall.sh | Main_replication_dir | Каталог, который должен иметь достаточно свободного пространства, для хранения AI файлов в директории $AIBACKUP |
Database1-dir | Путь к исходной базе данных | |
Database1-name | Имя исходной базы данных | |
aiswitch.sh | REMOTE_DIR | Должен иметь то же значение, что и LOCALAPPLYDIR из airollfwd.sh |
aiftp.sh | DR-server-name | |
user-name | Если FTP настроен без указания пользователя, то user-name и password не задаются. В любом случае необходимо убедиться, что доступ к этом скрипту ограничен. | |
password | ||
airollfwdall.sh | Main_replication_dir | Любой каталог на целевой машине |
Database1-dir | Путь к целевой базе данных | |
Database1-name | Имя целевой базы данных | |
airollfwd.sh | LOCALAPPLYDIR | Должен иметь то же значение, что и REMOTE_DIR из aiswitch.sh |
STOREDIR | Любой каталог на целевой машине с достаточным местом для хранения AI файлов за 2 дня |
Скрипты After-Image репликации (Unix)
Пошаговая настройка базы Sports
Настройка AI-репликации с помощью скриптов на примере базы данных sports:
1. Подготовьте новую тестовую базу данных sports, которая будет исходной (source):
- добавьте три-четыре AI-экстента;
- сформируйте полную резервную копию;
- активируйте After-Imaging.
2. Создайте отдельный каталог для хранения скриптов:
- создайте в нем скрипты aiswitchall.sh, aiswitch.sh, aiswitch2.sh и aiftp.sh;
- выполните их настройку согласно таблице 9;
- создайте в нем каталог ai_backup/ для хранения AI-архивов.
3. На удаленном сервере восстановите базу данных из полученной полной резервной копии (target). Не открывайте эту базу и никаким образом не модифицируйте её.
4. На удаленном сервере создайте каталог для хранения скриптов наката AI:
- создайте в этом каталоге скрипты airollfwdall.sh и airollfwd.sh;
- выполните их настройку согласно таблице 9.
5. Запустите source-базу и внесите любые изменения в нее, чтобы заполнить несколько AI-экстентов. Это можно сделать с помощью программы gen_ai.p (см. листинг 3).
6. Запустите скрипт aiswitchall.sh. Произойдет копирование FULL-экстентов и текущего BUSY-экстента на удаленный сервер. В каталоге ai_backup/ появятся скопированные файлы.
7. Перейдите на удаленный сервер и запустите скрипт airollfwdall.sh. Выполнится накат AI-архивов на target-базу.
8. Проверьте корректность выполнения наката с помощью лога target-базы данных.
Примечание: во время работы AI-репликации target-базу не нельзя изменять никаким образом, в том числе ее нельзя запускать. Если вы все-таки это сделаете, то дальнейшая работа AI-репликации будет невозможна. В тоже время, к базе можно подключиться для чтения данных в режиме Read Only, используя параметр клиентской сессии <-RO>.
Метка:After-Imaging