Определяемые пользователем архивные группы

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

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

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

ПРИМЕЧАНИЕ

Для использования РБД необходима лицензия. Существуют три различных варианта для лицензионного ключа «rdb_archive»:
— РБД можно использовать с архивными группами
— РБД можно использовать без архивных групп
— РБД вообще нельзя использовать

Рисунок. Узел точки данных «Node1», которые содержит элементы «A» и «C»

Рисунок. Таблица базы данных, которая содержит столбцы «A» и «C»

Таблица всегда содержит столбцы «ELEMENT_ID» и «TS» (первичные ключи), а также столбцы «SYS_ID» (для структуризации) и «BASE» (для копирования базового множества из экспортируемых архивов в самый ранний активный архив). Отдельные элементы точек данных представляют собой одиночные столбцы таблицы базы данных.

ВНИМАНИЕ

Изменять определяемые пользователем архивные группы невозможно. Их можно только удалять и восстанавливать. Это также применяется к несущей структуре точки данных.

ВНИМАНИЕ

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

ВНИМАНИЕ

Имена столбцов (элементы точки данных), используемые для определяемых пользователем архивных групп, должны начинаться с алфавитно-числового символа (от «a» до «z», заглавные или строчные буквы).

ВНИМАНИЕ

Для обеспечения возможности использования определяемых пользователем архивных групп, необходимо установить параметр «writeWithBulk = 1» (также см. Требования и установка). Определяемые пользователем архивные группы невозможно использовать под ОС Solaris.

ВНИМАНИЕ

Так как таблица всегда содержит элементы «ELEMENT_ID» и «TS» (первичные ключи), а также «SYS_ID» и «BASE», добавление столбцов (элементов точки данных) к этим именам не представляется возможным. Кроме того, нельзя использовать ключевые слова (список слов, которые нельзя использовать, указан ниже). База данных не чувствительна к регистру символов. Таким образом, добавление, например, двух столбцов (двух элементов точки данных) под названием «Id» и «ID» (даже если одно слово написано со строчными, а другое — с заглавными буквами) невозможно.

