Механизм After-Imaging в OpenEdge
Архивирование AI-экстентов
План выполнения архивации AI-экстентов зависит от конкретной стратегии резервного копирования базы данных в компании. Здесь будут приведены обобщенные правила, которые можно использовать в составе общего плана.
Используйте для хранения архивов AI-экстентов отдельный диск или даже отдельную машину. Это обезопасит архивы в случае повреждения промышленной системы и позволит восстановить базу данных. В противном случае вместе с машиной вы рискуете потерять все архивы экстентов и не сможете выполнить восстановление.
При одновременном резервном копировании AI-экстентов и базы данных имейте в виду, что архивы AI-экстентов базируются на предыдущей копии базы, а не на текущей.
Рассматривайте архивы AI-экстентов, как возможность восстановления базы данных на любой момент времени. Архивы должны базироваться на последней резервной копии. Нельзя исключать из плана резервного копирования и восстановления необходимость в формировании резервных копий базы данных, или сокращать частоту их формирования. Встречались случаи, когда некоторые компании полностью отказывались от выполнения резервного копирования, надеясь только на архивы AI-экстентов – ТАК ДЕЛАТЬ НЕЛЬЗЯ! Это может привести к непоправимым последствиям.
Разработайте четкий план действий для восстановления базы данных с использованием AI-экстентов. Опишите когда, кто и как должен выполнять восстановление. Оптимальный интервал времени между архивированием экстентов 15-30 минут, в зависимости от важности данных и активности в базе. Помните, с одной стороны работать с одним большим AI-экстентом проще, например, при накате его на базу, с другой стороны файлы большого размера сложнее передавать по сети на машину для хранения, надежнее и быстрее предавать файлы меньших размеров.
Так же рассмотрите возможность передачи копии AI-экстента на машину для хранения сразу же после её формирования, либо через небольшое количество времени. Это позволит исключить потерю архивов в случае сбоя дисков, на которых они располагаются. Например, если копировать архивы AI-экстентов только один раз в день в момент формирования резервной копии базы данных, то в случае сбоя все изменения, которые были сделаны с момента формирования последней резервной копии, будут потеряны. А если вы будете копировать архивы с интервалом, скажем, 15 минут, то тогда вы рискуете 15 минутами работы. Выбор за вами…
Для копирования между машинами можно использовать любые утилиты операционной системы, предназначенные для копирования файлов, но с одним условием: необходимо быть уверенным, что они гарантируют целостность передаваемых файлов. Например, при копировании с использованием протокола FTP должна быть включена поддержка копирования бинарных файлов.
Уделите большое внимание формированию имени архива AI-экстента. Имя должно содержать следующие данные:
- дату и время формирования;
- имя базы данных;
- имя и тип файла;
- инициалы сотрудника, создавшего копию.
Информативное именование копии гарантирует быструю идентификацию, следовательно, не понадобится много времени для поиска необходимой копии для восстановления.
Храните копии в легкодоступном месте, по крайней мере, в течение недели.
Храните архивные копии на другом компьютере, лучше всего, даже в другом здании.
Извлечение AI-блоков из AI-экстента, позволит вам значительно уменьшить размер хранимого файла. Это очень удобно в случае, когда необходимо пересылать файлы на другой сервер, так как файлы меньшего размера копируются быстрее.
Используйте классификатор AIMAGE EXTRACT утилиты RFUTIL для выгрузки AI-блоков. Полный синтаксис команды следующий:
rfutil db-name -C aimage extract -a ai-extent -o output-file
Для тестовой базы sports можно попробовать выполнить следующую команду и посмотреть, что получится:
$rfutil ./sports -C aimage extract -a ./sports.a1 -o ./backup/a1.bak
Итоговый файл будет аналогичен исходному файлу за исключением некоторого «мусора», и его можно использовать для наката с помощью утилиты RFUTIL.
Примечание: подобное извлечение имеет смысл только для экстентов фиксированного размера. Для экстентов переменного размера эффект будет минимальным.
Для обеспечения повторного использования текущего AI-экстента его необходимо скопировать и пометить как пустой (EMPTY). Сменить статус экстента можно с помощью классификатора AIMAGE EXTENT EMPTY утилиты RFUTIL. После получения экстентом статуса EMPTY его содержимое может быть перезаписано.
Для выполнения процедуры используйте синтаксис следующей команды:
rfutil db-name -C aimage extent empty [ extent-number | extent-path ]
Если параметры extent-number или extent-path не будут указаны, то RFUTIL автоматически пометит самый старший заполненный (FULL) экстент как EMPTY.
Для определения необходимого экстента используйте RFUTIL AIMAGE LIST или RFUTIL AIMAGE EXTENT FULL.
Примечание: см. Приложение 5 «Практический пример архивирования AI экстентов»
Метка:After-Imaging