Восстановление базы данных из архивов AI-экстентов
Для выполнения Roll-forward Recovery (далее «накат AI-файлов») необходимы все архивы AI-экстентов, созданные после формирования последней резервной копии. Помните, что последний архив AI-экстента обычно является файлом, созданным в момент сбоя. Следовательно, он может содержать информацию, приведшую к этому сбою, поэтому лучше его не накатывать. Кроме того, если какой-то из файлов был потерян, то восстановление будет возможным только до потерянного файла. Накат AI-файлов должен быть осуществлен до того, как целевая база данных будет изменена. Если случайно изменить или даже только стартовать базу данных до завершения наката, все незавершенные транзакции будут отменены, т.к. эти транзакции могли быть завершены в AI-файлах, которые еще не накатились, следовательно, транзакции будут считаться незавершенными. В этом случае, если вы хотите получить работоспособную базу данных, то необходимо заново выполнить всю процедуру восстановления, начиная с последней резервной копии.
Используйте команду ROLL FORWARD утилиты RFUTIL для последовательного наката каждого AI-файла. Синтаксис команды следующий:
rfutil db-name -C roll forward -a ai-name
Будьте внимательны при использовании ROLL FORWARD, т.к. администраторами иногда допускаются следующие ошибки:
- пропустили параметр <-a> для AI-файла;
- не установили права доступа на открытие AI-файла;
- использовали неправильное имя AI-файла.
При возникновении системного сбоя во время наката AI-файлов необходимо восстановить базу и повторить процесс наката.
Прежде чем начать накат, команда ROLL FORWARD деактивирует механизм After-imaging. Следовательно, после завершения работы процедуры восстановления его необходимо заново активировать.
У ROLL FORWARD существуют дополнительные параметры, позволяющие производить частичный накат содержимого AI-файла. Это параметры <endtime> и <endtrans>. Первый позволяет выполнить восстановление базы данных до конкретного времени, а второй – до конкретной транзакции.
В последних версиях OpenEdge вместо одиночного наката AI-архивов с использованием параметра “-a ai-name” можно использовать параметр “-ailist listfile”. Параметр принимает на вход файл, содержащий перечень AI-архивов. Файл должен быть структурирован следующим образом:
- Каждая строка файла должна содержать имя одного AI-архива.
- Имена файлов могут быть указаны в абсолютном или относительном формате, где относительная форма определяется относительно текущего рабочего каталога, в котором выполняется программа RFUTIL.
- Строки, начинающиеся с символов двоеточия (“:”), решётки (“#”) или звёздочки (“*”), интерпретируются как комментарии и исключаются из дальнейшего синтаксического анализа.