powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Сдвиг последовательностей
13 сообщений из 13, страница 1 из 1
Сдвиг последовательностей
    #39795399
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, коллеги.

Часто слышу, что при переключении на стендбай или миграции на другую БД путем переключения администраторы сдвигают последовательности в БД. Например, в докладе Яндекса при миграции с оракла на постгрес тоже это упоминается.

Можете объяснить в чем необходимость этого мероприятия, желательно на примере, чтобы легче понять. Пробовал найти нормальное объяснение в Гугле, но не нашел то, что меня удовлетворило бы.

Спасибо.
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795403
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну кто-то сдвигает, а кто-то синхронизирует )
Кому лень синхронизировать после того как приехали все данные, те сдвигают, чтобы не нарваться на дублирующие значения в том случае, когда миграция ddl предшествует миграции данных.
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795424
Dr. Oracle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть получается. У меня есть база - primary. Все нормально работает, есть несколько последовательностей. При переключении на стендбай у меня эти последовательности не будут продолжаться идти с того номера, который был последний на праймери до переключения, а они будут как бы обнулены и начнут свой счёт с самого начала? В таком случае могут возникать проблемы при вставке и чтобы этого избежать мы искусственно сдвигаем последовательности или синхронизируем их, как вы это отметили.

Я все правильно понял?
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795480
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr. OracleПри переключении на стендбайТы не видишь никакой принципиальной разницы с переходом на какую-то хрень?
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795488
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dr. OracleПри переключении на стендбайЗначение сиквенса, с учетом кеша, это такая же транзакция, как любая другая.
C физическим стендбаем есть возможность накосячить с целостностью только промеж нескольких систем. В логическом возможностей значительно больше.
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795504
AserYZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Dr. OracleПри переключении на стендбайЗначение сиквенса, с учетом кеша, это такая же транзакция, как любая другая.


Мнеее, не уверен. Номера сиквенсов не откатываются при откатах транзакций, хотите сказать, что каждый nextval пишется в redo? Есть у меня по этому поводу сомнения.
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795510
Фотография Viewer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZНомера сиквенсов не откатываются при откатах транзакций, хотите сказать, что ...
Не домысливайте.
Речь идёт об отношениях primary со standby...
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795522
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZНомера сиквенсов не откатываются при откатах транзакцийОбновление сиквенса при откате транзакции, изменяющей его, откатывается, как любой другой апдейт.
AserYZкаждый nextval пишется в redo?Каждый cache.
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795598
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но при switchover Primary нормально кладется и поэтому последнее значение записывается в БД
Поэтому при открытии Standby в качестве Primary возьмется следующее значение
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795849
AserYZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-Обновление сиквенса при откате транзакции, изменяющей его, откатывается, как любой другой апдейт.


Не могли бы Вы дать ссылку или продемонстрировать? Что конкретно Вы имеете ввиду под "обновлением сиквенса"? Я пока не нашел признаков отката.

Оракла под рукой нет, нашел консоль в инете, 11 версия, нет логов выполнения скриптов, к сожалению.

Создал сиквенс, создал таблицу, сделал 10 инсертов с NEXTVAL, откатил транзакцию. Следующий NEXTVAL вернул 11. Должен был вернуть 1?

Или речь идет о кеше? Сделал то же самое, но вставил 30 записей (чтобы выбрать все значения из кеша). Смотрим на сиквенс - LAST_NUMBER 41, откатываем.
Проверяем NEXTVAL - 31
Проверяем LAST_NUMBER - 41

Что именно откатывается при откате транзакции?
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795854
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AserYZЧто конкретно Вы имеете ввиду под "обновлением сиквенса"?
Код: plsql
1.
update seq$ set increment$=:2,minvalue=:3,maxvalue=:4,cycle#=:5,order$=:6,cache=:7,highwater=:8,audit$=:9,flags=:10 where obj#=:1
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795865
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это делается в рекурсивной (автономной) транзакции и не откатывается вместе с порождающей
...
Рейтинг: 0 / 0
Сдвиг последовательностей
    #39795922
AserYZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав Любомудров,

Я так понял это как раз и есть изменение LAST_NUMBER чтобы при потере кешированных значений не выдать их еще раз.

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


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