Сайт Игоря Гаршина Главная страница
Письмо автору сайта garchine@mail.ru
Опыт орадмина: 1. Инсталляция 2. Генерация 3. Миграция 4. ODBC 5. Администрация 6. Утилиты 7. Netware 8. RedHat 9. NT
Синхронизация: 1. Механизмы 2. Архитектуры 3а. Снапшоты 3б. Мастер-сайт 4. Сравнение ОС 5. RepMan Пр1. Файлы ORA Пр2. CONFIG.ORA Пр3. API Пр4. Словарь данных
Практика работы с Oracle - книга о репликации распределенной базы данных Oracle 8
Вся книга: Практика работы с Oracle: генерация, администрирование, репликация. И.К.Гаршин.
ISBN 5-901314-02-6 (рус.). УДК 004.42Oracle. ББК 32.973.26-018.2. Г21.

В 1999-2000 г. программисты «Нефтегазсистемы» разработали и внедрили в большинство ОАО МН «Транснефти Информационную систему паспортизации магистральных нефтепроводов «СКУТОР». Сначала он был создан на базе MS Access, затем переведен на Oracle 8 с поддкржкой асинхронной репликации с помощью программы Oracle Multimaster. В книге подробно описан авторский опыт перевода и внедрения этой базы данных.

Автор признателен руководителям и сотрудникам ЗАО «Нефтегазсистемы», начальникам и персоналу вычислительных центров региональных управлений ОАО «Транснефть», c чьей помощью был разработан и внедрен данный Oracle-проект.

Приложение 4. Словарь БД

            Здесь даны, в основном, те представления, которые участвуют в примерах и скриптах. Наиболее используемые представления описаны подробно, остальные – вкратце.

 

Представления по репликационным объектам

            Приведены только представления 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).

 



Игорь Гаршин, E-mail: garchine@mail.ru, URL: garshin.ru.

Страницы со статьей: Репликация Oracle | Все статьи
Я.Метрика: просмотры, визиты и хиты сегодня
На правах рекламы (см. условия):