Integration Services (SSIS) in einem Cluster

Gilt für:SQL Server SSIS Integration Runtime in Azure Data Factory

Für Integration Services ist Clustering nicht zu empfehlen, da es sich beim Integration Services -Dienst nicht um einen Cluster- oder clusterfähigen Dienst handelt, der auch keine Failoverunterstützung zwischen Clusterknoten bietet. In einer Clusterumgebung sollte Integration Services deshalb auf jedem Knoten im Cluster als eigenständiger Dienst installiert und gestartet werden.

Auch wenn der Integration Services -Dienst kein Clusterdienst ist, können Sie den Dienst manuell so konfigurieren, dass er das Clusterressource ausgeführt wird, wenn Sie Integration Services separat auf den einzelnen Clusterknoten installiert haben.

Wenn jedoch mit der Erstellung einer gruppierten Hardwareumgebung Hochverfügbarkeit erzielt werden soll, dann müssen Sie dazu den Integration Services-Dienst nicht als Clusterressource konfigurieren. Zum Verwalten der Pakete auf einem beliebigen Knoten im Cluster von einem beliebigen anderen Knoten des Clusters aus ändern Sie die Konfigurationsdatei für den Integration Services -Dienst auf jedem Knoten im Cluster. Sie müssen diese Konfigurationsdatei ändern, um auf alle verfügbaren Instanzen von SQL Server verweisen zu können, auf denen Pakete gespeichert sind. Mit dieser Lösung kann Hochverfügbarkeit bereitgestellt werden, die die meisten Kunden benötigen, ohne dass die Probleme auftreten, zu denen es kommen kann, wenn der Integration Services-Dienst als Clusterressource konfiguriert wird. Weitere Informationen zum Ändern der Konfigurationsdatei finden Sie unter Integration Services-Dienst (SSIS-Dienst).

Um fundierte Entscheidungen in Bezug auf das Konfigurieren des Diensts in einer Clusterumgebung treffen zu können, müssen Sie die Rolle des Integration Services -Diensts verstehen. Weitere Informationen finden Sie unter Integration Services-Dienst (SSIS-Dienst).

Nachteile

Zu den möglichen Nachteilen der Konfiguration des Integration Services -Diensts als Clusterressource zählen die folgenden:

  • Wenn ein Failover auftritt, wird die Paketausführung nicht neu gestartet.

    Zur Wiederherstellung nach Paketfehlern können Pakete an Prüfpunkten neu gestartet werden. Dazu muss der Dienst nicht als Clusterressource konfiguriert sein. Weitere Informationen finden Sie unter Neustarten von Paketen mit Prüfpunkten.

  • Wenn Sie den Integration Services -Dienst in einer anderen Ressourcengruppe als SQL Serverkonfigurieren, können Sie Management Studio auf Clientcomputern nicht zum Verwalten von Paketen verwenden, die in der msdb-Datenbank gespeichert sind. Der Integration Services -Dienst kann in diesem Doppelhopszenario keine Anmeldeinformationen delegieren.

  • Bei mehreren SQL Server -Ressourcengruppen, die den Integration Services -Dienst in einem Cluster aufweisen, kann ein Failover zu unerwarteten Ergebnissen führen. Stellen Sie sich folgendes Szenario vor: Gruppe 1, die den SQL Server -Dienst und den Integration Services -Dienst aufweist, wird auf Knoten A ausgeführt. Gruppe 2, die ebenfalls den SQL Server -Dienst und den Integration Services -Dienst aufweist, wird auf Knoten B ausgeführt. Gruppe 2 führt ein Failover zu Knoten A aus. Beim Versuch, eine andere Instanz des Integration Services -Diensts auf Knoten A zu starten, tritt ein Fehler auf, weil der Integration Services -Dienst ein Dienst mit einer Instanz ist. Ob bei dem SQL Server -Dienst, der versucht, ein Failover zu Knoten A auszuführen, auch ein Fehler auftritt, hängt von der Konfiguration des Integration Services -Diensts in Gruppe 2 ab. Wenn der Integration Services -Dienst so konfiguriert wurde, dass er Auswirkungen auf die anderen Dienste in der Ressourcengruppe hat, dann tritt bei dem SQL Server -Dienst, der das Failover ausführt, ein Fehler auf, da bei dem Integration Services -Dienst ein Fehler aufgetreten ist. Wenn der Dienst so konfiguriert wurde, dass er keinerlei Auswirkungen auf die anderen Dienste in der Ressourcengruppe hat, kann der SQL Server -Dienst ein Failover zu Knoten A ausführen. Sofern nicht der Integration Services -Dienst in Gruppe 2 so konfiguriert wurde, dass er keine Auswirkungen auf die anderen Dienste in der Ressourcengruppe hat, kann der Fehler bei dem Integration Services -Dienst, der das Failover ausführt, dazu führen, dass bei dem SQL Server -Dienst, der das Failover ausführt, auch ein Fehler auftritt.

Konfigurieren des Diensts als Clusterressource

