Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 ищу причину ORA-12545  [new]
ORA-12545
Guest
Ситуация следующая. В одной базе (11.2.0.3) есть dblink в другой. Перекачка данных идёт ежедневно. Вдруг в один день линк перестаёт работать. Обращение к базе-источнику по этому линку порождает ошибку ORA-12545. Проверяю соединение с базой-источником напрямую - работает. Я создаю новый линк с идентичным соединением (user/pw@db). И оказывается, что новый линк работает. А старый - нет. Адрес базы прописывается в линке как в tnsnames - (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=dbsrv01.test.local) (PORT=1521))(CONNECT_DATA=(SID=TEST))). Адрес хоста относительный, а не IP-адрес. Так как сервер с базой-источникой использует Load Balancing, то я подозреваю переключение/замену кластера. По-моему только это может вызвать такую ошибку. Но. Адрес хоста в линке ведь относительный. Как такое может быть? Может в системных таблицах где-то записывается IP-адрес? Я такой информации не нашёл (смотрел таблицу SYS.LINK$).
Может кто сталкивался с такой ситуацией? Как избежать этого в будущем? Или где найти разницу в линках?
26 авг 15, 15:11    [18070782]     Ответить | Цитировать Сообщить модератору
 Re: ищу причину ORA-12545  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7135
ORA-12545
Ситуация следующая. В одной базе (11.2.0.3) есть dblink в другой. Перекачка данных идёт ежедневно. Вдруг в один день линк перестаёт работать. Обращение к базе-источнику по этому линку порождает ошибку ORA-12545. Проверяю соединение с базой-источником напрямую - работает. Я создаю новый линк с идентичным соединением (user/pw@db). И оказывается, что новый линк работает. А старый - нет. Адрес базы прописывается в линке как в tnsnames - (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=dbsrv01.test.local) (PORT=1521))(CONNECT_DATA=(SID=TEST))). Адрес хоста относительный, а не IP-адрес. Так как сервер с базой-источникой использует Load Balancing, то я подозреваю переключение/замену кластера. По-моему только это может вызвать такую ошибку. Но. Адрес хоста в линке ведь относительный. Как такое может быть? Может в системных таблицах где-то записывается IP-адрес? Я такой информации не нашёл (смотрел таблицу SYS.LINK$).
Может кто сталкивался с такой ситуацией? Как избежать этого в будущем? Или где найти разницу в линках?


База в той же подсети?
Ошибка повторяется?

Если в обращались по этому IP и смена адреса произошла менее 30 сек (arp flush timeout) назад
то возможная причина - устаревшее значение в таблице ARP (Address Resolution Protocol)

Если вы не в той же подсети, то возможная причина - ошибка arp маршрутизатора


# arp -a
# sysctl -a | grep base_reachable_time_ms
net.ipv4.neigh.default.base_reachable_time_ms = 30000
net.ipv4.neigh.eth0.base_reachable_time_ms = 30000
net.ipv4.neigh.lo.base_reachable_time_ms = 30000
26 авг 15, 15:39    [18070994]     Ответить | Цитировать Сообщить модератору
 Re: ищу причину ORA-12545  [new]
ORA-12545
Guest
Vadim Lejnin,

спасибо за ответ. Базы в разных подсетях, поэтому скорее всего проблема в маршрутизаторе. Ошибка была стабильная в течении нескольких часов. То есть одновременно существовало 2 идентичных (user/pw@db) линка, один из которых работал, а другой выдавал ошибку 12545. Через пару часов заработал и старый линк. Ошибка ушла, а осадок остался. Скорее всего для избежания ошибки в будущем я, как настройщик перекачки данных, ничего сделать не смогу. Буду ждать следующего похожего случая, попробую сразу к сетевикам обратиться.
26 авг 15, 16:35    [18071476]     Ответить | Цитировать Сообщить модератору
 Re: ищу причину ORA-12545  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 7135
ORA-12545
Vadim Lejnin,

спасибо за ответ. Базы в разных подсетях, поэтому скорее всего проблема в маршрутизаторе. Ошибка была стабильная в течении нескольких часов. То есть одновременно существовало 2 идентичных (user/pw@db) линка, один из которых работал, а другой выдавал ошибку 12545. Через пару часов заработал и старый линк. Ошибка ушла, а осадок остался. Скорее всего для избежания ошибки в будущем я, как настройщик перекачки данных, ничего сделать не смогу. Буду ждать следующего похожего случая, попробую сразу к сетевикам обратиться.


ORA-12545 - это ошибка транспортного (TCP) уровня
Вряд ли arp таблица не сбрасывалась в течении нескольких часов
скорее всего это сетевые проблемы (например ошибка маршрутизации)

Сейчас гадать бесполезно, нужно было сразу проверять сеть при возникновении ошибки.
разве только посмотреть listener.log и diag oracle как клиента
может остались sqlnet.log, там будет видно по какому ip линк пытался достучаться

Я например недавно напоролся на ровном месте, когда при переконфигурации
(по документу) TNS scan на другой адаптер, svrctl поднял новый IP адрес на старом адаптере
хотя я его просил совсем не о том...
26 авг 15, 16:54    [18071658]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить