powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Oracle GoldenGate. Фильтр по времени.
19 сообщений из 19, страница 1 из 1
Oracle GoldenGate. Фильтр по времени.
    #39481533
Evgeny2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток, уважаемые знатоки.

Есть проблема которую не могу решить без вашей помощи, подскажите пожалуйста.

Мне нужно исключить операции delete в определенный промежуток времени, например с 1 до 5 (AM). Только их и только в это время.
Я нашел конструкцию FILTER, текущее время @DATENOW, приведение даты @DATE, конверт строки в число @NUMSTR:

Итого может сработать, что-то типа такого:
FILTER(IGNORE DELETE, @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) >= 1 and @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) <= 5)

Подскажите, пожалуйста, такая конструкция будет работать или как сделать грамотно?
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481538
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
@datenow...
Что будете делать, если репликат отстанет от источника, скажем, на сутки и придется его догонять?
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481546
Evgeny2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно лучше иметь время транзакции, но как его заполучить на нашел, поэтому использую @DATENOW.
Там более прецедентов с отставанием репликации не было.

andrey_anonymous, а ты знаешь как получить время транзакции?
Вообще такая маска будет работать @DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW) ?
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481548
Evgeny2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О - это время транзакции @GETENV ('GGHEADER', 'COMMITTIMESTAMP') ?!
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481556
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgeny2О - это время транзакции @GETENV ('GGHEADER', 'COMMITTIMESTAMP') ?!
В первом приближении - да.
Но есть ньюанс.
В дефолтном режиме экстракта TCPSOURCETIMER это время будет скорректировано на время передачи конкретной LCR по сети на сайт репликата, что дает "дрейф" этого показателя, временами - весьма заметный.
Можно поставить экстракт в NOTCPSOURCETIMER.
Можно сложить committimestamp в пользовательский токен на пампе.
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481581
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgeny2Доброе время суток, уважаемые знатоки.

Есть проблема которую не могу решить без вашей помощи, подскажите пожалуйста.

Мне нужно исключить операции delete в определенный промежуток времени, например с 1 до 5 (AM). Только их и только в это время.
Я нашел конструкцию FILTER, текущее время @DATENOW, приведение даты @DATE, конверт строки в число @NUMSTR:

Итого может сработать, что-то типа такого:
FILTER(IGNORE DELETE, @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) >= 1 and @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) <= 5)

Подскажите, пожалуйста, такая конструкция будет работать или как сделать грамотно?Если это пакетная работа и вы ее контролируете, то лучше это сделать под отдельным пользователем, либо пометить эту транзакцию тэгом. Потом на extract отсеивать этого пользователя/тэг
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481605
Evgeny2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению delete делает "черный ящик".....
Я конечно могу беспринципно залезть в него, но при обновлении ПО - тэг точно затрется, а для пользователя есть вероятность что он поменяется.
Хотя и время подрезки БД, тоже могут поменять.
Как по мне, исключения delete по времени меньшее из зол..
Но за наводку по пользователю спасибо - этот вопрос я подниму.

А пользователь БД или OS ? Что-то я только про OS USER вижу...
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481636
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgeny2К сожалению delete делает "черный ящик".....
Я конечно могу беспринципно залезть в него, но при обновлении ПО - тэг точно затрется, а для пользователя есть вероятность что он поменяется.
Хотя и время подрезки БД, тоже могут поменять.
Как по мне, исключения delete по времени меньшее из зол..
Но за наводку по пользователю спасибо - этот вопрос я подниму.

А пользователь БД или OS ? Что-то я только про OS USER вижу...По пользователю БД - tranlogoptions excludeuser
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481655
Evgeny2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Андрей и Александр, время получил.
Теперь дело за малым, завернуть это время в фильтр...
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481817
Evgeny2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, фильтр не работает.
Падает репликат с ошибкой OGG-00375: Error in FILTER clause.
Фильтр такой:
Код: plsql
1.
FILTER(IGNORE DELETE, @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) >= 14 and @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) < 15)



Что может быть не так?
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481844
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgeny2Ребята, фильтр не работает.
Падает репликат с ошибкой OGG-00375: Error in FILTER clause.
Фильтр такой:
Код: plsql
1.
FILTER( ... and ...)


Что может быть не так?
А что, так можно было?

http://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_datainteg.htm#g1110854
Table 12-6 Using Multiple FILTER Statements
Там же, Example 12-4 Using the @RANGE Function
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481858
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgeny2Ребята, фильтр не работает.
Падает репликат с ошибкой OGG-00375: Error in FILTER clause.
Фильтр такой:
Код: plsql
1.
FILTER(IGNORE DELETE, @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) >= 14 and @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) < 15)



Что может быть не так?Обычно в репорте ГГ подсвечивает, где ошибка
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39481933
Evgeny2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2017-07-03 16:35:55 INFO OGG-02243 Opened trail file /gg12c/dirdat/av000000061 at 2017-07-03 16:35:55.600863.

2017-07-03 16:35:55 INFO OGG-03506 The source database character set, as determined from the trail file, is UTF-8.

