Новый тип ограничений Oracle - PullRequest
2 голосов
/ 14 мая 2010

Я должен признать, что это просто застало меня врасплох в производственной системе. Недавно я добавил дополнительные журналы в несколько таблиц для использования с Oracle Change Data Capture. Обычная проверка во время несвязанной сборки кода показала, что это, очевидно, создало отключенные ограничения в базе данных типа «S». Похоже, я не могу найти ссылки на это в документации Oracle, и один «S» мешает Google что-то значимое.

Мои вопросы:

  1. Может кто-нибудь по какой-то причине дополнительные результаты регистрации в неявное ограничение?
  2. Почему он создан с отключенным состояние
  3. Кто-нибудь имеет опыт работы с эффекты включения этих? У нас есть стандартный процесс очистки, который работает после развертываний полностью включить ограничения, которые могут иметь был отключен или включен novalidate по причинам миграции данных.

Ответы [ 2 ]

3 голосов
/ 15 мая 2010

Дополнительное ведение журнала необходимо для поддержки определенных типов асинхронного сбора данных: например, AQ Streams и CDC (реализации Oracle и сторонних производителей). Эти механизмы работают, читая журналы повторов и применяя эти изменения к некоторой другой базе данных Oracle. Цель дополнительной регистрации - увеличить объем данных, включаемых в журналы повторов.

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

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

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

Очевидно, что ограничение типа S определяет столбцы в дополнительной группе журналов. Я думаю, что причина их отключения в том, что они не обеспечивают соблюдение правила целостности данных (в отличие от первичных ключей или проверочных ограничений). Если это так, я думаю, что было бы неразумно включать их, и поэтому вам следует переписать автоматическую очистку, чтобы отфильтровать ограничения типа S.

3 голосов
/ 15 мая 2010

Тип ограничения задокументирован: http://download.oracle.com/docs/cd/E11882_01/server.112/e10820/statviews_1045.htm#REFRN20047

S означает «Дополнительная регистрация», что дополнительно объясняется здесь: http://download.oracle.com/docs/cd/E11882_01/server.112/e10704/strms_glossary.htm#CHDIHHGA и здесь: http://download.oracle.com/docs/cd/E11882_01/server.112/e10705/prep_rep.htm#STREP107

У меня нет никакого опыта с этим. Это результат поиска на tahiti.oracle.com.

С уважением, Роб.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...