Einrichten der geografischen Redundanz mit SQL Server-Replikation

Wichtig

Wenn Sie eine AD FS-Farm erstellen und Ihre Konfigurationsdaten mithilfe von SQL Server speichern möchten, können Sie SQL Server 2008 und höhere Versionen verwenden.

Wenn Sie SQL Server als AD FS-Konfigurationsdatenbank verwenden, können Sie mit SQL Server-Replikation Georedundanz für Ihre AD FS-Farm einrichten. Georedundanz repliziert Daten zwischen zwei geografisch entfernten Standorten, sodass Anwendungen von einem Standort zu einem anderen wechseln können. Auf diese Weise haben Sie beim Ausfall eines Standorts weiterhin alle Konfigurationsdaten am zweiten Standort zur Verfügung. Weitere Informationen finden Sie unter Legacy-AD FS-Verbundserverfarm mit SQL Server im Abschnitt zur geografischen Redundanz in SQL Server.

Voraussetzungen

Installieren und konfigurieren Sie eine SQL Server-Farm. Weitere Informationen finden Sie unter https://technet.microsoft.com/evalcenter/hh225126.aspx. Stellen Sie auf der anfänglichen SQL Server-Instanz sicher, dass der SQL Server-Agent-Dienst ausgeführt wird, und legen Sie den automatischen Start fest.

