Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Определить AlwaysOn или нет. / 11 сообщений из 11, страница 1 из 1
08.11.2018, 12:57
    #39729877
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
Вопрос - каким образом в SSMS среди Registered Servers можно определить является ли серверер AlwaysOn или нет?
...
Рейтинг: 0 / 0
08.11.2018, 13:47
    #39729904
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
AndrF,

SERVERPROPERTY('IsHadrEnabled')

например, так :
групповой запрос в CMS
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
declare @cmd varchar(2048)
if SERVERPROPERTY('IsHadrEnabled')=1
	set @cmd='
with rs as 
(
select convert(varchar(20),count(1))+'' ''+left(role_desc,3) [rep]
,sum(case when synchronization_health<>2 then 1 else 0 end) [syncnothealth]
from sys.dm_hadr_availability_replica_states
where is_local=1
group by left(role_desc,3)
)
select distinct
	SERVERPROPERTY(''IsHadrEnabled'') [HADR]
	,SERVERPROPERTY(''IsClustered'') [Cluster]
	,reverse(stuff(reverse((select r2.rep+''; '' as [data()] from rs r2 for xml path(''''))),1,2,'''')) [Status]
	,sum([syncnothealth]) [notsynced]
from rs r1
option (recompile)'
else 
	set @cmd='select SERVERPROPERTY(''IsHadrEnabled'') [HADR],  SERVERPROPERTY(''IsClustered'') [Cluster], NULL [Status],NULL [notsynced]'
exec (@cmd)

...
Рейтинг: 0 / 0
08.11.2018, 14:13
    #39729925
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
AndrF,

1. Открыть обозреватель объектов
2. Смотреть
...
Рейтинг: 0 / 0
08.11.2018, 14:37
    #39729945
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
komradSERVERPROPERTY('IsHadrEnabled')

Оно. В моем случае применение:

Код: sql
1.
2.
3.
4.
IF ISNULL(CAST(SERVERPROPERTY('IsHadrEnabled') AS bit), 0)<>1
	BEGIN
		...
	END



Так как мне нужно выполнить скрипт на всех серверах не являющимися AlwaysOn...
...
Рейтинг: 0 / 0
08.11.2018, 14:47
    #39729953
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
AndrFkomradSERVERPROPERTY('IsHadrEnabled')

Оно. В моем случае применение:

Код: sql
1.
2.
3.
4.
IF ISNULL(CAST(SERVERPROPERTY('IsHadrEnabled') AS bit), 0)<>1
	BEGIN
		...
	END



Так как мне нужно выполнить скрипт на всех серверах не являющимися AlwaysOn...

а почему не просто так?
Код: sql
1.
2.
3.
if isnull(SERVERPROPERTY('IsHadrEnabled'),0) <> 0 
    begin
    end 



кстати, подобная проверка достаточно поверхностная, так как ни к чему не обязывает - опция может быть выставлена, а реально AO не настроен.
...
Рейтинг: 0 / 0
08.11.2018, 15:18
    #39729987
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
komradкстати, подобная проверка достаточно поверхностная, так как ни к чему не обязывает - опция может быть выставлена, а реально AO не настроен.

Это наше внутреннее, так что будет настроено. Можно, проверить все вплоть до листендеров, но настолько углубляться не хочется.
-------------

Кстати, есть еще вопрос - при выполнении запроса в SSMS c Registered Servers в левой колонке возвращается имя сервера (колонка Server Name). Вот как именно такое можно получить?
...
Рейтинг: 0 / 0
08.11.2018, 15:27
    #39729991
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
AndrF,

Код: sql
1.
select @@servername
...
Рейтинг: 0 / 0
08.11.2018, 22:57
    #39730190
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
komrad
Код: sql
1.
select @@servername



Было бы так примитивно - я бы не спрашивал. К примеру, в упомянутой колонке для сервера AlwaysOn выводится имя листендера, а не инстанс активной ноды...

Не, я в принципе, аналог сделать могу, но процесс довольно некрасивый. Хочется чего-то попроще...
...
Рейтинг: 0 / 0
08.11.2018, 23:01
    #39730194
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
AndrFkomrad
Код: sql
1.
select @@servername




Было бы так примитивно - я бы не спрашивал. К примеру, в упомянутой колонке для сервера AlwaysOn выводится имя листендера, а не инстанс активной ноды...

Не, я в принципе, аналог сделать могу, но процесс довольно некрасивый. Хочется чего-то попроще...Значит, из строки подключения студия берет.
...
Рейтинг: 0 / 0
09.11.2018, 01:17
    #39730244
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
AndrFК примеру, в упомянутой колонке для сервера AlwaysOn выводится имя листендера, а не инстанс активной ноды...

Сильно подозреваю, что у вас он так зарегистрирован в списке серверов, т.е. через имя листенера, а не одного из инстансов/ноды.
К тому же, на одной ноде может быть несколько групп AG и их листенеров (primary replica)

вы пользуетесь registered servers - local servers в студии или настроен/сконфигурирован CMS?
...
Рейтинг: 0 / 0
09.11.2018, 07:14
    #39730267
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить AlwaysOn или нет.
Гавриленко Сергей АлексеевичЗначит, из строки подключения студия берет.

Или из списка файла registered servers? Вполне возможно.

В принципе же, можно самому раскрутить используя sys.availability_group_listeners...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Определить AlwaysOn или нет. / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]