powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Синхронизация sequences
25 сообщений из 30, страница 1 из 2
Синхронизация sequences
    #39764762
Als1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача довольно тривиальная, может кто сталкивался, есть готовое решение? Есть несколько схем (dev, test, preprod, prod). Как бы между ними синхронизировать сиквенсы? На деве и тесте обычно далеко вперед убегают, релзить сложно.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764771
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Als1973,

А зачем их синхронизировать? Что у вас такого при релизе происходит?
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764772
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Als1973может кто сталкивалсяТогда бы решение можно было найти поиском.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764785
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764786
Als1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jan2aryAls1973,

А зачем их синхронизировать? Что у вас такого при релизе происходит?

как обычно insert с одной схемы с другую. NEXTVAL не прокатывает так как на деве или тесте могут быть удаления внутри сегмента.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764808
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Als1973 На деве и тесте обычно далеко вперед убегают, релзить сложно.
Последовательности часто используют для генерации рк

допустим вернули вы значение взад, а дальше как жить, при инсерте запросто получить dublicate key

.....
stax
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764815
Als1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StaxAls1973 На деве и тесте обычно далеко вперед убегают, релзить сложно.
Последовательности часто используют для генерации рк

допустим вернули вы значение взад, а дальше как жить, при инсерте запросто получить dublicate key

.....
stax

Так и я про то, мне не взад, мне вперед да проде нужно.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764819
jan2ary
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Als1973jan2aryAls1973,

А зачем их синхронизировать? Что у вас такого при релизе происходит?

как обычно insert с одной схемы с другую. NEXTVAL не прокатывает так как на деве или тесте могут быть удаления внутри сегмента.Это плохой дизайн, думайте еще. Сиквенсы обеспечивают уникальность (всего лишь), и логика приложения и запросов не должны зависеть от конкретных значений. И переливка данных из схемы в схему не должна зависеть от конкретных значений. Вы же не мигрируете данные из теста в прод, а только словари?
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764828
Als1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jan2aryЭто плохой дизайн, думайте еще. Сиквенсы обеспечивают уникальность (всего лишь), и логика приложения и запросов не должны зависеть от конкретных значений. И переливка данных из схемы в схему не должна зависеть от конкретных значений. Вы же не мигрируете данные из теста в прод, а только словари?

К меня дизайн положения хранится в таблицах.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764852
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Als1973,

если я правильно понял вопрос, необходимо время от времени в четырех схемах выставить одноименные секвенсы в одинаковое значение.
1) это можно сделать промоткой "отстающих" секвенсов в цикле (типа 100 раз SELECT seq.Nextval FROM dual и она ушла на 100 вперед)
2) или переделать дизайн базы, оставив секвенсы только в одной схеме, а в других вместо секвенсов - лишь " синонимы ".
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764864
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Als1973insert с одной схемы с другуюЕсли данные появляются только в одной схеме, то докуручивать сиквенс, где он все равно не используется, смысла нет. Если данные появляются в нескольких схемах, в прокрутке сиквенса все равно нет смысла, но уже по причине, что не гарантирует промежную уникальность.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764873
Als1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Если данные появляются только в одной схеме, то докуручивать сиквенс, где он все равно не используется, смысла нет. Если данные появляются в нескольких схемах, в прокрутке сиквенса все равно нет смысла, но уже по причине, что не гарантирует промежную уникальность.

Данные во всех схемах должны быть одинаковыми. Интерфейс приложения там хранится, формы описываются...
Задача же простая, сравнить два сиквенса и установить к большему.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764879
Als1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён Als1973,


1) это можно сделать промоткой "отстающих" секвенсов в цикле (типа 100 раз SELECT seq.Nextval FROM dual и она ушла на 100 вперед)


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

Кроик Семён2) или переделать дизайн базы, оставив секвенсы только в одной схеме, а в других вместо секвенсов - лишь " синонимы ".