Начальная букваКлючевое слово
AACCESS, ADD, ADMIN, AFTER, ALL, ALLOCATE, ALTER, ANALYZE, AND, ANY, ARCHIVE, ARCHIVELOG, AS, ASC, AUDIT, AUTHORIZATION, AVG
BBACKUP, BECOME, BEFORE, BEGIN, BETWEEN, BFILE, BINARY_DOUBLE, BINARY_FLOAT, BINARY_INTEGER, BLOB, BLOCK, BODY, BOOLEAN, BY
CCACHE, CANCEL, CASCADE, CHANGE,CHAR, CHARACTER, CHECK, CHECKPOINT, CLOB, CLOSE, CLUSTER, COBOL, COLUMN, COMMENT, COMMIT, COMPILE, COMPRESS, CONNECT, CONSTRAINT, CONSTRAINTS, CONTENTS, CONTINUE, CONTROLFILE, COUNT, CREATE, CURRENT, CURSOR, CYCLE
DDATABASE, DATAFILE, DATE, DBA, DEC, DECIMAL, DECLARE, DEFAULT, DELETE, DESC, DISABLE, DISMOUNT, DISTINCT, DOUBLE, DROP DUMP
EEACH, ELSE, ENABLE, END, ESCAPE, EVENTS,  EXCEPT, EXCEPTIONS, EXCLUSIVE, EXEC, EXECUTE, EXISTS, EXPLAIN, EXTENT, EXTERNALLY
FFETCH, FILE, FLOAT, FLUSH, FOR, FORCE, FOREIGN, FORTRAN, FOUND, FREELIST, FREELISTS, FROM, FUNCTION
GGO, GOTO, GRANT, GROUP, GROUPS
HHAVING
IIDENTIFIED, IMMEDIATE, IN, INCLUDING, INCREMENT, INDEX, INDICATOR, INITIAL, INITRANS, INSERT, INSTANCE, INT, INTEGER, INTERSECT, INTO, IS
KKEY
LLANGUAGE, LAYER, LEVEL, LIKE, LINK, LISTS, LOCK, LOGFILE, LONG
MMANAGE, MANUAL, MAX, MAXDATAFILES, MAXEXTENTS, MAXINSTANCES, MAXLOGFILES, MAXLOGHISTORY, MAXLOGMEMBERS, MAXTRANS, MAXVALUE, MIN, MINEXTENTS, MINUS, MINVALUE, MLSLABEL, MODE, MODIFY, MODULE, MOUNT
NNATURAL, NATURALN, NCHAR, NCLOB, NEW, NEXT, NOARCHIVELOG, NOAUDIT, NOCACHE, NOCOMPRESS, NOCYCLE, NOMAXVALUE, NOMINVALUE, NONE, NOORDER, NORESETLOGS, NORMAL, NOSORT, NOT, NOTFOUND, NOWAIT, NULL, NUMBER, NUMERIC, NVARCHAR2
OOF, OFF, OFFLINE, OLD, ON, ONLINE, ONLY, OPEN, OPTIMAL, OPTION, OR, ORDER, OWN
PPACKAGE, PARALLEL, PCTFREE, PCTINCREASE, PCTUSED, PLAN, PLI, PLS_INTEGER, POSITIVE, POSITIVEN, PRECISION, PRIMARY, PRIOR, PRIVATE, PRIVILEGES, PROCEDURE, PROFILE, PUBLIC
QQUOTA
RRAW, READ, REAL, RECORD, RECOVER, REFERENCES, REFERENCING, RENAME, RESETLOGS, RESOURCE, RESTRICTED, REUSE, REVOKE, ROLE, ROLES, ROLLBACK, ROW, ROWID, ROWLABEL, ROWNUM, ROWS
SSAVEPOINT, SCHEMA, SCN, SECTION, SEGMENT, SELECT, SEQUENCE, SESSION, SET, SHARE, SHARED, SIGNTYPE, SIZE, SMALLINT, SNAPSHOT, SOME, SORT, SQL, SQLBUF, SQLCODE, SQLERROR, SQLSTATE, START, STATEMENT_ID, STATISTICS,STOP, STORAGE, STRING, SUCCESSFUL, SUM, SWITCH, SYNONYM, SYSDATE, SYSTEM
TTABLE, TABLES, TABLESPACE, TEMPORARY, THEN, THREAD, TIME, TO, TRACING, TRANSACTION, TRIGGER, TRIGGERS, TRUNCATE
UUID, UNDER, UNION, UNIQUE, UNLIMITED, UNTIL, UPDATE,UROWID, USE, USER, USING
VVALIDATE, VALUES, VARCHAR, VARCHAR2, VARRAY, VIEW
WWHEN, WHENEVER, WHERE, WITH, WORK, WRITE

Создание определяемой пользователем архивной группы

  1. В файле конфигурации убедиться, что параметр «useRDBArchive» = 1. Определяемые пользователем архивные группы можно конфигурировать только для архивирования в базу данных, а не для использования архивов значений.
  2. Необходимо рассмотреть структуру точки данных и создать ее с помощью модуля PARA. В этом примере создается тип точки данных «Test». Структура точки данных состоит из корневого узла и двух подэлементов «Element1» и «Element2». Создается точка данных «ArchiveGroup_DP».

ВНИМАНИЕ

Элементами узла, которые содержит конфигурацию архива, не могут быть элементы «dyn» или «blob», а сам узел не должен состоять из подузлов.

ВНИМАНИЕ

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

  1. Создать шаблон. Открыть панель выбора файла РБД (см. ниже) следующим образом: «System Management» («Управление системой») -> «Database» («База данных») ->» RDB archive groups» («Архивные группы РБД») и щелкнуть на кнопке «Manage Templates» («Управление шаблонами»)  .

Рисунок. Панель выбора файла РБД

Открывается панель создания шаблона:
 

Рисунок. Панель создания пользовательских шаблонов

ВНИМАНИЕ

Имя шаблона может состоять из, максимум, 21 символа.

Создать новый шаблон щелчком на кнопке «New template» («Новый шаблон»)  . Открывается панель создания новых шаблонов: С помощью селектора точки данных, выбрать корневой узел ранее созданной точки данных. Подэлементы указаны в столбце «Table columns» («Столбцы таблицы»), а типы элемента — в столбце «Type» («Тип»). Для ускорения запросов базы данных можно использовать индекс таблицы. Щелкните кнопку Create . В этом примере создан шаблон «ARCHIVEGROUP_DP_ROOTN«.

 ВНИМАНИЕ

Следует отметить, что для таблицы исторических данных можно создать, максимум, девять индексов.

Рисунок. Панель создания нового шаблона

  1. Открыть панель создания новых архивных групп кнопкой «New archive group » («Новая архивная группа») на панели выбора файла РБД.

