Как обнаружить активный в данный момент узел в кластере SQL Server? И как эмулировать отказ.
В этом посте я продемонстрирую как обнаружить активный в данный момент узел в кластере SQL Server, и как выполнить ручной отказ другого узла. Отмечу, что отказ скажется на среде вашего SQL Server в очень короткий период времени. Это происходит потому, что восстановление будет произведено на новом узле кластера SQL Server. В среде с долгосрочными транзакциями, время восстановления может быть значительнее. Поэтому не выполняйте отказ в производственной среде без острой необходимости. Желательно сначала все попробовать сделать в тестовой среде кластера. В данной демонстрации я использую Windows Server 2012 R2 и SQL Server 2014. Мой кластер состоит из двух узлов (WIN-2012SQL01 и WIN-2012SQL02), оба находятся в общем режиме SQL Server. Кластер называется SQL2014CLU. Для установки виртуальной среды для того, чтобы поэкспериментировать со своим кластером SQL Server, я следовал серии блога Jonathan Kehayias “Building a Completely Free Playground for SQL Server”. В этой серии используются Windows 2008 R2 и SQL Server 2008 R2, но с минимальными изменениями инструкция может быть использована для создания тест-среды с Windows 2012 R2 и SQL Server 2014.
Поиск активного узла в кластере SQL Server
Чтобы проверить на каком узле физически запущен SQL Server, выполняем запрос:
select SERVERPROPERTY ('ComputerNamePhysicalNetBIOS')
С любого узла в кластере (активного или пассивного) запустите Failover Cluster Manager из Server Manager:
Выберите ваш кластер из правого меню, выберите “Roles” и вы увидите узел владельца:
Только на активном узле кластера, расшаренный диск будет доступен:
Так же только на активном узле SQL Server процесс будет запущен:
Разумеется, любое событие которое делает активный узел недоступным, сделает один из пассивных доступным. Но если вы, к примеру, хотите выполнять задачи на активном в данный момент узле, значение кластера может быть изменено в Failover Cluster Manager. В правом меню выберите “Roles”. Правой кнопкой мыши кликните на кластере и выберите “Move” -> “Select Node”:
Теперь выберите один пассивный узел, который вы хотите переместить и жмите “ОК”(У меня только один пассивный):
Через некоторое время (SQL Server начнет восстановление на новом активном узле) значения будут изменены.