Работа с базами данных на многих устройствах (devenv)
Синтаксис
/devenv=< устройство >[< разделитель > < устройство > …] < устройство >::=< переменная окружения >=< рабочий каталог >:< архивный каталог > < переменная окружения >::=имя переменной окружения, используемой для указания устройства с БД < рабочий каталог > и < архивный каталог > – спецификация пути к рабочему и архивному каталогу БД соответственно < разделитель > – для ОС типа Windows ";", для ОС типа UNIX ":"
Описание
По умолчанию система резервирования предполагает, что все файлы БД расположены на одном устройстве (в одном каталоге). Это устройство задается либо переменной окружения SY00, либо ключами командной строки pathtodb
, pathtoarc
.
Ключ /devenv
позволяет работать с базами данных, размещенными на нескольких устройствах. Значение этого ключа определяет, какие переменные окружения должны быть установлены при запуске ядра СУБД ЛИНТЕР и других утилит для данной БД.
Ключ имеет приоритет над переменными среды окружения и остальными опциями выбора каталогов.
Работа с базами данных на нескольких устройствах имеет следующие особенности:
-
при очистке БД удаляются все файлы, имеющие такой же вид, как файлы БД, независимо от того, принадлежат ли они БД или нет;
-
поскольку БД расположена в нескольких каталогах, невозможно создать список файлов БД, находящихся в одном каталоге. Это ограничивает применение шаблона %LIST% (список файлов БД без указания путей) при создании архивов. Вместо этого шаблона рекомендуется применять шаблон %FULLIST%;
-
при архивировании шаблон %FILE% определяет только имя файла без каталога. Соответственно, файлы в архиве оказываются нераспределенными по каталогам;
-
БД также не может быть восстановлена из архива автоматически (ключ
/crash
), поскольку архив не может быть развернут в один каталог. Восстановление из архива должно производиться администратором системы резервирования в ручном режиме; -
при использовании ключа
/show
должен быть установлен и ключ/devenv
для отображения корректной информации. Для получения информации предпочтительно использовать утилиту hresctl (srvcmd); -
при отображении информации утилитами srvcmd, hresctl или server ключом
/show
выводится только каталог, соответствующий устройству SY00. Остальные устройства не отображаются; -
для работы системы резервирования с базой, расположенной на нескольких устройствах, недопустимо указывать пути этих устройств явно, то есть запросом create or replace device, или установкой переменных окружения. Вместо этого необходимо использовать опцию
/devenv
для указания пар каталогов устройств рабочей и резервной базы данных. То есть система резервирования работает только с незарегистрированными устройствами; -
если базы будут использоваться вне системы резервирования, то устанавливать пути к устройствам необходимо установкой переменных окружения, соответствующих устройствам;
-
для работы с незарегистрированными устройствами нужно назначить соответствующие привилегии пользователям. В простейшем случае запросом:
grant access on unlisted device to all;
См. документ «Администрирование комплекса средств защиты данных».
Примечание
На ОС Windows работа с несколькими устройствами не реализована.
Пример
Задается установка 2-х переменных окружения SY00 и SY01. Устройство SY00 располагается в каталогах /path/to/work/db
или /path/to/arc/db
, а устройство SY01 в каталогах /path/to/work/db_dir
или /path/to/arc/db_dir
, соответственно:
SY00=/path/to/work/db:/path/to/arc/db:SY01=/path/to/work/db_dir:/path/to/arc/db_dir