SQL Server 2016 связан Oracle Server - вдруг перестал работать
После перезагрузки моего стандарта Windows Server 2016 (SQL Server 2016) процесс SSIS, который выполняет этот запрос:
select * from openquery(HRMPROD, 'SELECT QUERY HERE' )
начал сбой с этой ошибкой:
Я получаю ту же ошибку, если пытаюсь выполнить запрос в SSMS. На моем тестовом экземпляре настроен тот же связанный сервер, и запрос выполняется, когда я его запускаю. Я сравнил сценарий создания связанного сервера в обоих случаях, и он одинаков.
Любая идея, где я должен искать, что вызывает проблемы с подключением на одном сервере, а не на другом?
Спасибо.
3 ответа
Сказать, что ответ на стороне Oracle, это все равно, что указывать пальцем на дорогу. Давайте просто исправим проблему здесь.
Существует строка подключения, которая используется из SSIS (которую вы также использовали в SSMS). Строка подключения содержит три основных компонента для подключения и приведет к ошибке 12154, если какой-либо из них будет неправильным:
- хозяин
- Имя экземпляра (отличается от экземпляра на Sql Server, представьте имя базы данных)
- порт
Скорее всего, порт не изменился, имя базы данных тоже нет, но хост... Нет, не изменился, но DNS-сервер, используемый для подключения, скорее всего, изменился! Я бы пинговал хост и посмотрел, что возвращает SSIS и ваш хост SSMS, который вы используете. Я ожидал бы, что это потерпит неудачу. Узнайте, какой IP-адрес использует хост, и пропингуйте его - посмотрите, вернется ли он. Я предполагаю, что это изменение, которое необходимо обновить, или ваши сетевые люди должны исправить проблему конфигурации DNS / сервера.
Надеюсь это поможет! Kellyn
Я согласен с вышеизложенным, что проблема может быть связана с сетью. Я сталкивался с этим несколько раз, когда мы можем все настроить, но межсетевой экран блокирует связь между двумя серверами.
Откройте powershell на новом сервере и запустите tracert к цели, чтобы увидеть прыжки и определить, подключается ли через сеть.
Если это так, запустите test-netconnect для определенного порта, чтобы проверить, открыт ли порт из брандмауэров.
Ура!
Поскольку вы получаете ответ от слушателя TNS, проблема лежит на стороне Oracle. См. Архитектура сетевых служб Oracle, чтобы получить представление о том, как сеть Oracle справляется со своими задачами. Имейте в виду, что на основании сообщения об ошибке, которое вы достигли прослушивателя TNS, вам нужно только проверять что-то между TNS и базой данных Oracle... Другими словами, ваши настройки сети и SQL Server в порядке, иначе вы не захотите быть в состоянии получить это сообщение об ошибке.