Невозможно добавить прослушиватель группы доступности SQL Server Always On для второй подсети
У меня есть кластер WSFC между двумя узлами 2016 года - DB1 и DB2.
(Кластерная сеть 1 и 3 настроена так, чтобы НЕ переносить кластерный трафик.)
Диспетчер отказоустойчивого кластера показывает, что сеть кластеров 2 имеет две подсети:
10.70.119.192/26
10.68.79.240/28
Узел DB1 включен и имеет IP-адреса в окнах: 10.70.119.212
10.68.79.254
Диспетчер отказоустойчивого кластера показывает, что сеть кластеров 4 имеет две подсети:
10.136.98.0/26
10.137.72.224/28
Узел DB2 находится здесь и имеет IP-адреса в окнах: 10.136.98.40
10.137.72.238
Для справки, я предварительно настроил прослушиватель группы доступности (AG2) просто отлично. Он использует статические IP-адреса: 10.136.98.15
10.70.119.214
Все хорошо с AG2.
Теперь я хочу настроить AG1 в другой подсети.
ИСПОЛЬЗОВАТЬ [мастер]
ИДТИ
ГРУППА ALTER AVAILABILITY [AG1]
ДОБАВИТЬ СЛУШАТЕЛЬ N'ag111' (
С IP
((N'10.137.72.228 ', N'255.255.255.240'),
(N'10.68.79.242 ', N'255.255.255.240')
)
, ПОРТ =1433);
ИДТИ
(Вышеприведенное сгенерировано из мастера. Мастер позволил мне выбрать подсеть из выпадающего списка - так что его чистый SQL знает об этих подсетях.)
Запуск этого не удается с:
Msg 41009, Level 16, State 7, Line 3
The Windows Server Failover Clustering (WSFC) resource control API returned error code 5894. If this is a WSFC availability group, the WSFC service may not be running or may not be accessible in its current state, or the specified arguments are invalid. Otherwise, contact your primary support provider. For information about this error code, see "System Error Codes" in the Windows Development documentation.
Msg 19476, Level 16, State 3, Line 3
The attempt to create the network name and IP address for the listener failed. If this is a WSFC availability group, the WSFC service may not be running or may be inaccessible in its current state, or the values provided for the network name and IP address may be incorrect. Check the state of the WSFC cluster and validate the network name and IP address with the network administrator. Otherwise, contact your primary support provider.
Msg 19476, Level 16, State 1, Line 3
The attempt to create the network name and IP address for the listener failed. If this is a WSFC availability group, the WSFC service may not be running or may be inaccessible in its current state, or the values provided for the network name and IP address may be incorrect. Check the state of the WSFC cluster and validate the network name and IP address with the network administrator. Otherwise, contact your primary support provider.
В журналах кластера я вижу следующее:
00000c68.00001c34::2019/05/04-19:55:01.196 INFO [RCM] rcm::RcmApi::CreateResource: (AG1, AG1_10.137.72.228, 7b048e90-89fc-4755-9ddf-19778818fc86, IP Address)
00000c68.00001c34::2019/05/04-19:55:01.196 INFO [GUM] Node 2: executing request locally, gumId:1593, my action: /rcm/gum/CreateResource, # of updates: 1
00000c68.00001c34::2019/05/04-19:55:01.196 INFO [RCM] rcm::RcmGum::CreateResource(AG1_10.137.72.228,7b048e90-89fc-4755-9ddf-19778818fc86,AG1)
00001c24.00002408::2019/05/04-19:55:01.197 INFO [RHS] Registering HDL( 2089aead170 ) as a valid RHS resource handle
00001c24.00002408::2019/05/04-19:55:01.197 INFO [RHS] OpenResource: opening resource AG1_10.137.72.228 of type IP Address with handle HDL( 2089aead170 )
00001c24.000003f0::2019/05/04-19:55:01.201 INFO [RES] IP Address <AG1_10.137.72.228>: Unable to open node parameters key, status 2.
00001c24.000003f0::2019/05/04-19:55:01.201 INFO [RES] IP Address <AG1_10.137.72.228>: Resource open, resource ID = 2590498176.
00000c68.00001488::2019/05/04-19:55:01.201 INFO [RCM] HandleMonitorReply: OPENRESOURCE for 'AG1_10.137.72.228', gen(0) result 0/0.
00000c68.00001c34::2019/05/04-19:55:01.204 INFO [GUM] Node 2: executing request locally, gumId:1594, my action: /dm/update, # of updates: 1
00001c24.00002408::2019/05/04-19:55:01.210 INFO [RES] IP Address <AG1_10.137.72.228>: IpaValidatePrivateResProperties: attempting to change property Address to from 0.0.0.0 to 10.137.72.228.
00001c24.00002408::2019/05/04-19:55:01.210 INFO [RES] IP Address <AG1_10.137.72.228>: IpaValidatePrivateResProperties: attempting to change property SubnetMask from 0.0.0.0 to 255.255.255.240.
00001c24.00002408::2019/05/04-19:55:01.214 ERR [RES] IP Address <AG1_10.137.72.228>: IpaValidatePrivateResProperties: failed to find cluster network matching address 10.137.72.228 and subnet mask 255.255.255.240. Error: 259.
00001c24.00002408::2019/05/04-19:55:01.214 ERR [RHS] Error 5894 from ResourceControl 20971654 for resource AG1_10.137.72.228.
00000c68.00001488::2019/05/04-19:55:01.215 INFO [RCM] rcm::RcmApi::DeleteResource: (AG1_10.137.72.228, force=false)
00001c24.00002408::2019/05/04-19:55:01.215 ERR [RES] IP Address <AG1_10.137.72.228>: IpaRetrieveLeaseDetails: Unable to read the 'Network' property. Error: 13.
00001c24.00002408::2019/05/04-19:55:01.215 ERR [RES] IP Address <AG1_10.137.72.228>: IpaReleaseLeaseWhileOffline: IpaRetrieveLeaseDetails failed, 13.
00001c24.00002408::2019/05/04-19:55:01.215 INFO [RES] IP Address <AG1_10.137.72.228>: IpaResourceControl, DELETE: IpaReleaseLeaseWhileOffline failed status 13.
00001c24.00002408::2019/05/04-19:55:01.215 ERR [RHS] Error 13 from ResourceControl 22020102 for resource AG1_10.137.72.228.
00000c68.00001488::2019/05/04-19:55:01.215 INFO [RCM] Letting all nodes complete any pending resource controls for resource AG1_10.137.72.228
00000c68.00001488::2019/05/04-19:55:01.218 INFO [GUM] Node 2: executing request locally, gumId:1595, my action: /rcm/gum/DeleteResource, # of updates: 1
00000c68.00001488::2019/05/04-19:55:01.218 INFO [RCM] rcm::RcmGum::DeleteResource(AG1_10.137.72.228)
00001c24.00002408::2019/05/04-19:55:01.218 INFO [RHS] Closing resource with handle HDL( 2089aead170 )
00001c24.00002408::2019/05/04-19:55:01.218 INFO [RHS] Close for resource with handle HDL( 2089aead170 ) has completed, releasing memory
00001c24.000003f0::2019/05/04-19:55:01.219 INFO [RES] IP Address <AG1_10.137.72.228>: IpaClose entry
00001c24.000003f0::2019/05/04-19:55:01.219 INFO [RES] IP Address <AG1_10.137.72.228>: IpaReleaseResource entry
00001c24.000003f0::2019/05/04-19:55:01.219 INFO [RES] IP Address <AG1_10.137.72.228>: Resource closed.
00001c24.000003f0::2019/05/04-19:55:01.219 INFO [RHS] Removing handle HDL( 2089aead170 ) from valid RHS resource handles
00000c68.00001488::2019/05/04-19:55:01.223 INFO [GUM] Node 2: executing request locally, gumId:1596, my action: /dm/update, # of updates: 1
Итак, ошибка кажется очевидной - это не разрешения и т. Д., А:
IpaValidatePrivateResProperties: не удалось найти совпадающий адрес сети кластера 10.137.72.228 и маску подсети 255.255.255.240. Ошибка: 259.
но как это может быть? Диспетчер кластеров четко показывает сеть 10.137.72.224/28 в качестве действительной подсети в сети. Почему он считает, что IP недействителен?
(Попытка сделать это с фактическими IP-адресами, зарегистрированными в Windows, дает тот же результат. AG2 также не использует зарегистрированный).
Если я пытаюсь добавить "Точку доступа клиента" непосредственно в WSFC, в отличие от мастера SSMS, он не позволяет мне вводить статический IP-адрес из подсетей, которые я пытаюсь использовать здесь. Показывает только первую подсеть (в которой есть AG2).
Большое спасибо
1 ответ
Я уверен, что это ошибка в пользовательском интерфейсе для WSFC / SSMS.
Используя powershell, я добавил IP-адреса вручную и имя сети, связал все это с зависимостями, и все это работает.
Некоторые сценарии, чтобы заставить любого, кто нуждается в подобном:
Add-ClusterResource -Name "IPAddress1" -ResourceType "IP Address" -Group "AG1"
Get-ClusterResource -Name IPAddress1 | Set-ClusterParameter -Multiple @{"Network" = "NET_PRIV_DB2";"Address" = "10.137.72.228";"SubnetMask" = "255.255.255.240";"EnableDHCP" = 0}
Add-ClusterResource -Name "IPAddress2" -ResourceType "IP Address" -Group "AG1"
Get-ClusterResource -Name IPAddress2 | Set-ClusterParameter -Multiple @{"Network" = "NET_PRIV_DB1";"Address" = "10.68.79.242";"SubnetMask" = "255.255.255.240";"EnableDHCP" = 0}
Add-ClusterResource -Name "ag1_sql_ag" -Group "AG1" -ResourceType "Network Name"
Get-ClusterResource -Name "ag1_sql_ag" | Set-ClusterParameter -Multiple @{"DnsName" = "ag1_sql_ag";"RegisterAllProvidersIP" = 1}
Set-ClusterResourceDependency -Resource ag1_sql_ag -Dependency "[IPAddress1] or [IPAddress2]"
Start-ClusterResource -Name ag1_sql_ag -Verbose
Add-ClusterResourceDependency -Resource 'AG1' -Provider 'ag1_sql_ag'