Там не только разные схемы, там разные инстанции.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764910
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда если без "несколько баз", а только "нескольло схем" и не напрягает, что при пересоздании секвенсов все использующие их триггеры/процедуры/пакеты станут невалидными:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select 
   s.sequence_name,
   max(s.last_number) as max_last_number,
   'DROP SEQUENCE '||s.sequence_name||';' as SQL_01,
   'CREATE SEQUENCE '||s.sequence_name||' START WITH '||to_char(max(s.last_number)+1)||' INCREMENT BY 1 NOCACHE ORDER NOMAXVALUE;' as SQL_02
from 
   all_sequences s
where 
   s.sequence_owner in ('DEV', 'TEST', 'PREPOD', 'PROD')
group by
   s.sequence_name
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764918
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Als1973,

с пересоданием две заморочки
1) права
2) валидация хранимых

как изменить/установить значение много раз обсуждалось

у Вас вообще простой случай, накат вперед

но есть нюанс, чтоб узнать значение последовательности надо спалить номер

....
stax
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764934
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Als1973Задача же простая, сравнить два сиквенса и установить к большему.Через 0 секунд от начала сравнения они могут опять разойтись. Либо ты настолько криворук, что не в состоянии написать простой цикл и удовлетвориться допустимым расхождением, либо ты настолько туп, что предполагаешь, что есть универсальное решение для исправления специфично кривого управления версиями.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764937
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён
Код: plsql
1.
   'DROP SEQUENCE '||s.sequence_name||';' as SQL_01,


Семён, Вы неподражаемы.
...и ведь вроде не первый год "замужем"...
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764941
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Als1973Данные во всех схемах должны быть одинаковыми. Интерфейс приложения там хранится, формы
описываются...

Ну так и копируй данные. При этом они получат новые ключи из последовательностей и ничего
прокручивать не придётся. В чём проблема-то?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764949
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНу так и копируй данные. При этом они получат новые ключи из последовательностей и ничего
прокручивать не придётся. В чём проблема-то?

В кривом дизайне, по-видимому.
Мало того, что сделали справочные коды суррогатным ключом на базе последовательности, так еще и растащили эти последовательности по клиентам и теперь грызут ногти :)

2ТС: просто выделите себе как поставщику решения некий диапазон ключей, в который никто не в праве залезать при кастомизации решения на местах.
На боевых инсталляциях выкрутите последовательность за пределы указанного диапазона.
И просто переносите свои метаданные, уже не трогая последовательности.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764952
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousМало того, что сделали справочные коды суррогатным ключом на базе последовательности, так
еще и растащили эти последовательности по клиентам и теперь грызут ногти :)

Когда ногти отгрызут совсем, возможно, они перестанут мешать написать процедуру переноса
данных с назначением новых ключей всему каскаду. Других мешающих этому факторов я не вижу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764954
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДругих мешающих этому факторов я не вижу.

Поддержка решения при этом осложняется.
Все-таки удобнее точно знать идентификаторы сущностей, которые сам же и тиражируешь.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764955
Als1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stax
но есть нюанс, чтоб узнать значение последовательности надо спалить номер

....
stax

CURRVAL не работает?
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764962
Als1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovНу так и копируй данные. При этом они получат новые ключи из последовательностей и ничего
прокручивать не придётся. В чём проблема-то?


Не получат, никакие триггера не используются. Сиквенсы дергаются только из процедур. Даже если бы получили "новые ключи из последовательностей" мне этого недостаточно, нужны такие же.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764964
Als1973
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Viewer,
20700153
Спасибо, мне этого вполне достаточно.
...
Рейтинг: 0 / 0
Синхронизация sequences
    #39764982
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Als1973Staxно есть нюанс, чтоб узнать значение последовательности надо спалить номер

....
stax

CURRVAL не работает?

в древних версиях не работает

.....
stax
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Синхронизация sequences
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]