Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Lga-Eg
Member

Откуда:
Сообщений: 90
Подскажите, пожалуйста, никак не найду, в какую сторону копаться.
Есть в Oracle Goldengate способ записи в логи при, например, следующей ситуации:
Предположим, на исходной баз есть запись, а на той, куда идёт репликация данные почему-то инконсистентны и её нет. Предположим, данная запись на базе-источнике апдейтится. Как на стороне репликата записать такую запись в какой-либо лог? DISCARD файл судя по всему для чего-то другого?
На тестовой системе у меня все пока выглядит удручающе или я не там смотрю( В rpt файле репликата нет данных, в в discard файле тоже ничего нет, а на базе похоже, не происходит вообще ничего из транзакции - проапдейченные на сорсе строки, которые на таргете есть, тоже остались непроапдейченными на таргете.
25 мар 12, 18:48    [12310708]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Barkovsky
Member

Откуда: Санкт-Петербург
Сообщений: 2655
Пишите в таблицу в базе, через SQLEXEC. Проще анализовать потом.
26 мар 12, 13:16    [12313835]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
Lga-Eg
Подскажите, пожалуйста, никак не найду, в какую сторону копаться.
Есть в Oracle Goldengate способ записи в логи при, например, следующей ситуации:
Предположим, на исходной баз есть запись, а на той, куда идёт репликация данные почему-то инконсистентны и её нет. Предположим, данная запись на базе-источнике апдейтится. Как на стороне репликата записать такую запись в какой-либо лог? DISCARD файл судя по всему для чего-то другого?
На тестовой системе у меня все пока выглядит удручающе или я не там смотрю( В rpt файле репликата нет данных, в в discard файле тоже ничего нет, а на базе похоже, не происходит вообще ничего из транзакции - проапдейченные на сорсе строки, которые на таргете есть, тоже остались непроапдейченными на таргете.
Покажите файл параметром. По-умолчанию OGG не должен продолжать работу в случае коллизии.
26 мар 12, 14:04    [12314210]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 51767

Alexander Ryndin
По-умолчанию OGG не должен продолжать работу в случае коллизии.

Странные у него умолчания, однако... Чтобы ДБА не заскучал?

Posted via ActualForum NNTP Server 1.5

26 мар 12, 14:37    [12314453]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Lga-Eg
Member

Откуда:
Сообщений: 90
Alexander Ryndin,

На тот момент там стояло HANDLECOLLISIONS :) А еще нужно не забывать коммит нажимать, когда данные портишь xD
Потом я разобралась, HANDLECOLLISIONS убрала, он стал падать.
Потом я еще нашла-таки в итоге параметр REPERROR и завела табличку.
Но вопрос все равно остался: REPERROR(-1403, EXCEPTION) прекрасно работает для таблицы, где update это update. А для таблицы, где update преобразуется в insert, происходит как раз insert и никаких записей об ошибке нет. Это возможно как-либо обработать?..
26 мар 12, 16:48    [12315777]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Lga-Eg
Member

Откуда:
Сообщений: 90
Barkovsky,

Спасибо:) Правда, пока неизвестно, нужно ли это. А кстати, а SQLEXEC можно проверить наличие записи?..
26 мар 12, 17:32    [12316166]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Barkovsky
Member

Откуда: Санкт-Петербург
Сообщений: 2655
SQLEXEC может в базе все.
Только реализация его в GG сильно глючная. Настолько глючная, что иногда удивляешься, как он что-нибудь в базе не перефигачил. Но лучше пока нету.
27 мар 12, 12:07    [12319348]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Brass
Member

Откуда: Москва
Сообщений: 541
Dimitry Sibiryakov
Alexander Ryndin
По-умолчанию OGG не должен продолжать работу в случае коллизии.

Странные у него умолчания, однако... Чтобы ДБА не заскучал?

если убить dbwr то база упадет. Тоже странное умолчание, да? :)
27 мар 12, 16:39    [12321898]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Lga-Eg
Member

Откуда:
Сообщений: 90
Barkovsky,

:) Почему-то меня это уже не удивляет%) Спасибо, буду иметь ввиду SQLEXEC и то, что оно глючное:)
27 мар 12, 18:42    [12323000]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
Lga-Eg
Alexander Ryndin,

На тот момент там стояло HANDLECOLLISIONS :) А еще нужно не забывать коммит нажимать, когда данные портишь xD
Потом я разобралась, HANDLECOLLISIONS убрала, он стал падать.
Потом я еще нашла-таки в итоге параметр REPERROR и завела табличку.
Но вопрос все равно остался: REPERROR(-1403, EXCEPTION) прекрасно работает для таблицы, где update это update. А для таблицы, где update преобразуется в insert, происходит как раз insert и никаких записей об ошибке нет. Это возможно как-либо обработать?..
1) А с какого перепугу REPERROR(-1403, EXCEPTION) должен работать для INSERT? ORA-01403 это no data found. Он не может возникнуть для INSERT. Или вы чего-то недоговариваете. Объясните подробнее, на какой exception должен реагировать OGG.
2) SQLEXEC стоит применять в крайнем случае.
27 мар 12, 18:48    [12323051]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Lga-Eg
Member

Откуда:
Сообщений: 90
Alexander Ryndin,

Сорри, что сразу не ответила,у же в другом закопалась%) Я и не говорила, что он должен, я считаю, это вполне логичное поведение... Просто теоретически, это может быть нужно%) Но о способе реализации я, пожалуй, подумаю, если оно станет нужно практически.
2 апр 12, 12:24    [12350150]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4917
Блог
Lga-Eg
Alexander Ryndin,

Сорри, что сразу не ответила,у же в другом закопалась%) Я и не говорила, что он должен, я считаю, это вполне логичное поведение... Просто теоретически, это может быть нужно%) Но о способе реализации я, пожалуй, подумаю, если оно станет нужно практически.
INSERT может генерить ошибку ORA-00001. На нее и нужно вешать обработку.
2 апр 12, 12:32    [12350223]     Ответить | Цитировать Сообщить модератору
 Re: Goldengate: как записать в лог ошибки из-за отсутствующих данных?  [new]
Lga-Eg
Member

Откуда:
Сообщений: 90
Alexander Ryndin,

Спасибо, но это не тот случай, который я тут пыталась копать:) Но да, вы правы. это стоит обработать! Спасибо:)
2 апр 12, 17:08    [12352799]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить