powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Синхронизация таблиц
25 сообщений из 118, страница 2 из 5
Синхронизация таблиц
    #39949119
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111
собственно получаем либо новые записи либо измененные
Либо пропускаете часть изменений. Про репликацию читай у классикаМаршакПриехали в город Житомир.
Носильщик пятнадцатый номер
Везёт на тележке багаж:
Диван,
Чемодан,
Саквояж,
Картину,
Корзину,
Картонку,
А сзади ведут собачонку.
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949164
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ilyuha111
CHANGE_ID
Во-первых, это абсолютно нерабочая попытка переизобрести ora_rowscn - зачем вы это пытаетесь сделать? Момент вызова вашей функции абсолютно никак не согласован с моментом реального коммита. К тому же, ORA_ROWSCN и так уже есть в таблице, только включите rowdependencies.
Во-вторых, вы так упорно хотите наступить на грабли, что не хотите прочитать и осознать то, что вам уже посоветовали, что кажется помогать вам бесполезно.
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949193
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,

да пропускаются записи которые не закончены
для этого и просматривается открытые транзакции на момент обмена
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949207
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtender,

пересмотрел все что советовали
большая часть не работает в XE
вторая часть платная
либо все эти снапшоты забьют паять настолько что XE не потянет такой объем
и советы типа
"напиши так как я раньше писал и оно как то работало вот ссылка которая тебе не подойдет"

еще немного вводных
таблиц для обмена больше 100
клиентов примерно столь-же
примерно раз в месяц меняется набор таблиц для обмена или добавляются удаляются новые колонки

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

согласованность особо не нужна, необходимо чтобы при завершении открытой транзакции на момент обмена change_id > START_SCN
если некоторые данные передадутся дважды это не так критично
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949213
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111,

предлагаю упрощенный вариант
1) в каждой табличе в базе1 и базе2 есть поле change_id, которое только в базе1 заполняется триггером из последовательности
2) для синхронизации используем мерже

Код: plsql
1.
2.
3.
4.
merge
  into t1@b2
  using(select * from t1@b1 b1 where b1.change_id>(select max(change_id) from t1@b2))
...


select max(change_id) from t1@b2) можно и как переменную вычислять до мерже

@ чтоб поняно было из каких баз


3) синхронизировать СНАЧАЛА таблицы с ФК потом мастер

схема не будет работать со сложной системой фк-пк (напр ссылка по кругу а-б-с-а)
но мож у Вас нет такого

критикуйте

зы
правильно лог и его накат, но ето сложнее

pss
насчет change_id
в древних версиях была слабо документированная "ф-ция" userenv('COMMITSCN');
почитайте
.....
stax
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949216
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxпредлагаю упрощенный вариант
2 сессии.
Вначале идет коммит с большим change_id,
а потом с меньшим
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949228
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
последний new_change_id это и есть select max(change_id) from t1@b2

"если Вначале идет коммит с большим change_id,а потом с меньшим"
то это не так важно так как обе транзакции попадут в неравенство
единственная проблема это открытые транзакции в момент обмена
change_id у же передвинулся а данные еще не закончены и его нельзя использовать как old_change_id
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949229
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

зы
правильно лог и его накат, но ето сложнее

если матвью лог то его нет в XE :(
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949240
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ilyuha111
единственная проблема это открытые транзакции в момент обмена
еще раз - используйте ora_rowscn хотя бы, а не свои change_id
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949241
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй,

не подумал что транзакции могут по разному закончится

......
stax
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949244
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111

если матвью лог то его нет в XE :(

самому вручную триггером самодельный лог писать

.....
stax
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949251
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax
ilyuha111

если матвью лог то его нет в XE :(

самому вручную триггером самодельный лог писать

.....
stax


структура таблиц меняется следовательно надо менять структуру логов и за этим следить
далее если клиентов 100 то 1 запись в справочнике = 100 записей в логе так ?
если надо обновит 100К записей ?

правильно я все понял ?
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949254
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xtender,

не не совсем понятно зачем
к тому же он больше change_id получился
и еще на ora_rowscn я ни как не могу повлиять
например я могу отключить триггер поставить change_id = 0 что бы эти строки времено не передавались
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949264
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111

не не совсем понятно зачем


ORA_ROWSCN тем и хорош что не будет 22119678

зы
я надеялся на userenv('COMMITSCN') тож от коммита зависит


.....
stax
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949269
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

поясните по ручным логам через триггер
я правильно понял механизм или нет ?
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949286
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111
Stax,

поясните по ручным логам через триггер
я правильно понял механизм или нет ?

Нет.
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949287
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ilyuha111
к тому же он больше change_id получился
потому что вы не понимаете что такое dbms_flashback.get_ system _change_number
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949291
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ilyuha111

и еще на ora_rowscn я ни как не могу повлиять
например я могу отключить триггер поставить change_id = 0 что бы эти строки времено не передавались
проще и правильнее добавить поле-признак синхронизировать или нет.
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949294
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111
Stax,

поясните по ручным логам через триггер
я правильно понял механизм или нет ?


надеюсь что правильно
писать ВСЕ (вернее что необходимо) в лог, Вам возможно не подойдет из-за обьемов

чем не подходит совет xtender (ORA_ROWSCN)?

.....
stax
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949295
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Если вам вообще похрен на точность и консистентность6и прочее, то добавьте просто поле last_update_time и перезаливайте по этому временному полю .
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949307
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ilyuha111
структура таблиц меняется следовательно надо менять структуру логов и за этим следить
далее если клиентов 100 то 1 запись в справочнике = 100 записей в логе так ?
если надо обновит 100К записей ?

правильно я все понял ?
вы так и не поняли из чего состоит структура mview log (mlog$_xxx)?
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949328
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот пример
был обмен
old_change_id = 61582217550
далее мне нужно забрать все записи change_id > 61582217550
их все две и это так и есть, используя change_id я их вижу
ora_rowscn я вижу кучу записей
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949334
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilyuha111,

change_id как(чем) заполняете?

.....
stax
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949337
Фотография Sayan Malakshinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
ilyuha111
ora_rowscn я вижу кучу записей

xtender
К тому же, ORA_ROWSCN и так уже есть в таблице, только включите rowdependencies .
...
Рейтинг: 0 / 0
Синхронизация таблиц
    #39949338
ilyuha111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тут если есть незакрытая транзакция в момент обмена (1)
то записей я еще не вижу (2)
но вижу start_snc в (3)
так что кода нибудь (через час например) когда транзакция закроется я смогу забрать change_id >=61663434929
...
Рейтинг: 0 / 0
25 сообщений из 118, страница 2 из 5
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Синхронизация таблиц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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