Рисунок. Панель выбора файла РБД

Открывается панель создания новых архивных групп:

ВНИМАНИЕ

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

Рисунок. Панель создания новой архивной группы

Задать имя группы. Номер менеджера — это номер менеджера архивирования РБД в консоли. Установить флажок в селекторе «User Defined Archive Group» («Определяемая пользователем архивная группа») и выбрать созданный шаблон из выпадающего списка. Щелкните на кнопке OK. Архивная группа «Group1» создана и отображается в панели выбора файла РБД (см. рисунок выше).

  1. Открыть модуль PARA. Добавить конфигурацию архива к корневому элементу созданной точки данных «ArchiveGroup_DP«. Выбрать созданную архивную группу «Group1» из выпадающего списка и установить флажок в селекторе «Store original value» («Сохранять исходное значение»). Щелкните на кнопке OK. Убедиться в том, что менеджер архивирования РБД с номером 99 указан в консоли.

Рисунок. Точка данных «ArchiveGroup_DP» с конфигурацией архива

ВНИМАНИЕ

Определяемые пользователем архивные группы можно добавлять к подузлам (но не к основным узлам), которые не содержат узла, а только элементы (листья). (См. рисунок выше.)

ВНИМАНИЕ

«_corr.._value» или «_online.._value» не можно сохранять, так как, для определяемых пользователем архивных групп, корректирующие значения не существуют.

  1. Создана таблица базы данных с требуемой структурой.

ПРИМЕЧАНИЕ

Используя параметр конфигурации «sendUDAGNullValues«, можно определять отправку менеджером данных
нулевого значения («sendUDAGNullValues» =1) или последнего значения («sendUDAGNullValues» =0) в базу данных РБД, при
изменении одиночного значения. Это означает, что при наличии нескольких элементов точки данных и изменении
значения только одного элемента, значение остальных элементов равное последнему значению элемента или же нулю. Добавить параметр «sendUDAGNullValues» в сегмент [data] файла конфигурации.

Следующий рисунок демонстрирует значения отдельных элементов (вида «group1.History»), когда параметр конфигурации «sendUDAGNullValues» имеет значение 0 и когда он равен 1.

Рисунок. Таблица базы данных

Строки 3 и 4 отображают изменение значения, когда параметр «sendUDAGNullValues» имеет значение 0 (значение одиночного элемента изменено, а значением другого элемента является последнее значение). Строка 5 также отображает изменение значения одного элемента, когда «sendUDAGNullValues» равен 1. Значение другого элемента равно нулю.

ВНИМАНИЕ

При использовании определяемых пользователем архивных групп необходимо помнить о том, что «_original.._status» и «_original.._text» не существуют в РБД, в связи с отсутствием столбцов в таблице Oracle.

Запросы

ВНИМАНИЕ

Для внешних запросов РБД, (не через «КАСКАД Цифра»), все временные метки сохраняются по универсальному глобальному времени (UTC).

ПРИМЕЧАНИЕ

Следует отметить, что такие функции запроса, как «dpGetPeriod», не функционируют с определяемыми пользователем архивными группами. Для запроса
данных необходимо использовать либо ADO, либо «runRealSQLQuery», как указано ниже. В случае запроса данных
определяемых пользователем архивных групп, необходимо выбрать хронологический вид «[archiveGroupName].History».

ВНИМАНИЕ

Алармы с или без конфигурации аларма не могут отображаться в панели алармов или событий.

ПРИМЕЧАНИЕ

