2015-01-06 2 views
-1

Я пытаюсь создать проверку целостности, чтобы рассказать мне, когда мои два сервера разворачиваются во времени более чем на 5 секунд.разница между серверами

У меня есть два сервера

HP1 является сервер Я бегу это от HP2 является удаленный сервер

Этот код работает, но мне нужно, чтобы быть в состоянии произвести значение, которое я могу делать чек против

select GETDATE() 
exec ('select getdate()') at HP2 

это это код, который я пытаюсь произвести

if(ABS(SUM(GETDATE() - exec ('select getdate()') at Jupiter)) > 5) 
begin 
print 'not in sync' 
end 
+0

Если вы хотите выполнить запрос по-другому, вам необходимо создать Связанный сервер. – Jeremy

+0

Возможно, некоторые из [этого] (http://stackoverflow.com/q/1144051/2186023) могут помочь вам – DrCopyPaste

+0

Я не понимаю, почему это было перенесено с ServerFault. Я понимаю, что это может показаться неуместным, потому что он использует SQL, но SQL - это правильный способ контролировать ваши серверы для проблем с синхронизацией времени (я бы ожидал, что более подходящие методы проверки синхронизации времени * будут попадать под зонтику ServerFault)? И если это так, почему бы вам не перейти на http://dba.stackexchange.com? – alroc

ответ

0

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

я объявить переменную

declare @ExecOutput date = null 

Я затем запустить команду выполнить и назначить переменную в качестве вывода команды выполнения, это делается с помощью?, Это позволяет назначить выход в переменную ,

exec ('select ? = Getdate()',@ExecOutPut OUT) at HP2; 

Затем я могу запустить условие против этой переменной.

if(datediff(ss, GETDATE(), @ExecOutPut) > 5) 
begin 
raiserror ('Not In Sync', 1, 3) 
end 
Смежные вопросы