Kunden, für die die Vorteile der Konfiguration des Integration Services -Diensts als Clusterressource die Nachteile überwiegen, finden in diesem Abschnitt alle erforderlichen Konfigurationsanweisungen. Microsoft rät dennoch von einer Konfiguration des Integration Services -Diensts als Clusterressource ab.

Sie müssen Sie die folgenden Tasks ausführen, um den Integration Services -Dienst als Clusterressource zu konfigurieren.

  • Installieren Sie Integration Services auf einem Cluster.

    Wenn Sie Integration Services auf einem Cluster installieren möchten, müssen Sie Integration Services auf jedem Knoten im Cluster installieren.

  • Konfigurieren Sie Integration Services als Clusterressource.

    Wenn Integration Services auf jedem Knoten im Cluster installiert ist, müssen Sie Integration Services als Clusterressource konfigurieren. Wenn Sie den Integration Services -Dienst als Clusterressource konfigurieren, können Sie den Dienst der gleichen Ressourcengruppe wie SQL Server-Datenbank-Engineoder einer anderen Gruppe hinzufügen. In der folgenden Tabelle werden die möglichen Vor- und Nachteile des Auswählens einer Ressourcengruppe beschrieben.

    Wenn Integration Services und SQL Server sich in der gleichen Ressourcengruppe befinden Wenn Integration Services und SQL Server sich in verschiedenen Ressourcengruppen befinden
    Clientcomputer können mithilfe von SQL Server Management Studio Pakete verwalten, die in der msdb-Datenbank gespeichert sind, da sowohl der SQL Server-Datenbank-Engine -Dienst als auch der Integration Services -Dienst auf dem gleichen virtuellen Server ausgeführt werden. Mit dieser Konfiguration können die Delegierungsprobleme des Doppelhopszenarios vermieden werden. Clientcomputer können in der msdb-Datenbank gespeicherte Pakete nicht mithilfe von SQL Server Management Studio verwalten. Der Client kann eine Verbindung mit dem virtuellen Server herstellen, auf dem der Integration Services -Dienst ausgeführt wird. Allerdings kann dieser Computer die Anmeldeinformationen des Benutzers nicht an den virtuellen Server delegieren, auf dem SQL Server ausgeführt wird. Dies wird als Doppelhopszenario bezeichnet.
    Der Integration Services -Dienst teilt sich die CPU- und andere Computerressourcen mit anderen SQL Server -Diensten. Der Integration Services -Dienst teilt sich die CPU- und andere Computerressourcen nicht mit anderen SQL Server -Diensten, da die verschiedenen Ressourcengruppen auf verschiedenen Knoten konfiguriert sind.
    Pakete können schneller in die msdb-Datenbank geladen und dort gespeichert werden, und dabei wird weniger Netzwerkverkehr generiert, weil beide Dienste auf dem gleichen Computer ausgeführt werden. Das Laden und Speichern von Paketen in der msdb-Datenbank dauert möglicherweise länger und generiert mehr Netzwerkverkehr.
    Beide Dienste sind gleichzeitig online oder offline. Der Integration Services -Dienst kann online sein, während SQL Server-Datenbank-Engine offline ist. Das bedeutet, dass die in der msdb-Datenbank von SQL Server-Datenbank-Engine gespeicherten Pakete nicht verfügbar sind.
    Der Integration Services -Dienst kann bei Bedarf nicht schnell zu einem anderen Knoten verschoben werden. Der Integration Services -Dienst kann bei Bedarf schneller zu einem anderen Knoten verschoben werden.

    Wenn Sie entschieden haben, welcher Ressourcengruppe Integration Serviceshinzugefügt werden soll, müssen Sie Integration Services als Clusterressource in dieser Gruppe konfigurieren.

  • Konfigurieren Sie den Integration Services -Dienst und den Paketspeicher.

    Nachdem Sie Integration Services als Clusterressource konfiguriert haben, müssen Sie den Speicherort und den Inhalt der Konfigurationsdatei für den Integration Services -Dienst auf jedem Knoten im Cluster ändern. Durch diese Änderungen sind bei einem Failover die Konfigurationsdatei und der Paketspeicher für alle Knoten verfügbar. Nachdem Sie den Speicherort und den Inhalt der Konfigurationsdatei geändert haben, müssen Sie den Dienst online schalten.

  • Schalten Sie den Integration Services -Dienst als Clusterressource online.

Nach dem Konfigurieren des Integration Services -Diensts auf einem Cluster oder auf einem beliebigen Server müssen Sie möglicherweise DCOM-Berechtigungen konfigurieren, bevor Sie von einem Clientcomputer aus eine Verbindung mit dem Dienst herstellen können. Weitere Informationen finden Sie unter Integration Services-Dienst (SSIS-Dienst).

Der Integration Services -Dienst kann keine Anmeldeinformationen delegieren. Daher können Sie in der msdb-Datenbank gespeicherte Pakete nicht mithilfe von Management Studio verwalten, wenn die folgenden Bedingungen zutreffen:

  • Der Integration Services -Dienst und SQL Server werden auf separaten Servern oder virtuellen Servern ausgeführt.

  • Der Client, auf dem SQL Server Management Studio ausgeführt wird, ist ein dritter Computer.