2017-07-03 16:35:55 INFO OGG-06505 MAP resolved (entry to_del_id_disc): MAP "to_del_id_disc", target del_id_discounts_2,FILTER(IGNORE DELETE, @NUMSTR(@DATE('HH','YYYY-MM-DD H
H:MI:SS',@DATENOW)) >= 14 and @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) < 15).

2017-07-03 16:35:55 INFO OGG-02756 The definition for table to_del_id_disc is obtained from the trail file.

2017-07-03 16:35:55 INFO OGG-06511 Using following columns in default map by name: CASH_ID, ID.

Source Context :
SourceModule : [er.init]
SourceID : [/scratch/aime/adestore/views/aime_adc4150330/oggcore/OpenSys/src/app/er/init.cpp]
SourceFunction : [compile_filter]
SourceLine : [986]
ThreadBacktrace : [18] elements
: [/gg12c/libgglog.so(CMessageContext::AddThreadContext()+0x1b) [0x7f40ac8904eb]]
: [/gg12c/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...)+0x135) [0x7f40ac88a5c5]]
: [/gg12c/libgglog.so(_MSG_ERR_STARTUP_PARAMERROR_FILTER_CLAUSE_PARSE_ERROR(CSourceContext*, CMessageFactory::MessageDisposition)+0x29) [0x7f40ac878b44]]
: [/gg12c/replicat(compile_filter(ggs::gglib::ggunicode::UString const&, file_def*)+0x240) [0x5b7720]]
: [/gg12c/replicat(get_map_entry(ggs::gglib::ggunicode::UString const&, int, wc_def*, int, unsigned int, unsigned int, ggs::gglib::ggmetadata::CTblMetadata*, ggs::gglib::ggmetadata::C
MetadataReader*, bool, bool, bool)+0x3df4) [0x5d3344]]
: [/gg12c/replicat(wc_def::resolve_wc_entry(ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, int, unsigned int*, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1>*, int, ggs::ggl
ib::ggmetadata::CTblMetadata*, ggs::gglib::ggmetadata::CMetadataReader*)+0x1ee) [0x6a3c0e]]
: [/gg12c/replicat(WILDCARD_check_table(ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const*, int, unsigned int*, int, unsigned int, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1>*
, int, ggs::gglib::ggmetadata::CTblMetadata*, ggs::gglib::ggmetadata::CMetadataReader*, bool)+0x195) [0x6a4225]]
: [/gg12c/replicat(REP_find_source_file_wc(ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1> const&, unsigned int, ggs::gglib::ggapp::CQualDBObjName<(DBObjType)1>*, int, ggs::gglib::ggm
etadata::CTblMetadata*, ggs::gglib::ggmetadata::CMetadataReader*, bool)+0x1ad) [0x5cd2ad]]
: [/gg12c/replicat(source_file_lookup(ggs::gglib::gglcr::CommonLCR const*, ggs::gglib::ggmetadata::CMetadataReader*)+0x496) [0x5b2c26]]
: [/gg12c/replicat(ggs::er::ReplicatContext::processReplicatLoop(ggs::Heartbeat::MapGeneratorParams&)+0xd86) [0x5f69e6]]
: [/gg12c/replicat(ggs::er::ReplicatContext::run(ggs::Heartbeat::MapGeneratorParams&)+0x29) [0x5eae39]]
: [/gg12c/replicat() [0x633c7b]]
: [/gg12c/replicat(ggs::gglib::MultiThreading::MainThread::ExecMain()+0x60) [0x6ecbe0]]
: [/gg12c/replicat(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*)+0x14d) [0x6edbfd]]
: [/gg12c/replicat(ggs::gglib::MultiThreading::MainThread::Run(int, char**)+0xb1) [0x6edce1]]
: [/gg12c/replicat(main+0x3b) [0x636c9b]]
: [/lib64/libc.so.6(__libc_start_main+0xfd) [0x3ea741ed1d]]
: [/gg12c/replicat() [0x56c559]]

2017-07-03 16:35:55 ERROR OGG-00375 Error in FILTER clause.
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39482244
Alik Wishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny2,

Тут 'YYYY-MM-DD HH:MI:SS' попробуйте так 'YYYY-MM-DD:HH:MI:SS'
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39482259
Evgeny2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не работает.

Конструкцию FILTER() вообще возможно использовать без указания source column ?
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39482282
Alik Wishin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Evgeny2,

Filter ((Условие1) And (Условие2))

по факту у вас множественное преобразование типов да еще с проверкой на условия
Может и "потеряться"
Этож все таки СИ
а тама любят "красоту" и "порядок"
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39482317
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evgeny2Не работает.
Может, все-таки по ссылочке почитать?
20609351

и изобразить что-то вроде
Код: plsql
1.
2.
,FILTER(IGNORE DELETE, @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) >= 14 )
,FILTER(IGNORE DELETE, @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) < 15 )


или

Код: plsql
1.
,FILTER(IGNORE DELETE, @VALUEONEOF(@NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)),14, 15 ))
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39482453
Evgeny2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Причина падения нашлась. Каждое условие нужно закрывать в скобки!
Filter ((Условие1) And (Условие2))

Спасибо всем за участие и подсказки.
Особенно Alik Wishin.

Alik Wishin, а что Вы имел ввиду:
авторЭтож все таки СИ
а тама любят "красоту" и "порядок"

Разве условие не красивое или беспорядочное?
А как бы Вы написал его?
...
Рейтинг: 0 / 0
Oracle GoldenGate. Фильтр по времени.
    #39482526
Evgeny2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блин - рано порадовался!!!!
Начал делать вставку и опять падает с ошибками.
Попробовал и мульти фильтры и @VALONEOF и просто фильтр с одним условием типа FILTER(IGNORE DELETE, @NUMSTR(@DATE('HH','YYYY-MM-DD HH:MI:SS',@DATENOW)) >= 1)

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


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