Durch die Verwendung einer Microsoft SQL Server-Datenbank mit hoher Verfügbarkeit für Daten von ArcGIS-Services können die Ausfallzeiten von Web-Services vermieden werden.
SQL Server bietet mehrere Lösungen mit hoher Verfügbarkeit. ArcGIS unterstützt Verbindungen zu AlwaysOn-Verfügbarkeitsgruppen und Failover-Cluster-Instanzen.
Beachten Sie, dass Microsoft die Datenbankspiegelung nicht mehr unterstützt. Erwägen Sie als Ersatz für die Spiegelung eine AlwaysOn-Lösung.
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. Vor der Implementierung dieser Lösung sollten Sie die SQL Server AlwaysOn-Dokumentation in der Microsoft-Dokumentation lesen.
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
Wie bereits erwähnt, hat Microsoft die Datenbankspiegelung in SQL Server abgeschafft. Sollten Sie sie weiter verwenden, können Sie Verbindungsinformationen zum Haupt- und Spiegelserver für die für Ihre Services verwendeten Quelldaten bereitstellen. Geben Sie die Informationen im Format <principal>;MIRROR=<mirror> ein.
Wenn der Hauptserver nicht mehr verfügbar ist, versucht ArcGIS 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 ArcMap 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.