Der Client kann eine Verbindung mit dem virtuellen Server herstellen, auf dem der Integration Services -Dienst ausgeführt wird. Allerdings kann dieser Computer die Anmeldeinformationen des Benutzers nicht an den virtuellen Server delegieren, auf dem SQL Server ausgeführt wird. Dies wird als Doppelhopszenario bezeichnet.

So installieren Sie Integration Services auf einem Cluster

  1. Installieren und konfigurieren Sie einen Cluster mit einem oder mehreren Knoten.

  2. (Optional) Installieren Sie Clusterdienste, wie z.B. das SQL Server-Datenbank-Engine.

  3. Installieren Sie Integration Services auf jedem Knoten des Clusters.

So konfigurieren Sie Integration Services als Clusterressource

  1. Öffnen Sie die Clusterverwaltung.

  2. Wählen Sie in der Konsolenstruktur den Gruppenordner aus.

  3. Wählen Sie im Ergebnisbereich die Gruppe aus, der Sie Integration Serviceshinzufügen möchten:

    • Wählen Sie die Gruppe aus, zu der SQL Servergehört, um Integration Services als Clusterressource der gleichen Ressourcengruppe wie SQL Server hinzuzufügen.

    • Um Integration Services als Clusterressource einer anderen Ressourcengruppe als SQL Serverhinzuzufügen, wählen Sie eine Gruppe aus, zu der SQL Server nicht gehört.

  4. Zeigen Sie im Menü Datei auf Neu, und klicken Sie anschließend auf Ressource.

  5. Geben Sie auf der Seite Neue Ressource des Assistenten für Ressourcen einen Namen ein, und wählen Sie Allgemeiner Dienst als Diensttypaus. Ändern Sie den Wert für Gruppenicht. Klicken Sie auf Weiter.

  6. Fügen Sie auf der Seite Mögliche Besitzer die Knoten des Clusters als mögliche Besitzer der Ressource hinzu, oder entfernen Sie sie. Klicken Sie auf Weiter.

  7. Wählen Sie unter Verfügbare Ressourcen eine Ressource aus, und klicken Sie anschließend auf Hinzufügen, um Abhängigkeiten auf der Seite Abhängigkeitenhinzuzufügen. Im Falle eines Failovers sollten sowohl SQL Server als auch der freigegebene Datenträger mit den Integration Services -Paketen wieder online geschaltet werden, bevor Integration Services online geschaltet wird. Nachdem Sie die Abhängigkeiten ausgewählt haben, klicken Sie auf Weiter.

    Weitere Informationen finden Sie unter Hinzufügen von Abhängigkeiten zu einer Ressource von SQL Server.

  8. Geben Sie auf der Seite Allgemeine DienstparameterMsDtsServer als Namen des Diensts ein. Klicken Sie auf Weiter.

  9. Klicken Sie auf der Seite Registrierungsreplikation auf Hinzufügen , um den Registrierungsschlüssel hinzuzufügen, der den Speicherort der Konfigurationsdatei für den Integration Services -Dienst identifiziert. Diese Datei muss sich auf einem freigegebenen Datenträger befinden, der sich in der gleichen Ressourcengruppe wie der Integration Services -Dienst befindet.

  10. Geben Sie im Dialogfeld RegistrierungsschlüsselSOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS\ServiceConfigFileein. Klicken Sie auf OKund anschließend auf Fertig stellen.

    Der Integration Services -Dienst wurde nun als Clusterressource hinzugefügt.

So konfigurieren Sie den Integration Services-Dienst und den Paketspeicher

  1. Suchen Sie die Konfigurationsdatei unter %ProgramFiles%\Microsoft SQL Server\100\DTS\Binn\MsDtsSrvr.ini.xml. Kopieren Sie sie auf den freigegebenen Datenträger für die Gruppe, der Sie den Integration Services -Dienst hinzugefügt haben.

  2. Erstellen Sie auf dem freigegebenen Datenträger einen neuen Ordner mit dem Namen Packages . Dieser soll als Paketspeicher dienen. Erteilen Sie den entsprechenden Benutzern und Gruppen Ordnerauflist- und Schreibberechtigungen für den neuen Ordner.

  3. Öffnen Sie die Konfigurationsdatei auf dem freigegebenen Datenträger in einem Text- oder XML-Editor. Ändern Sie den Wert des ServerName -Elements in den Namen des virtuellen Servers SQL Server , der sich in der gleichen Ressourcengruppe befindet.

  4. Ändern Sie den Wert des StorePath -Elements in den vollqualifizierten Pfad des Ordners Packages , der in einem vorangehenden Schritt auf dem freigegebenen Datenträger erstellt wurde.

  5. Ersetzen Sie auf jedem Knoten den Wert der Datei HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS\ServiceConfigFile in der Registrierung durch den vollqualifizierten Pfad und Namen der Dienstkonfigurationsdatei auf dem freigegebenen Datenträger.

So schalten Sie den Integration Services-Dienst online

  • Wählen Sie in der Clusterverwaltungden Integration Services -Dienst aus, klicken Sie mit der rechten Maustaste, und wählen Sie im Popupmenü Online schalten aus. Der Integration Services -Dienst ist nun als Clusterressource online.