|
Вся книга: Практика работы с Oracle: генерация, администрирование, репликация. И.К.Гаршин.
ISBN 5-901314-02-6 (рус.). УДК 004.42Oracle. ББК 32.973.26-018.2. Г21. В 1999-2000 г. программисты «Нефтегазсистемы» разработали и внедрили в большинство ОАО МН «Транснефти Информационную систему паспортизации магистральных нефтепроводов «СКУТОР». Сначала он был создан на базе MS Access, затем переведен на Oracle 8 с поддкржкой асинхронной репликации с помощью программы Oracle Multimaster. В книге подробно описан авторский опыт перевода и внедрения этой базы данных. |
Автор признателен руководителям и сотрудникам ЗАО «Нефтегазсистемы», начальникам и персоналу вычислительных центров региональных управлений ОАО «Транснефть», c чьей помощью был разработан и внедрен данный Oracle-проект.
Здесь даны, в основном, те представления, которые участвуют в примерах и скриптах. Наиболее используемые представления описаны подробно, остальные – вкратце.
Приведены только представления ALL_. Существуют также соответствующие представления DBA_ и USER_.
1. ALL_REPAUDIT_ATTRIBUTE:
· ATTRIBUTE varchar2(30)
· DATA_TYPE varchar2(9) - тип поля
· DATA_LENGTH number(38) - длина поля
· SOURCE varchar2(92)
2. ALL_REPAUDIT_COLUMN:
· SNAME varchar2(30) – имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· COLUMN_NAME varchar2(30) - имя поля
· BASE_SNAME varchar2(30)
· BASE_ONAME varchar2(30) - имя объекта (таблицы и пр.)
· BASE_CONFLICT_TYPE varchar2(10) - тип
· BASE_REFERENCE_NAME varchar2(30)
· ATTRIBUTE varchar2(30)
3. ALL_REPCAT - мастер-группы и статус:
· SNAME varchar2(30) - имя схемы
· MASTER varchar2(1)
· STATUS varchar2(9) - статус
· SCHEMA_COMMENT varchar2(80)
· GNAME varchar2(30) - имя группы
4. ALL_REPCOLUMN - реплицируемые поля:
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· TYPE varchar2(12) - тип
· CNAME varchar2(30)
· ID number - идентификатор
· POS number - позиция
· COMPARE_OLD_ON_DELETE varchar2(1)
· COMPARE_OLD_ON_UPDATE varchar2(1)
5. ALL_REPCOLUMN_GROUP - имена групп полей для разрешения конфликтов:
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· GROUP_NAME varchar2(30) - имя группы полей
· GROUP_COMMENT varchar2(80)
6. ALL_REPCONFLICT - типы и имена методов разрешений конфликтов:
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· CONFLICT_TYPE varchar2(10)– тип конфликта
· REFERENCE_NAME varchar2(30)
7. ALL_REPDDL:
· LOG_ID number - идентификатор
· SOURCE varchar2(128)
· ROLE varchar2(1)
· MASTER varchar2(128)
· LINE number(38)
· TEXT varchar2(2000)
8. ALL_REPGENERATED - имена репликационных модулей по таблицам (см. использование: Часть 2, Глава 3: SQL-команды по анализу и управлению репликацией, Анализ объектов в мастер-группе):
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· TYPE varchar2(12) - тип
· BASE_SNAME varchar2(30)
· BASE_ONAME varchar2(30) - имя объекта (таблицы и пр.)
· BASE_TYPE varchar2(12) - тип
· PACKAGE_PREFIX varchar2(30)
· PROCEDURE_PREFIX varchar2(30)
· DISTRIBUTED varchar2(1)
· REASON varchar2(30)
9. ALL_REPGENOBJECTS:
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (модуль $RP / $RR)
· TYPE varchar2(12) – тип объекта (Package / Package Body)
· BASE_SNAME varchar2(30)
· BASE_ONAME varchar2(30) - имя объекта (таблицы и пр.)
· BASE_TYPE varchar2(12) - тип
· PACKAGE_PREFIX varchar2(30)
· PROCEDURE_PREFIX varchar2(30)
· DISTRIBUTED varchar2(1)
· REASON varchar2(30)
10. ALL_REPGROUP:
· SNAME varchar2(30) - имя схемы
· MASTER varchar2(1)
· STATUS varchar2(9) - статус
· SCHEMA_COMMENT varchar2(80)
· GNAME varchar2(30) - имя группы
11. ALL_REPGROUPED_COLUMN:
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы)
· GROUP_NAME varchar2(30) - имя группы полей
· COLUMN_NAME varchar2(30) - имя поля
12. ALL_REPKEY_COLUMNS:
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· COL varchar2(30) - поле
13. ALL_REPOBJECT – все репликационные объекты с указанием их типа (таблицы, модули и пр.) и статуса (см. использование: Часть 2, Глава 3: Заключительные работы; Возможные ошибки и методы их устранения; SQL-команды по анализу и управлению репликацией):
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· TYPE varchar2(12) - тип
· STATUS varchar2(9) – статус (Valid или Error)
· GENERATION_STATUS varchar2(9) – статус (для таблиц: GENERATED или пусто - тогда в ORM статус NeedsGen)
· ID number - идентификатор
· OBJECT_COMMENT varchar2(80)
· GNAME varchar2(30) - имя группы
· MIN_COMMUNICATION varchar2(1)
14. ALL_REPPARAMETER_COLUMN - таблицы с рядом параметров (метод разрешения конфликтов, поле для разрешения (например, CORDATE) и пр.):
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· CONFLICT_TYPE varchar2(30) - тип
· REFERENCE_NAME varchar2(30)
· SEQUENCE_NO number
· METHOD_NAME varchar2(30) - имя метода разреш.конфликтов
· FUNCTION_NAME varchar2(30)
· PRIORITY_GROUP varchar2(30)
· PARAMETER_TABLE_NAME varchar2(30)
· PARAMETER_COLUMN_NAME varchar2(30) - имя поля
· PARAMETER_SEQUENCE_NO number
15. ALL_REPPRIORITY:
· SNAME varchar2(30) - имя схемы
· PRIORITY_GROUP varchar2(30)
· PRIORITY number
· DATA_TYPE varchar2(9) - тип поля
· FIXED_DATA_LENGTH number(38) - длина поля
· CHAR_VALUE char(255)
· VARCHAR2_VALUE varchar2(4000)
· NUMBER_VALUE number
· DATE_VALUE date
· RAW_VALUE raw(2000)
· GNAME varchar2(30) - имя группы
· NCHAR_VALUE nchar(500)
· NVARCHAR2_VALUE nvarchar2(1000)
· LARGE_CHAR_VALUE char(2000)
16. ALL_REPPRIORITY_GROUP:
· SNAME varchar2(30) - имя схемы
· PRIORITY_GROUP varchar2(30)
· DATA_TYPE varchar2(9) - тип поля
· FIXED_DATA_LENGTH number(38) - длина поля
· PRIORITY_COMMENT varchar2(80)
· GNAME varchar2(30) - имя группы
17. ALL_REPPROP - таблицы с мастер-БД
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· TYPE varchar2(12) - тип
· DBLINK varchar2(128)
· HOW varchar2(13)
· PROPAGATE_COMMENT varchar2(80)
18. ALL_REPRESOL_STATS_CONTROL:
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· CREATED date
· STATUS varchar2(9) - статус
· STATUS_UPDATE_DATE date
· PURGED_DATE date
· LAST_PURGE_START_DATE date
· LAST_PURGE_END_DATE date
19. ALL_REPRESOLUTION - таблицы с методами РК:
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· CONFLICT_TYPE varchar2(10) - тип
· REFERENCE_NAME varchar2(30) – имя группы полей
· SEQUENCE_NO number
· METHOD_NAME varchar2(80) - имя метода разрешения конфликтов
· FUNCTION_NAME varchar2(92)
· PRIORITY_GROUP varchar2(30)
· RESOLUTION_COMMENT varchar2(80)
20. ALL_REPRESOLUTION_METHOD - все доступные методы разрешений конфликтов изменения:
· CONFLICT_TYPE varchar2(10) - тип
· METHOD_NAME varchar2(80) - имя метода разрешения конфликтов
21. ALL_REPRESOLUTION_STATISTICS:
· SNAME varchar2(30) - имя схемы
· ONAME varchar2(30) - имя объекта (таблицы и пр.)
· CONFLICT_TYPE varchar2(10) - тип
· REFERENCE_NAME varchar2(30)
· METHOD_NAME varchar2(80) - имя метода разрешения конфликтов
· FUNCTION_NAME varchar2(92)
· PRIORITY_GROUP varchar2(30)
· RESOLVED_DATE date
· PRIMARY_KEY_VALUE varchar2(2000)
22. ALL_REPSCHEMA - мастер-группы по мастер-сайтам:
· SNAME varchar2(30) - имя схемы
· DBLINK varchar2(128)
· MASTERDEF varchar2(1)
· SNAPMASTER varchar2(1)
· MASTER_COMMENT varchar2(80)
· GNAME varchar2(30) - имя группы
· MASTER varchar2(1)
23. ALL_REPSITES:
· GNAME varchar2(30) - имя группы
· DBLINK varchar2(128)
· MASTERDEF varchar2(1)
· SNAPMASTER varchar2(1)
· MASTER_COMMENT varchar2(80)
· MASTER varchar2(1)
1. USER_REPCATLOG – Основное VIEW по административным запросам мастер-сайтов (также ALL_ и DBA_) (использование см. Часть 2, Глава 3: Анализ административных запросов):
· ID number - ид-р а/з
· SOURCE varchar2(128) - м-сайт, где выполняется а/з
· USERID varchar2(30) - адм-р репликации (REPADMIN)
· TIMESTAMP date - дата генерации а/з
· ROLE varchar2(9) - роль (MASTERDEF на деф-сайте, MASTER – на дест-сайте)
· MASTER varchar2(128) - м-сайт, где порожден а/з
· SNAME varchar2(30) - схема
· REQUEST varchar2(28) - имя административного запроса:
CREATE_MASTER_REPOBJECT,
DROP_MASTER_REPOBJECT,
END_PHASE_2,
GENERATE_REPLICATION_SUPPORT,
GENERATE_SUPPORT_PHASE_1,
GENERATE_SUPPORT_PHASE_2…
· ONAME varchar2(30) - объект (как прав., таблица)
· TYPE varchar2(12) - тип объекта (TABLE, …)
· STATUS varchar2(14) - статус административного запроса:
AWAIT_CALLBACK
DO_CALLBACK
ERROR
READY
· MESSAGE varchar2(200) - сообщение об ошибке, как правило:
· ORA-02049: timeout: distributed transaction waiting for lock
· ORA-02068: following severe error from ULAN
· ORA-03113: end-of-file on communication channel
· ORA-23308: object PLIPEKN.PARPARK does not exist or is invalid
· ERRNUM number - номер ORA-ошибки
· GNAME varchar2(30) - название мастер-группы
Иногда после запуска задачи Oracle некорректно вычисляет ее параметр Next Date и, соответственно, поле NEXT_DATE в системной таблице JOB$ (например, устанавливает 87-й день), что приводит к невозможности отображения списка задач средствами Oracle Replication Manager (и соответсвующих полей в обычных запросах). В этом случае для анализа задач необходимо воспользоваться просмотром представления DBA_JOBS (или USER_JOBS) и исправить поле NEXT_DATE (например, используя скрипт JobBack.sql, исправив параметр next_date на SYSDATE - см. Часть 2, Глава 3: Администрирование задач).
1. DBA_JOBS - Список всех задач. Поля:
· JOB number - номер задачи
· LOG_USER varchar2(30)
· PRIV_USER varchar2(30)
· SCHEMA_USER varchar2(30) - схема
· LAST_DATE date - дата последнего запуска
· LAST_SEC varchar2(8) - время последнего запуска
· THIS_DATE date
· THIS_SEC varchar2(8)
· NEXT_DATE date - дата следующего запуска
· NEXT_SEC varchar2(8) - время следующего запуска
· TOTAL_TIME number
· BROKEN varchar2(1) - статус (Normal / Broken)
· INTERVAL varchar2(200) - интервал между запусками
· FAILURES number - кол-во неудачных запусков
· WHAT varchar2(4000)
· CURRENT_SESSION_LABEL mlslabel
· CLEARANCE_HI mlslabel
· CLEARANCE_LO mlslabel
· NLS_ENV varchar2(4000)
· MISC_ENV raw(32)
Для проверки выполненных транзакций и поиска информации по распределенным транзакциям используются журнал изменений EDITIONS в БД Вашей Cистемы и приведенные ниже представления Словаря данных (для пользователей SYSTEM и REPADMIN). Примеры использования данных представлений см. в: Часть 2, Глава 3: Анализ транзакций.
· DEFCALL – Записи всех удаленных распределенных процедурных вызовов (remote procedure calls - RPCs). Поля:
· CALLNO number – номер вызова
· DEFERRED_TRAN_ID varchar2(30) – номер т/а
· SCHEMANAME varchar2(30) - схема
· PACKAGENAME varchar2(30) – удаленный модуль (RP$ или RR$)
· PROCNAME varchar2(30) – процедура удаленного модуля (REP_DELETE, REP_INSERT, REP_UPDATE)
· ARGCOUNT number – номер аргумента
· DEFCALLDEST – Списки всех дест-сайтов для каждого распределенного RPC. Поля:
· CALLNO number – номер вызова
· DEFERRED_TRAN_ID varchar2(30) – номер т/а
· DBLINK varchar2(128) – dblink
Представление возвращает то же кол-во записей, что и предыдущее (DEFCALL)
· DEFDEFAULTDEST - Списки дест-сайтов по умолчанию для каждого распределенного RPC:
· DBLINK varchar2(128)
· DEFERROR - Несет информацию о транзакциях, которые не могут выполниться (использование см. в: Часть 2, Глава 3: Анализ транзакций). Поля:
· DEFERRED_TRAN_ID varchar2(22) – номер т/а
· ORIGIN_TRAN_DB varchar2(128)
· ORIGIN_TRAN_ID varchar2(22)
· CALLNO number – номер вызова
· DESTINATION varchar2(128) – дест-сайт
· START_TIME date
· ERROR_NUMBER number – номер ошибки
· ERROR_MSG varchar2(2000) – сообщение об ошибке
· RECEIVER varchar2(30)
· DEFLOB – Хранит LOB-параметры по распределенным RPC. Вся в SQL*Plus не просматривается:
· ID raw(16)
· DEFERRED_TRAN_ID varchar2(22)
· BLOB_COL blob
· CLOB_COL clob
· NCLOB_COL nclob
· DEFSCHEDULE – Показывает информацию, какие задачи запланированы на выполнение следующими и сообщения о неудачных попытках выполнения. Поля:
· DBLINK varchar2(128) – dblink
· JOB number - задача
· INTERVAL varchar2(200) – интервал выполнения задачи
· NEXT_DATE date – время следующего выполнения задачи
· LAST_DATE date – время предыдущего выполнения задачи
· DISABLED char(1) – признак временной отмены задачи
· LAST_TXN_COUNT number
· LAST_ERROR_NUMBER number – номер ошибки последнего неудачного выполнения задачи
· LAST_ERROR_MESSAGE varchar2(2000) – сообщение об ошибке
· DEFTRAN – Записи всех распределенных транзакций (без указания сайтов, но с указанием времени возникновения транзакции) (использование см. в: Часть 2, Глава 3: Анализ транзакций). Поля:
· DEFERRED_TRAN_ID varchar2(30) – номер т/а
· DELIVERY_ORDER number – порядок передачи т/а
· DESTINATION_LIST varchar2(1)
· START_TIME date – время возникновения т/а
· DEFTRANDEST – Списки дест-сайтов для распределенных транзакций (c указанием сайтов, что более важно) (использование см. в: Часть 2, Глава 3: Анализ транзакций). Поля:
· DEFERRED_TRAN_ID varchar2(30) – номер т/а
· DELIVERY_ORDER number – порядок передачи т/а
· DBLINK varchar2(128) – dblink (сайт назначения для т/а)
Представление возвращает то же кол-во записей, что и предыдущее (DEFTRAN).