Меры безопасности при архивировании БД

Процедура архивирования/восстановления БД является ответственным мероприятием. Допущенные ошибки могут быть непоправимы (например, случайно удален или запорчен архив БД перед ее восстановлением). Чтобы минимизировать (а в некоторых случаях и вообще исключить) ущерб от неправильных действий пользователей БД, утилита архивирования выполняет максимально возможную проверку корректности заданного сценария архивирования.

Например, в команде на создание архива пользователь по какой-либо причине вместо правильного имени указал ошибочное имя (файл операционной системы или же архивный файл от другой БД). Если при этом в команде архивирования будет присутствовать опция REWRITE, то этот файл будет удален утилитой перед созданием файла архива. Тем самым при создании архива нарушится целостность либо операционной системы, либо функционирующих в ней программ.

Чтобы избежать подобных ситуаций, перед процедурой удаления указанного в команде архивирования файла СУБД будет выполнять проверку корректности заданного файла по следующим критериям:

  • это должен быть файл архива, созданный в результате автономного или оперативного архивирования (т.е. файл с расширением .lhb);

  • версия БД, в которой создавался архив, должна совпадать с текущей версией СУБД ЛИНТЕР;

  • имя пользователя, создавшего файл архива, должно совпадать с именем пользователя, осуществляющего попытку перезаписи этого файла. Исключение делается только для пользователя, создавшего БД (по умолчанию – пользователь SYSTEM);

  • спецификация пути к файлу не должна содержать абсолютного пути;

  • в спецификации пути к файлу не должны присутствовать каталоги и переходы на уровень вверх на каталог (/../);

  • в качестве имени устройства должны выступать устройства, описанные в системной таблице $$$DEVICE СУБД ЛИНТЕР (либо устройство SY00).

Если указывается имя файла без имени устройства, сохранение будет происходить в каталоге, на который указывает переменная среды окружения SY00.

Переменная среды окружения SY00 определяет расположение основных файлов БД, её системных таблиц. Устанавливаются переменные среды окружения средствами ОС.

Если в процессе оперативного архивирования выявилось недостаточное количество свободного места на диске для размещения архивного файла, то СУБД можно указать дальнейший порядок действий: остановить либо все работающие в асинхронном режиме процессы архивации, либо подпадающие под определенные критерии. Клиентскому приложению будет возвращено число остановленных процессов архивации.

Останавливать процессы архивации может либо пользователь, который их запустил, либо пользователь DBA-категории с соответствующей привилегией.