вторник, 27 октября 2009 г.

Суета вокруг кластера.

Как знают те, кто посещал встречу MCP-Клуба, посвященную кластеризации в Windows Server 2008, я в этих самых кластерах не слишком-то хорошо разбираюсь. Впрочем, при условии, что ничего не ломается в Windows 2008 не много и надо, чтобы разбираться (шутка, разумеется), а вот c Windows Server 2003 – совсем другая картина.

И вот, в очередной раз вздумалось мне (по необходимости, разумеется), переконфигурировать кластер SQL Server 2005 под управлением Windows Server 2003. Для чего предупредил я своих пользователей о прекращении обслуживания… да и удалил к чертовой бабушке ресурсы кластерныя. (ну сумасшедший, что возьмешь (с)) =)

А потом пересоздал ресурсы, запустил и… Оно “не взлетело”. Конкретнее:

“Error: 26054, Severity: 16, State: 1.
Could not find any IP address that this SQL Server instance depends upon.  Make sure that the cluster service is running, that the dependency relationship between SQL Server and Network Name resources is correct, and that the IP addresses on which this SQL Server instance depends are available.  Error code: 0x103”.

Мда. Времени оставалось мало, знаний было еще меньше, так что моей заслуги в этом нет – спас великий Google. Оказывается, при пересоздании кластерного ресурса в некоторых обстоятельствах не перепрописывается некий параметр в реестре, из-за чего и происходит такая вот несуразица. Как восстановить? Оказалось, весьма просто, хотя должен повторить сакраментальное:

ВНИМАНИЕ: данная статья содержит информацию о редактировании реестра. Сделайте резервную копию и удостоверьтесь, что Вы понимаете, как восстановить из нее реестр в случае необходимости. Сделайте это до того, как править реестр.

Итак, есть ветка реестра HKLM\Cluster. В ней много чего интересного для самостоятельного изучения, но нас интересует подветка Resources (кстати, в статье, которая мне помогла выйти на это решение, есть опечатка), в которой в папках, названных “в честь” GUID’ов этих самых ресурсов хранятся разнообразные параметры. Найдя GUID нужного нам ресурса, заходим в его папочку Parameters и создаем два ключа:

• InstanceName
Value Name: InstanceName
Value Type: REG_SZ
Value Data: <Имя инстанса нашего SQL сервера. Дефолтный, например, будет MSSQLSERVER>

• VirtualServerName
Value Name: VirtualServerName
Value Type: REG_SZ
Value Data: <Имя виртуального сервера для этого экземпляра>

Перезапускаемся (это на всякий случай) и – вуаля – все работает. Впрочем, должен сразу отметить – то, что это заработало у меня, не значит для Вас ровным счетом ничего – может и не заработать. А может и заработать, так что будем надеяться на лучшее =)

Статья, в которой я нашел решение:

http://blogs.msdn.com/sqlserverfaq/archive/2009/01/13/sql-server-2005-resource-fails-to-come-online-on-cluster-after-changing-the-san-drive-to-add-more-disk-space.aspx