Работа с базами данных на многих устройствах (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