Архивирование и восстановление системных объектов БД
Некоторые системные таблицы при сохранении таблиц, независимо от опции, устанавливающей необходимость сохранять данные из таблиц, сохраняются без содержащихся в них данных. К этим таблицам относятся системные таблицы: $$$PROC, $$$TRIG, $$$PRCD, SERVERS, $$$REPL.
Данные, содержащиеся в этих таблицах, после восстановления в новую БД (или в существующую), теряют свой смысл. Для сохранения триггеров и процедур необходимо:
-
выбрать три таблицы
$$$PROC,$$$TRIG,$$$PRCD, выбрать триггеры и процедуры, подлежащие сохранению; -
сохранить таблицы, к которым относятся триггеры - для этого достаточно установить переключатель Сохранять зависимые объекты (рис. 29);
Рисунок 29. Настройка сохранения (восстановления) триггеров и хранимых процедур
-
в дереве объектов выбрать процедуры и триггеры (рис. 30).
Рисунок 30. Выбор сохраняемых триггеров и хранимых процедур
-
нажать Запуск – утилита произведет анализ зависимых объектов и приступит к сохранению (рис. 31).
Рисунок 31. Протокол сохранения триггеров и хранимых процедур
Как видно, необходимые таблицы были сохранены, включая таблицу
TR_DATA2, от которой зависит триггерTR_INSTEADUPDROW.
Для восстановления этих процедур и триггеров необходимо:
-
сначала восстановить таблицы, от которых зависят триггеры, таблицы
$$$PROC,$$$TRIG,$$$PRCD(впрочем, их можно и создать путем запуска SQL-файлаsystab.sqlв программе inl – кому как нравится); -
только после этого восстанавливать сами процедуры и триггеры. Утилита lhbx сама, как правило, это делает при восстановлении в необходимом порядке, если для восстановления выбраны все объекты, содержащиеся в файле архива.
То же самое относится и к восстановлению описания серверов и правил репликации, содержащихся в таблицах
SERVERS,$$$REPL. Т.е. необходимо совместно сохранять эти таблицы и объектыserversиreplication rules.