Fel (den angivna nyckeln fanns inte i ordlistan) och SQL Server FCI-installationen misslyckas på en virtuell Azure-dator i Server 2019
Den här artikeln hjälper dig att lösa problemet som uppstår när du försöker installera en Microsoft SQL Server redundansklusterinstans (FCI) i Windows Server 2019 på en virtuell Microsoft Azure-dator (VM).
Gäller för: SQL Server i vm – Windows, Windows Server 2019
Ursprungligt KB-nummer: 4525647
Symptom
När du försöker installera en Microsoft SQL Server redundansklusterinstans (FCI) i Windows Server 2019 på en virtuell Microsoft Azure-dator (VM), misslyckas installationen och du får följande felmeddelande:
Den angivna nyckeln fanns inte i ordlistan.
I det här fallet kan du se följande ytterligare information i loggfilen Details.txt i SQL Server installationsmapp:
Åtgärdsdata: Feature = SQL_Engine_Core_Inst_sql_engine_core_inst_Cpu64 Scenario = install Timing = ConfigNonRC ConfigObjectType = Microsoft.SqlServer.Configuration.ClusterConfiguration.FailoverClusterNamePrivateConfigObject FeatureName = SQL_Engine_Core_Inst FeatureCpuType = Cpu64 FeaturePackageId = sql_engine_core_inst FeatureClusterState = CompleteFailoverCluster Konfigurationsåtgärden misslyckades för funktion SQL_Engine_Core_Inst under tidsinställningen ConfigNonRC och scenariot ConfigNonRC. Den angivna nyckeln fanns inte i ordlistan. Kategorin för konfigurationsfel för det aktuella undantaget är ConfigurationFailure Configuration-åtgärden misslyckades för funktion SQL_Engine_Core_Inst under tidsinställningen ConfigNonRC och scenariot ConfigNonRC. System.Collections.Generic.KeyNotFoundException: Den angivna nyckeln fanns inte i ordlistan. på System.ThrowHelper.ThrowKeyNotFoundException() på System.Collections.Generic.Dictionary
2.get_Item(TKey key) at Microsoft.SqlServer.Configuration.ClusterConfiguration.FailoverClusterNamePrivateConfigObject.CreateFailoverClusterNameResource(FailoverClusterNamePublicConfigObject pubConfig) at Microsoft.SqlServer.Configuration.ClusterConfiguration.FailoverClusterNamePrivateConfigObject.Install(ConfigActionTiming timing, Dictionary
2 actionData, PublicConfigurationBase spcb) på Microsoft.SqlServer.Configuration.SqlConfigBase.PrivateConfigurationBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, ConfigBaseAction action, Dictionary2 actionData, PublicConfigurationBase spcbCurrent) at Microsoft.SqlServer.Configuration.SqlConfigBase.SqlFeatureConfigBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, ConfigBaseAction action, Dictionary
2 actionData, PublicConfigurationBase spcbCurrent) på Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction(String actionId) på Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute(String actionId, TextWriter errorStream) Följande är en undantagsstack som visar undantagen i den yttersta till innersta ordningen Inre undantag är indragen Undantagstyp: System.Collections.Generic.KeyNotFoundException Meddelande: Den angivna nyckeln fanns inte i ordlistan. HResult: 0x80131577 Data: SQL. Setup.FailureCategory = ConfigurationFailure WatsonConfigActionData = INSTALL@CONFIGNONRC@SQL_ENGINE_CORE_INST WatsonExceptionFeatureIdsActionData = System.String[] Stack: at System.ThrowHelper.ThrowKeyNotFoundException() at System.Collections.Generic.Dictionary2.get_Item(TKey key) at Microsoft.SqlServer.Configuration.ClusterConfiguration.FailoverClusterNamePrivateConfigObject.CreateFailoverClusterNameResource(FailoverClusterNamePublicConfigObject pubConfig) at Microsoft.SqlServer.Configuration.ClusterConfiguration.FailoverClusterNamePrivateConfigObject.Install(ConfigActionTiming timing, Dictionary
2 actionData, PublicConfigurationBase spcb) på Microsoft.SqlServer.Configuration.SqlConfigBase.PrivateConfigurationBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, ConfigBaseAction action, Dictionary2 actionData, PublicConfigurationBase spcbCurrent) at Microsoft.SqlServer.Configuration.SqlConfigBase.SqlFeatureConfigBase.Execute(ConfigActionScenario scenario, ConfigActionTiming timing, ConfigBaseAction action, Dictionary
2 actionData, PublicConfigurationBase spcbCurrent) på Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.ExecuteAction(String actionId) på Microsoft.SqlServer.Configuration.SqlConfigBase.SlpConfigAction.Execute(String actionId, TextWriter errorStream)
Orsak
En ny växel, ManagementPointNetworkType, som kan anropas av PowerShell-cmdletar för Redundanskluster introduceras i Windows Server 2019. Du kan använda följande alternativ för den nya växeln.
Växla parameter | Användning |
---|---|
Singleton | Använder den traditionella metoden DHCP eller statisk IP-adress. |
Distribueras | Använd ett distribuerat nätverksnamn med hjälp av nod-IP-adresser. |
Automatisk | Använder identifiering för att fastställa lämplig inställning. Om SQL Server körs i Azure använder distribuerad. Om SQL Server körs lokalt använder singleton (standardinställning). |
Om du skapar Windows-klustret med hjälp av Windows Cluster Manager Tool anger verktyget växelparametern till Automatisk. Eftersom du arbetar på en virtuell Azure-dator använder växeln ett distribuerat nätverksnamn i stället.
Du kan kontrollera detta genom att köra följande PowerShell-kommando:
C:\windows\system32> Get-clusterresource
Utdata som returneras av det här kommandot liknar följande:
Name State OwnerGroup ResourceType
Cloud Witness Online Cluster Group Cloud Witness
Cluster Name Online Cluster Group Distributed Network Name
Cluster Pool 1 Online 45d8f3c2-e8df-4a01-87b8-f3c383801f3f
Storage Pool
Cluster Virtual Disk
(ClusterPerformanceHistory) Online Cluster Group Physical Disk
Health Online Cluster Group Health Service
SDDC Management Online Cluster Group SDDC Management
Storage QoS Resource Online Cluster Group Storage QoS Policy Manager
Funktionen CreateFailoverClusterNameResource(FailoverClusterNamePublicConfigObject pubConfig)
kontrollerar resursnamnet vars typ ärNetworkName. Det här är för att kontrollera att det virtuella servernamnet som du angav redan finns.
Det går dock inte att installera SQL Server FCI i ett Windows-kluster som bara har ett distribuerat nätverksnamn. Felmeddelandet som nämns i avsnittet Symptom anger att det inte finns någon tillgänglig resurs i Windows Server 2019 vars typ ärNetworkName.
Åtgärd
Du kan åtgärda problemet genom att ta bort det aktuella klustret och sedan skapa det igen med hjälp av ett PowerShell-kommando som har följande parameter:
managementpointnetworktype singleton
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för