Функции архивирования РБД

Модель данных

Менеджер архивов РБД передает изменения значений из «КАСКАД Цифра» в определенные таблицы РБД. Распределение записи того или иного значения в ту или иную таблицу определяется таким же образом, что и для архива значений с помощью конфигурации «_archive«. Таким образом, уникальное распределение определяется между элементом точки данных в «КАСКАД Цифра» и таблицей в РБД, отвечающей за его архивирование.

Структура таблиц в самой БД делится на таблицы значений (значения могут сохраняться в различных группах значений/архивов, см. схему в конце этой страницы) и таблицы алармов (в Oracle существует только одна таблица алармов). Две таблицы используются в каждой группе значений/архивов для управления значениями типа «Array» (например, тип данных «КАСКАД Цифра» «dyn_float«), а оставшиеся типы данных находятся в другой таблице (например, тип данных «КАСКАД Цифра» «int«), отдельно друг от друга.

ВНИМАНИЕ

Типы данных «КАСКАД Цифра» «blob», «struct», «langString», «dpIdentifier» и формы их массивов (см. Диапазоны типа данных), а также тип данных управления «dyn_dyn» (см. Типы данных) не поддерживаются менеджером архивов РБД.

Группирование таблиц по значениям и алармам предусматривает тот факт, что тип и ожидаемый объем данных, очевидно, отличается в двух группах.

Фактическое архивирование не осуществляется в самих таблицах вводных данных Oracle. Эти таблицы только хранят значения «КАСКАД Цифра», которые имеют конфигурацию архива. Каждая таблица вводных данных имеет дочернюю таблицу, которая регистрирует и, следовательно, архивирует изменения значений таблиц вводных данных.

Следовательно, таблица вводных данных Oracle содержит все текущие значения элементов точек данных, назначенных ей и, следовательно текущего образа процесса, несмотря на то, что такие данные были отмечены для архивирования. Значения в таблице вводных данных постоянно переписываются. Дочерняя таблица получает значения из таблицы вводных данных, а изменения значений сохраняются, но не перезаписываются.

Поток данных РБД с правом записи

«КАСКАД Цифра» UI (или драйвер «КАСКАД Цифра») > WCCILevent > WCCILdata > WCCOArdb > libSQLAPI.dll > РБД

Поток данных РБД с правом записи

Версия 1 (без записи конфигурации):

«КАСКАД Цифра» UI (или драйвер «КАСКАД Цифра») > WCCILevent > WCCILdata > WCCOArdb > BasicRDBArchive.dll > libSQLAPI.dll > РБД

Версия 2 (без записи конфигурации):

«КАСКАД Цифра» UI (или драйвер «КАСКАД Цифра») > CtrlRDBArchive.dll > BasicRDBArchive.dll > libSQLAPI.dll > РБД

Поток данных при чтении сжатых значений из РБД

«КАСКАД Цифра» UI (или драйвер «КАСКАД Цифра») > CtrlRDBCompr.dll > BasicRDBArchive.dll > libSQLAPI.dll > РБД

Архивирование, группы архивов, табличные пространства, соглашение о присвоении имен

Таким образом, запись в дочерние таблицы (= наборы архивов) таблиц вводных данных инициирует запуск фактического процесса архивирования. Дочерние таблицы, в которые осуществляется запись и которые называются «текущими», сопоставимы с текущим набором архивов в архивах значений. И, как и там, текущая таблица закрыта, исходя из количества или времени. Таким образом, она называется «активной» и заменяется новой «текущей» таблицей.