Erstellen der zweiten SQL Server-Instanz (Replikat) für Georedundanz

  1. Installieren Sie SQL Server (weitere Informationen finden Sie unter https://technet.microsoft.com/evalcenter/hh225126.aspx). Kopieren Sie die resultierenden Skriptdateien „CreateDB.sql“ und „SetPermissions.sql“ in die Replikat-SQL Server-Instanz.

  2. Sicherstellen, dass der SQL-Agent-Dienst ausgeführt wird und auf automatischen Start festgelegt ist

  3. Führen Sie Export-AdfsDeploymentSQLScript auf dem primären AD FS-Knoten aus, um die Dateien „CreateDB.sql“ und „SetPermissions.sql“ zu erstellen. Beispiel: PS:\>Export-AdfsDeploymentSQLScript -DestinationFolder . –ServiceAccountName CONTOSO\gmsa1$. Screenshot that shows how to run the Export-AdfsDeploymentSQLScript on the primary AD FS node.

  4. Kopieren Sie die Skripts auf Ihren sekundären Server. Öffnen Sie das Skript „CreateDB.sql“ in SQL Management Studio, und klicken Sie auf Ausführen. Screenshot that shows the open the CreateDB.sql script in SQL Management Studio.

  5. Öffnen Sie das Skript „SetPermissions.sql“ in SQL Management Studio, und klicken Sie auf Ausführen. Screenshot that shows the open the SetPermissions.sql script in SQL Management Studio.

Hinweis

Sie können auch das Folgende in der Befehlszeile verwenden.

c:\>sqlcmd –i CreateDB.sql

c:\>sqlcmd –i SetPermissions.sql

Erstellen von Herausgebereinstellungen für die anfängliche SQL Server-Instanz

  1. Klicken Sie im SQL Server Management Studio unter Replikation mit der rechten Maustaste auf Lokale Publikationen, und wählen Sie Neue Publikation... aus. Screenshot that shows the New Publication menu option.

  2. Klicken Sie auf dem Bildschirm „Assistent für neue Veröffentlichung“ auf Weiter.
    Screenshot that shows the New Publication Wizard screen.

  3. Wählen Sie auf der Seite Verteiler den lokalen Server als Verteiler aus, und klicken Sie auf Weiter. Screenshot that that shows where to choose the local server as distributor.

  4. Geben Sie auf der Ordnerseite Momentaufnahme „\\SQL1\repldata“ anstelle des Standardordners ein. (HINWEIS: Möglicherweise müssen Sie diese Freigabe selbst erstellen.) Screenshot that shows where to enter the path to the default Snapshot folder.

  5. Wählen Sie AdfsConfigurationV3 als Veröffentlichungsdatenbank aus, und klicken Sie auf Weiter. Screenshot that shows where to choose AdfsConfigurationV3 as the publication database.

  6. Wählen Sie unter Veröffentlichungstyp die Option Veröffentlichung zusammenführen aus, und klicken Sie auf Weiter. Screenshot that shows where

  7. Wählen Sie unter Abonnententypen die Option SQL Server 2008 oder höher aus, und klicken Sie auf Weiter. Screenshot that shows where to choose SQL Server 2008 or later.

  8. Wählen Sie auf der Seite Artikel den Knoten Tabellen aus, um alle Tabellen auszuwählen. Deaktivieren Sie dann die SyncProperties-Tabelle (diese sollte nicht repliziert werden).
    Screenshot that shows where to clear the SyncProperties (IdentityServerPolicy) check box.

  9. Wählen Sie auf der Seite Artikel den Knoten Benutzerdefinierte Funktionen aus, um alle benutzerdefinierten Funktionen auszuwählen, und klicken Sie auf Weiter. Screenshot that shows where to select the User Defined Functions check box.

  10. Klicken Sie auf der Seite Artikelprobleme auf Weiter. Screnshot that shows the Article Issues screen.

  11. Klicken Sie auf der Seite Tabellenzeilen filtern auf Weiter. Screenshot that shows the Filter Table Rows screen.

  12. Wählen Sie auf der Seite Momentaufnahme-Agent die Standardwerte „Sofort“ und „14 Tage“ aus, und klicken Sie auf Weiter. Screenshot that shows the Snapshot Agent screen.
    Möglicherweise müssen Sie ein Domänenkonto für den SQL-Agent erstellen. Führen Sie die Schritte unter Konfigurieren der SQL-Anmeldung für das Domänenkonto CONTOSO\sqlagent aus, um eine SQL-Anmeldung für diesen neuen AD-Benutzer zu erstellen und bestimmte Berechtigungen zuzuweisen.

  13. Klicken Sie auf der Seite Agent-Sicherheit auf Sicherheitseinstellungen, geben Sie den Benutzernamen/das Kennwort eines Domänenkontos (kein GMSA) ein, das für den SQL-Agent erstellt wurde, und klicken Sie auf OK. Klicken Sie auf Weiter. Screenshot that shows where to enter the username and password for the domain account.

  14. Klicken Sie auf der Seite Aktionen des Assistenten auf Weiter. Screenshot that shows the Wizard Actions screen.

  15. Geben Sie auf der Seite Assistenten abschließen einen Namen für die Veröffentlichung an, und klicken Sie auf Fertig stellen. Screenshot that shows where you enter a name for your publication.

  16. Sobald die Veröffentlichung erstellt wurde, sollte der Erfolgsstatus angezeigt werden. Klicken Sie auf Schließen. Screenshot that shows the successful completion of the publication.

  17. Klicken Sie zurück in SQL Server Management Studio mit der rechten Maustaste auf die neue Veröffentlichung, und klicken Sie dann auf Replikationsmonitor starten. Screenshot that shows the Launch Replication Monitor menu option.

Erstellen von Abonnementeinstellungen auf der Replikat-SQL Server-Instanz

Stellen Sie sicher, dass Sie die Herausgebereinstellungen für die anfängliche SQL Server-Instanz wie oben beschrieben erstellt haben, und führen Sie dann das folgende Verfahren aus:

  1. Klicken Sie in der Replikat-SQL Server-Instanz in SQL Server Management Studio unter Replikation mit der rechten Maustaste auf Lokale Abonnements, und wählen Sie Neues Abonnement... aus. Screenshot that shows where to select New Subscription.

  2. Klicken Sie auf der Seite Assistent für neue Abonnements auf Weiter. Screenshot that shows the New Subscription Wizard screen.

  3. Wählen Sie auf der Seite Veröffentlichung den Herausgeber aus der Dropdownliste aus. Erweitern Sie AdfsConfigurationV3, wählen Sie den Namen der oben erstellten Veröffentlichung aus, und klicken Sie auf Weiter. Screenshot that shows where to expand AdfsConfigurationV3 and select the name of the name of the publication that you created.

  4. Wählen Sie auf der Seite Speicherort des Merge-Agents die Option Jeden Agent auf seinem Abonnenten ausführen (Pullabonnements) (Standard) aus, und klicken Sie dann auf Weiter. Screenshot that shows the Run each agent at its Subscriber (pull subscriptions) option.
    Dies bestimmt zusammen mit dem unten angegebenen Abonnementtyp die Konfliktlösungslogik. (Weitere Informationen finden Sie unter Erkennen und Beseitigen von Konflikten bei der Mergereplikation.

  5. Wählen Sie auf der Seite Abonnenten die Option AdfsConfigurationV3 als Abonnentendatenbank aus, und klicken Sie auf Weiter. Screenshot that shows the Subscribers screen.

  6. Klicken Sie auf der Seite Sicherheit für den Merge-Agent auf ..., und geben Sie den Benutzernamen und das Kennwort eines Domänenkontos (kein GMSA) ein, das mithilfe des Felds mit den Auslassungspunkten für den SQL-Agent erstellt wurde, und klicken Sie auf Weiter. Screenshot that shows the Merge Agent Security screen.

  7. Wählen Sie unter Synchronisierungszeitplan die Option Fortlaufend ausführen aus, und klicken Sie auf Weiter. Screenshot that shows where to select Run continuously.

  8. Klicken Sie unter Abonnements initialisieren auf Weiter. Screenshot that shows the Initialize Subscriptions screen.

  9. Wählen Sie unter Abonnementtyp die Option Client aus, und klicken Sie auf Weiter.

    Implikationen hiervon werden hier und hier dokumentiert. Im Wesentlichen verwenden wir die einfache Konfliktlösung „Erste Daten auf Verleger gewinnen“, und wir müssen nicht erneut für andere Abonnenten veröffentlichen. Screenshot that shows the Subscription Type screen.

  10. Stellen Sie auf der Seite Aktionen des Assistenten sicher, dass Abonnement erstellen aktiviert ist, und klicken Sie auf Weiter. Screenshot that shows where verify that the Create the subscription option is selected.

  11. Klicken Sie auf der Seite Assistenten abschließen auf Fertig stellen. Screenshot that shows the Complete the Wizard screen.

  12. Sobald der Prozess der Abonnementerstellung abgeschlossen hat, sollte eine Erfolgsmeldung angezeigt werden. Klicken Sie auf Schließen. Set up Geographic Redundancy

Überprüfen des Initialisierungs- und Replikationsprozesses

  1. Klicken Sie auf der primären SQL Server-Instanz mit der rechten Maustaste auf den Knoten Replikation und dann auf Replikationsmonitor starten.

  2. Klicken Sie im Replikationsmonitor auf die Veröffentlichung.

  3. Klicken Sie auf der Registerkarte Alle Abonnements mit der rechten Maustaste auf Details anzeigen.

    Unter Aktionen für die anfängliche Replikation sollten viele Einträge angezeigt werden.

  4. Darüber hinaus können Sie unter dem Knoten SQL Server-Agent\Aufträge die Aufträge anzeigen, die für die Ausführung der Vorgänge der Veröffentlichung/des Abonnements geplant sind. Es werden nur lokale Aufträge angezeigt. Überprüfen Sie daher unbedingt den Herausgeber und den Abonnenten für die Problembehandlung. Klicken Sie mit der rechten Maustaste auf einen Auftrag, und wählen Sie Verlauf anzeigen aus, um den Ausführungsverlauf und die Ergebnisse anzuzeigen.

Konfigurieren der SQL-Anmeldung für das Domänenkonto CONTOSO\sqlagent

  1. Erstellen Sie eine neue Anmeldung für die primäre und die Replikat-SQL Server-Instanz mit Namen CONTOSO\sqlagent (der Name des neuen Domänenbenutzers, der in den obigen Verfahren auf der Seite Agent-Sicherheit erstellt und konfiguriert wurde.)

  2. Klicken Sie in SQL Server mit der rechten Maustaste auf die von Ihnen erstellte Anmeldung, wählen Sie „Eigenschaften“ aus, und ordnen Sie diese Anmeldung dann auf der Registerkarte Benutzerzuordnung den Datenbanken AdfsConfiguration und AdfsArtifact mit öffentlichen und db_genevaservice-Rollen zu. Ordnen Sie diese Anmeldung auch der Verteilungsdatenbank zu, und fügen Sie die Rolle „db_owner“ sowohl für Verteilungs- als auch adfsconfiguration-Tabellen hinzu. Führen Sie dies ggf. sowohl für die primäre auch die Replikat-SQL Server-Instanz aus. Weitere Informationen finden Sie unter Replication Agent Security Model.

  3. Erteilen Sie dem entsprechenden Domänenkonto Lese- und Schreibberechtigungen für die als Verteiler konfigurierte Freigabe. Achten Sie darauf, Lese- und Schreibberechtigungen sowohl in den Freigabeberechtigungen als auch den lokalen Dateiberechtigungen festzulegen.

Konfigurieren von AD FS-Knoten, sodass sie auf die SQL Server-Replikatfarm verweisen

Nachdem Sie die Georedundanz eingerichtet haben, können die AD FS-Farmknoten mithilfe der standardmäßigen AD FS-„Join“-Farmfunktionen entweder über die Benutzeroberfläche des AD FS-Konfigurations-Assistenten oder mit Windows PowerShell so konfiguriert werden, dass sie auf Ihre Replikat-SQL Server-Farm zeigen.

Wenn Sie die Benutzeroberfläche des AD FS-Konfigurations-Assistenten verwenden, wählen Sie Hinzufügen eines Verbundservers zu einer Verbundserverfarm aus. Wählen Sie NICHTErstellen des ersten Verbundservers in einer Verbundserverfarm aus.

Wenn Sie Windows PowerShell verwenden, führen Sie Add-AdfsFarmNode aus. Führen Sie NICHTInstall-AdfsFarm aus.

Wenn Sie dazu aufgefordert werden, geben Sie den Host- und Instanznamen der Replikat-SQL Server-Instanz ein, NICHT die anfängliche SQL Server-Instanz.