Меры безопасности при архивировании БД
Процедура архивирования/восстановления БД является ответственным мероприятием. Допущенные ошибки могут быть непоправимы (например, случайно удален или запорчен архив БД перед ее восстановлением). Чтобы минимизировать (а в некоторых случаях и вообще исключить) ущерб от неправильных действий пользователей БД, утилита архивирования выполняет максимально возможную проверку корректности заданного сценария архивирования.
Например, в команде на создание архива пользователь по какой-либо причине вместо
правильного имени указал ошибочное имя (файл операционной системы или же архивный файл от
другой БД). Если при этом в команде архивирования будет присутствовать опция REWRITE
,
то этот файл будет удален утилитой перед созданием файла архива. Тем самым при создании
архива нарушится целостность либо операционной системы, либо функционирующих в ней программ.
Чтобы избежать подобных ситуаций, перед процедурой удаления указанного в команде архивирования файла СУБД будет выполнять проверку корректности заданного файла по следующим критериям:
-
это должен быть файл архива, созданный в результате автономного или оперативного архивирования (т.е. файл с расширением
.lhb
); -
версия БД, в которой создавался архив, должна совпадать с текущей версией СУБД ЛИНТЕР;
-
имя пользователя, создавшего файл архива, должно совпадать с именем пользователя, осуществляющего попытку перезаписи этого файла. Исключение делается только для пользователя, создавшего БД (по умолчанию – пользователь SYSTEM);
-
спецификация пути к файлу не должна содержать абсолютного пути;
-
в спецификации пути к файлу не должны присутствовать каталоги и переходы на уровень вверх на каталог (/../);
-
в качестве имени устройства должны выступать устройства, описанные в системной таблице
$$$DEVICE
СУБД ЛИНТЕР (либо устройствоSY00
).
Если указывается имя файла без имени устройства, сохранение будет происходить в каталоге,
на который указывает переменная среды окружения SY00
.
Переменная среды окружения SY00
определяет расположение основных файлов БД,
её системных таблиц. Устанавливаются переменные среды окружения средствами ОС.
Если в процессе оперативного архивирования выявилось недостаточное количество свободного места на диске для размещения архивного файла, то СУБД можно указать дальнейший порядок действий: остановить либо все работающие в асинхронном режиме процессы архивации, либо подпадающие под определенные критерии. Клиентскому приложению будет возвращено число остановленных процессов архивации.
Останавливать процессы архивации может либо пользователь, который их запустил, либо пользователь DBA-категории с соответствующей привилегией.