Репликация последовательностей Oracle Streams

pico
Дата: 27.02.2007 10:59:19
Столкнулся с проблемой репликации последовательностей в Oracle 9.2, а точнее на такое ограничение
Oracle9i Streams Release 2 (9.2)
If you share a sequence at multiple databases, then sequence values used for individual rows at these databases may vary. Also, changes to actual sequence values are not captured. For example, if a user references a NEXTVAL or sets the sequence, then a capture process does not capture changes resulting from these operations.


Интересно как авторы стримов представляли себе авто генерацию первичных ключей при репликации двух БД в обе стороны.

На одном из сайтов нашел такой метод. На обоих БД создаются такие последовательности:
на первой БД
create sequence MY_SQ start with 1 increment by 2
на второй БД
create sequence MY_SQ start with 2 increment by 2
Но что делать если у меня не фиксированное число баз...

Вопрос такой, снято ли это ограничение в 10g? Позволяют ли стримы в 10g реплицировать последовательности?
Q u a d r o
Дата: 27.02.2007 12:13:13
Это скорее не сколько проблема Streams, сколько проблема генерации PK на разных базах вообще.

pico
Но что делать если у меня не фиксированное число баз...


Заранее заложить максимальное число баз в sequence.

create sequence MY_SQ start with 1 increment by 100

теперь вы можете иметь до 100 баз (например)
Q u a d r o
Дата: 27.02.2007 12:17:31
P.S. Или рассмотреть использование альтернативных PK (если сиквенс нужен для первичного ключа). Какой-нибудь sys_guid(), например.
яп пошел
Дата: 27.02.2007 12:30:30
Q u a d r o
Какой-нибудь sys_guid(), например.


Нафик нафик, только не туда
Q u a d r o
Дата: 27.02.2007 12:33:07
яп пошел
Q u a d r o
Какой-нибудь sys_guid(), например.


Нафик нафик, только не туда

Не всегда умно мыслить такими категориями ))
яп пошел
Дата: 27.02.2007 12:52:45
Q u a d r o
Не всегда умно мыслить такими категориями ))


Согласен, погорячился, guidы имеют право на жизнь, но я предпочитаю первое решение, либо синтетический (составной) ключ.