Работа After-Image репликации
В данном примере демонстрируются методы настройки и запуска репликации с использованием технологии After-Image. Для этого применяются специально разработанные скрипты, которые могут быть адаптированы для использования в промышленной среде. Эффективность и надежность скриптов подтверждены многократными проверками в реальных условиях эксплуатации. Однако, несмотря на это, скрипты предоставляются на условиях “как есть”, и пользователь принимает на себя все риски, связанные с их применением. Перед использованием скриптов рекомендуется провести тщательное тестирование для оценки их работоспособности в конкретных условиях эксплуатации.
Принцип работы скриптов
В рамках описанного процесса осуществляется перенос AI-экстентов со статусом FULL из основного каталога в специальный каталог AI_TO_DR. После этого перенесённые AI-экстенты помечаются как EMPTY. Затем происходит переключение текущего AI-экстента (статус BUSY), его копирование и установка статуса EMPTY. Данный процесс реализуется посредством скриптов aiswitch.sh и aiswitch2.sh, где aiswitchall.sh выступает в качестве оболочки для выполнения операций над несколькими базами данных одновременно.
Перед началом FTP-копирования AI-файлы архивируются, а после завершения копирования — разархивируются. Для обеспечения корректности процесса репликации перед началом выполнения скрипта осуществляется проверка состояния базы данных. В случае её остановки репликация не производится.
После завершения FTP-копирования производится проверка успешности передачи файлов. Если файлы не были успешно скопированы, они не перемещаются в каталог AIBACKUP и подлежат повторной обработке.
Во время FTP-копирования файлы переименовываются в TMP_name, что предотвращает их использование скриптом наката AI до завершения копирования. После успешного завершения копирования файлы восстанавливают свои оригинальные имена.
Файлы, скопированные в резервный каталог AIBACKUP, сохраняются в течение двух дней. Это регулируется параметром –mtime +2 в скрипте aiswitch.sh. Аналогичное правило применяется и к целевой машине.
Список скриптов: 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 Описания изменений, необходимых для работы скриптов
Скрипт | Изменяемое значение | Назначение |
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>.