В течение всего времени, пока таблица имеет статус «активной» или «текущей», считывание из нее или запись в нее осуществляется с помощью «КАСКАД Цифра» или внешнего средства оценки. Тем не менее, таблицы также могут иметь статус «неактивных». После этого, они больше не доступны («отцеплены», существует только один параметр в Oracle указывающий на существование данной таблицы), но физический файл уже находится в резервном каталоге (следовательно, доступ к неактивному архиву, с помощью базы данных Oracle, невозможен). Этот статус необходим для резервирования таблиц (= перемещения на внешний носитель). После этого, резервированные таблицы получают статус «резервные» и существуют только на резервном носителе (соответствующая неактивная таблица удаляется из сервера Oracle). Конечно же, эти таблицы можно восстановить для обеспечения их доступности для запросов. Перед выполнения резервного копирования таблицы, система осуществляет в ней поиск самого последнего значения каждого элемента точки данных и записывает эти значения в наиболее раннюю оставшуюся соответствующую таблицу, в качестве «остатков». Остатки гарантируют, что значения не полностью утеряны. Если значение не встречается в течение длительного времени, и резервируется снова и снова, это значение будет потеряно.

ПРИМЕЧАНИЕ

В случае использования стандартного издания Oracle, табличные пространства не удаляются, а соответствующие файлы данных только копируются для резервирования. В противном случае, восстановление табличных пространств было бы невозможным.

Все соответствующие таблицы («текущие», «активные», «неактивные») формируют группу архива. В этом случае, две таблицы вводных данных (одна — для «обычных» значений, а другая — для типов данных «array») и дочерние таблицы ответственны за фактическое архивирование всех соответствующих компонентов.  Таким образом, наименьшее возможное содержание группы архива — это четыре таблицы, 2 таблицы вводных данных и 2 дочерние таблицы , имеющие статус «текущая». Тем не менее, конечно, группа архива может также включать в себя дополнительное и изменяющееся количество «активных» и «неактивных» таблиц.

Распределение таблиц Oracle в группах архивов основано на уникальном идентификаторе, состоящем из семи цифр. Это имя используется для идентификации группы, а также является частью имени таблицы. Если посмотреть на таблицы по умолчанию («EventLastVal» и «EventLastValValues» с «EventHistory» и «EventHistoryValues», а также «AlertLastVal» и «AlertLastValValues» с «AlertHistory» и «AlertHistoryValues»), можно увидеть, что первые четыре таблицы, и это очевидно, относятся к группе под названием «Event», а другие четыре таблицы относятся к группе под названием «Alert». Это представления данных чтения. Отдельные таблицы могут называться, например, «EventHistory_00000021» (см. схему ниже).

Настройки изменения таблицы, времени резервирования и т.д., указаны для каждой группы архивов. Если изменение набора архивов осуществляется в группе архива («текущие» таблицы закрыты и становятся актуальными активными таблицами, создается новая пара «текущих» таблиц), каждая новая пара таблиц обозначается уникальным 8-значным номером. Данный номер добавляется к имени новой таблицы в виде суффикса. Кроме того, для каждой новой пары таблиц создается отдельное табличное пространство.

После того, как каждый набор архива сохраняется в собственном табличном пространстве, инициируется выполнение задания резервного копирования или восстановления. Единственное, что нужно сделать — резервное копирование табличного пространства Oracle и его перемещение.

Имена табличных пространств выводятся из имен групп архивов. Табличные пространства, которые содержат пары таблиц группы архива, называются так же, как и группа архива и, дополнительно, включает в себя имя пользователя, в виде префикса и номер архива в виде суффикса (например, имя табличного пространства «Schmidt_Antriebe_00000228.DBF» состоит из номера архива 228, имени группы архива «Antriebe» с таблицами «AntriebeHistory_00000228» и «AntriebeHistoryValues_00000228»).

Имя пользователя может состоять из, максимум, 13 символов.

Табличное пространство, содержащее все прочие таблицы, необходимые для управления архивом, называются так же, как и зарегистрированный в Oracle пользователь, но с префиксом «TS». Следовательно, в случае если настройку РБД осуществляет зарегистрированный в Oracle пользователь с именем «Operator», табличное пространство для всех остальных таблиц имеет имя «TS_Operator».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *