Проверить соединение между On-Prem / Azure Servers и экземплярами базы данных SQL? - PullRequest
0 голосов
/ 01 июля 2019

Наша команда BI имеет смесь серверов On-Prem и Azure, которые запускают сценарии для выполнения процессов SQL в других базах данных On-Prem и Azure SQL.Иногда наши процессы выдают ошибки из-за проблем с подключением к серверам и обратно.Я хотел бы написать скрипт, который проверяет подключение к серверу перед выполнением наших процессов ETL.Какие подходы сценариев идеальны для этого типа проверки подключения?

Мы можем проверить связь, чтобы убедиться, что компьютеры подключены к сети, но в настоящее время у нас нет процесса проверки подключения между двумя серверами.Кажется, что проблема связана с подключением между локальными и облачными серверами.Это может быть связано с проблемами межсетевого экрана и сети, но проблема возникает нерегулярно и может быть вызвано рядом факторов.Наш текущий метод подключения - SQL Server Authentication.Существуют ли другие оптимальные способы подключения?

Я хотел бы определить хороший подход к подключению сценариев / мониторов / проверок между набором локальных облачных серверов Azure и баз данных.Некоторые примеры сценариев тоже подойдут!

1 Ответ

0 голосов
/ 03 июля 2019

Для проверки связи с серверами я использую командлет Test-Connection. В определении команды Test-Connection я определяю размер буфера, количество отправляемых эхо-тестов и возвращает ли она подробную информацию о состоянии эхо-теста или простое логическое значение. Я указываю для параметра ea (ea - псевдоним для параметра ErrorAction) значение 0. Значение 0 указывает командлету не отображать информацию об ошибке (ошибка отображается, когда эхо-запрос не выполняется).

Вот как будет выглядеть Pingtest:

$servers = “dc1″,”dc3″,”sql1″,”wds1″,”ex1”

Foreach($s in $servers)

{

  if(!(Test-Connection -Cn $s -BufferSize 16 -Count 1 -ea 0 -quiet))

  {

   “Problem connecting to $s”

   “Flushing DNS”

   ipconfig /flushdns | out-null

   “Registering DNS”

   ipconfig /registerdns | out-null

  “doing a NSLookup for $s”

   nslookup $s

   “Re-pinging $s”

     if(!(Test-Connection -Cn $s -BufferSize 16 -Count 1 -ea 0 -quiet))

      {“Problem still exists in connecting to $s”}

       ELSE {“Resolved problem connecting to $s”} #end if

   } # end if

} # end foreach

Таким образом, вы можете быть уверены, что связь активна, и вы можете продолжить выполнение. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...