Функция «runRealSQLQuery» использует параметры конфигурации сегмента «valueArchiveRDB» («DbUser», «DB» и «DbType». См. раздел Возможные параметры конфигурации для архивирования РБД). С помощью панелей РБД необходимо ввести пароль.

 main(){  dyn_dyn_anytype ret;    DebugN(runRealSQLQuery(«select el.element_name,h.element_id,h.ts, h.Element1,  
h.Element2 from elements el, GROUP1HISTORY h where   
el.element_id = h.element_id order by h.ts,h.element_id desc»,ret));    for (int i = 1; i <= dynlen(ret); i++)  {    string val = ret[i];    DebugN(val);  }}   /* Выбор имени элемента, идентификатора элемента, временной метки, а также элементов «Element1» и «Element2» (элементы точки данных, которая использовалась для шаблона. См. начало этого раздела) из таблицы элементов «el» и таблицы [archiveGroupName].h = «GROUP1HISTORY h», где идентификатор элемента из таблицы элементов = идентификатору элемента таблицы «archiveGroupName». Сортировка по временной метке, идентификатору элемента). «GROUP1HISTORY» — это имя определяемой пользователем архивной группы.

Таблица элементов содержит все элементы точек данных проекта «КАСКАД Цифра», включая дополнительную информацию. Для получения дополнительной информации о таблице элементов, см. раздел Описание таблиц и видов. Структура таблицы «[archiveGroupName] h» зависит от структуры шаблона и точки данных, которая использовалась для создания шаблона. Таблица, тем не менее, всегда содержит столбцы «ELEMENT_ID» и «TS» (временная метка), которые являются первичными ключами, а также столбцы «SYS_ID» (для структуризации) и «BASE» (для копирования базового множества из экспортируемых архивов в самый ранний активный архив). Кроме того, таблица содержит столбцы:ARCHIVE# = номер набора архиваROWID = идентификатор строки  Функция «runRealSQLQuery» работает аналогично «dpGetPeriod». Преимущество заключается
в отсутствии необходимости ввода пароля для идентификации оператора, как при использовании ADO   
*/ 

ВНИМАНИЕ

Для использования функции «runRealSQLQuery», в сегмент [ctrl] файла config.level необходимо добавить «CtrlRDBArchive.dll».

ВНИМАНИЕ

Запрос «SELECT *» использоваться не может.

Очистка схемы РБД, после неудачного создания определяемых пользователем архивных групп, в ручном режиме

  1. В случае успешного выполнения операции возвращается 0: Группа создана, а также создан первый архив в группе.
  2. Первый архив в группе получает время начала по умолчанию 1.1.1970.
  3. Если группа не создана, возвращается -1.
  4. Если группа создана, а первый архив создан не был, возвращается -2. Проверить таблицу «ARC_LOC». В таблице указаны подробные сообщения об ошибках.
  5. В случае необходимости удаления группы, это можно сделать путем выполнения функции БД «ArchiveControl.DeleteArcGroup» непосредственно из базы данных.
  6. Если начальное время первого архива не 1.1.1970, возвращается -3. Это может стать причиной возникновения проблем в дальнейшем, при вводе или чтении значений. Проверить таблицу «ARC_LOC». В таблице указаны подробные сообщения об ошибках.
  7. В случае необходимости удаления архива, это можно сделать путем выполнения функции БД «ArchiveControl.DeleteArcGroupTable» непосредственно из базы данных.
  8. В случае необходимости удаления всей группы, следует выполнить функцию «ArchiveControl.DeleteArcGroup»

Сохранение строк, состоящих из более чем 4000 символов, в базу данных

Требования

  • Сохранять строки, которые содержат более 4000 символов, можно только в пользовательские архивные группы.
  • В таблице «ARC_CONFIG» необходимо задать параметр «maxStringUDAG «. Значение по умолчанию — 4000. Необходимо установить значение, кратное 4000 (например 8000, 20000, 32000, …)
  • Максимальный размер строки — 64000 символов.
  • Преобразование существующих таблиц определяемых пользователем архивных групп не представляется возможным.

Для конфигурирования строк необходимо открыть «RDB Setup and configuration of User Defined Templates panel» («Панель настройки и конфигурирования определяемых пользователем шаблонов РБД»), нажав «System management panel» -> «Database» -> «RDB Archive Groups» -> «Manage Templates» -> «New Template» («Панель управления системой» -> вкладка «База данных» -> «Архивные группы РБД» -> кнопка «Управление шаблонами» -> «Новый шаблон»)

Рисунок. Определяемые пользователем шаблоны с опцией «LongString»

Установкой флажка в селекторе «LongString«, для каждого столбца базы данных типа «string», можно определять возможность увеличения строки. В базе данных, для «maxStringUDAG=12000″, создаются следующие столбцы:

LONGTEXT Varchar2(4000),

LONGTEXT_1 Varchar2(4000) и

LONGTEXT_2 Varchar2(4000)

Длина имени столбца ограничена 27 символами. Строка «LongString» делится на столбцы по 4000 байт.

В связи с отсутствием функции запроса РБД для определяемых пользователем архивных групп, запрос столбцов необходимо выполнять вручную (например, „Select LONGTEXT || LONGTEXT_1 from UDAG where ….“).

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

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