|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 собственно получаем либо новые записи либо измененные Носильщик пятнадцатый номер Везёт на тележке багаж: Диван, Чемодан, Саквояж, Картину, Корзину, Картонку, А сзади ведут собачонку. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2020, 22:17 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 CHANGE_ID Во-вторых, вы так упорно хотите наступить на грабли, что не хотите прочитать и осознать то, что вам уже посоветовали, что кажется помогать вам бесполезно. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 02:22 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
-2-, да пропускаются записи которые не закончены для этого и просматривается открытые транзакции на момент обмена ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 08:25 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
xtender, пересмотрел все что советовали большая часть не работает в XE вторая часть платная либо все эти снапшоты забьют паять настолько что XE не потянет такой объем и советы типа "напиши так как я раньше писал и оно как то работало вот ссылка которая тебе не подойдет" еще немного вводных таблиц для обмена больше 100 клиентов примерно столь-же примерно раз в месяц меняется набор таблиц для обмена или добавляются удаляются новые колонки качаем эти грабли, потому что они уже как то работают записи продают при обмене, но это не так критично, чтобы глобально что то переписывать или что то покупать согласованность особо не нужна, необходимо чтобы при завершении открытой транзакции на момент обмена change_id > START_SCN если некоторые данные передадутся дважды это не так критично ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 09:31 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111, предлагаю упрощенный вариант 1) в каждой табличе в базе1 и базе2 есть поле change_id, которое только в базе1 заполняется триггером из последовательности 2) для синхронизации используем мерже Код: plsql 1. 2. 3. 4.
select max(change_id) from t1@b2) можно и как переменную вычислять до мерже @ чтоб поняно было из каких баз 3) синхронизировать СНАЧАЛА таблицы с ФК потом мастер схема не будет работать со сложной системой фк-пк (напр ссылка по кругу а-б-с-а) но мож у Вас нет такого критикуйте зы правильно лог и его накат, но ето сложнее pss насчет change_id в древних версиях была слабо документированная "ф-ция" userenv('COMMITSCN'); почитайте ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 10:02 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
Staxпредлагаю упрощенный вариант 2 сессии. Вначале идет коммит с большим change_id, а потом с меньшим ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 10:08 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
последний new_change_id это и есть select max(change_id) from t1@b2 "если Вначале идет коммит с большим change_id,а потом с меньшим" то это не так важно так как обе транзакции попадут в неравенство единственная проблема это открытые транзакции в момент обмена change_id у же передвинулся а данные еще не закончены и его нельзя использовать как old_change_id ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 10:40 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
Stax, зы правильно лог и его накат, но ето сложнее если матвью лог то его нет в XE :( ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 10:42 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 единственная проблема это открытые транзакции в момент обмена ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 11:11 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
123йй, не подумал что транзакции могут по разному закончится ...... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 11:15 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 если матвью лог то его нет в XE :( самому вручную триггером самодельный лог писать ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 11:17 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
Stax ilyuha111 если матвью лог то его нет в XE :( самому вручную триггером самодельный лог писать ..... stax структура таблиц меняется следовательно надо менять структуру логов и за этим следить далее если клиентов 100 то 1 запись в справочнике = 100 записей в логе так ? если надо обновит 100К записей ? правильно я все понял ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 11:27 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
xtender, не не совсем понятно зачем к тому же он больше change_id получился и еще на ora_rowscn я ни как не могу повлиять например я могу отключить триггер поставить change_id = 0 что бы эти строки времено не передавались ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 11:32 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 не не совсем понятно зачем ORA_ROWSCN тем и хорош что не будет 22119678 зы я надеялся на userenv('COMMITSCN') тож от коммита зависит ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 12:01 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
Stax, поясните по ручным логам через триггер я правильно понял механизм или нет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 12:11 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 Stax, поясните по ручным логам через триггер я правильно понял механизм или нет ? Нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 12:34 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 к тому же он больше change_id получился ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 12:37 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 и еще на ora_rowscn я ни как не могу повлиять например я могу отключить триггер поставить change_id = 0 что бы эти строки времено не передавались ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 12:39 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 Stax, поясните по ручным логам через триггер я правильно понял механизм или нет ? надеюсь что правильно писать ВСЕ (вернее что необходимо) в лог, Вам возможно не подойдет из-за обьемов чем не подходит совет xtender (ORA_ROWSCN)? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 12:42 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
Если вам вообще похрен на точность и консистентность6и прочее, то добавьте просто поле last_update_time и перезаливайте по этому временному полю . ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 12:44 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 структура таблиц меняется следовательно надо менять структуру логов и за этим следить далее если клиентов 100 то 1 запись в справочнике = 100 записей в логе так ? если надо обновит 100К записей ? правильно я все понял ? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 13:04 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
вот пример был обмен old_change_id = 61582217550 далее мне нужно забрать все записи change_id > 61582217550 их все две и это так и есть, используя change_id я их вижу ora_rowscn я вижу кучу записей ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 13:50 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111, change_id как(чем) заполняете? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 13:58 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
ilyuha111 ora_rowscn я вижу кучу записей xtender К тому же, ORA_ROWSCN и так уже есть в таблице, только включите rowdependencies . ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 14:00 |
|
Синхронизация таблиц
|
|||
---|---|---|---|
#18+
тут если есть незакрытая транзакция в момент обмена (1) то записей я еще не вижу (2) но вижу start_snc в (3) так что кода нибудь (через час например) когда транзакция закроется я смогу забрать change_id >=61663434929 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2020, 14:01 |
|
|
start [/forum/topic.php?fid=52&msg=39949207&tid=1881319]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 17ms |
total: | 164ms |
0 / 0 |