Durch die Verwendung einer Microsoft Server-Datenbank mit hoher Verfügbarkeit für Daten von ArcGIS-Services können deren Ausfallzeiten vermieden werden.
SQL Server bietet mehrere Lösungen mit hoher Verfügbarkeit. ArcGIS unterstützt Verbindungen zu den folgenden Typen:
- AlwaysOn-Verfügbarkeitsgruppen und Failover-Cluster-Instanzen
- Datenbankspiegelung
Microsoft unterstützt die Datenbankspiegelung nicht mehr. Wenn Sie SQL Server 2012 oder höher verwenden, sollten Sie anstelle der Spiegelung eine AlwaysOn-Lösung einsetzen.
In den folgenden Abschnitten wird erläutert, welche Informationen angegeben werden müssen, um von ArcGIS eine Verbindung mit SQL Server-Datenbanken mit hoher Verfügbarkeit herzustellen:
AlwaysOn-Verfügbarkeitsgruppen und Failover-Cluster-Instanzen
Eine Failover-Cluster-Instanz umfasst eine redundante SQL Server-Instanz, mit der Clients eine Verbindung herstellen können, wenn eine Instanz ausfällt. Mit Verfügbarkeitsgruppen haben Sie die Möglichkeit, eine Reihe von primären Datenbanken und bis zu vier Gruppen von schreibgeschützten sekundären Datenbanken, die über Failover-Cluster-Instanzen verteilt sind, anzugeben. Lesen Sie in jedem Fall die SQL Server AlwaysOn-Dokumentation im Microsoft Developer Network, bevor Sie diese Lösung implementieren.
Nachdem die AlwaysOn-Lösung einsatzfähig ist, können Sie von ArcGIS eine Verbindung dazu herstellen, indem Sie den Verfügbarkeitsgruppen-Listener anstelle des SQL Server-Instanznamens angeben. Sie können zusätzliche Bedingungen an den Gruppen-Listener anhängen. Trennen Sie den Namen des Gruppen-Listeners und die Parameter durch Semikolon (;). Sie können die folgenden Bedingungen hinzufügen:
- APPLICATIONINTENT=READONLY oder APPLICATIONINTENT=READWRITE
- MULTISUBNETFAILOVER=YES oder MULTISUBNETFAILOVER=NO
Wenn Sie keine Werte für APPLICATIONINTENT und MULTISUBNETFAILOVER angeben, lauten die Standardwerte READWRITE und NO.
Im folgenden Beispiel wird eine Verbindung zu einer schreibgeschützten sekundären Datenbank durch den Gruppen-Listener "org_agl" hergestellt.
Datenbankspiegelung
Wenn Sie in SQL Server die Datenbankspiegelung verwenden, können Sie Verbindungsinformationen zum Haupt- und Spiegelserver für die für Ihre Services verwendeten Quelldaten bereitstellen. Diese weisen das Format <Haupt>;MIRROR=<Spiegel> auf.
Wenn der Hauptserver nicht mehr verfügbar ist, versucht ArcGIS for Server automatisch, die Verbindung wiederherzustellen. Steht der Spiegelserver zur Verfügung, wird die Verbindung des Service so umgestellt, dass die Daten auf dem Spiegelserver verwendet werden.
In den folgenden Abschnitten werden verschiedene Szenarien zum Festlegen der Datenspiegelung beschrieben:
Publisher- und Servercomputer verwenden dieselbe Datenbank
Wenn die GIS-Ressource, die Sie als Service freigeben, dieselbe Datenbank wie der veröffentlichte Service verwendet und diese Datenbank gespiegelt wird, geben Sie im Feld Instanz der freigegebenen Datenbankverbindung Instanzinformationen für den Haupt- und Spiegelserver an.
Wenn Sie beispielsweise die Verbindung aus dem Dialogfeld Datenbankverbindung in ArcGIS for Desktop herstellen, der Hauptserver "oak\prod" lautet, der Spiegelserver "oak2\echo" heißt und die Datenbanken verdoppelt sind, dann sieht die Verbindung in etwa folgendermaßen aus:
Publisher- und Servercomputer verwenden verschiedene Datenbanken
Wenn die GIS-Ressource und der veröffentliche Service unterschiedliche Datenbanken für ihre Quelldaten verwenden (entweder replizierte Geodatabases oder eine verwaltete Datenbank), müssen Sie die angegebenen Datenbankverbindungen trennen. Um eine hohe Verfügbarkeit des Service sicherzustellen, muss die für den Publisher definierte Verbindungsdatei die bereits beschriebene Spiegelungssyntax verwenden.
Wenn sich der Feature-Service beispielsweise auf Daten bezieht, die auf die verwaltete Datenbank "gisdata" kopiert werden, die sich auf dem Server "willow" befindet und auf den Server "cottonwood" gespiegelt wird, sieht die registrierte Geodatabase-Verbindung in etwa folgendermaßen aus:
Da in diesem Beispiel standardmäßige SQL Server-Instanzen verwendet werden, können Sie anstelle des Namens der SQL Server-Instanz die IP-Adresse für jeden Server angeben. Wenn beispielsweise die IP-Adresse für "willow" 10.10.100.10 lautet und die IP-Adresse für "cottonwood" 11.11.111.11, geben Sie 10.10.100.10;MIRROR=11.11.111.11 in das Textfeld Instanz ein. Wenn eine der SQL Server-Instanzen einen anderen Port als den standardmäßigen Datenbank-Engine-Port 1433 überwacht, geben Sie die Portnummer bei den Verbindungsinformationen an. Wenn die Instanz von "willow" den Port 50000 überwacht, geben Sie 10.10.100.10:50000;MIRROR=11.11.111.11 in das Textfeld Instanz ein.