Tutorial: Konfigurieren der aktiven Georeplikation und des Failovers (Azure SQL-Datenbank)

Gilt für:Azure SQL-Datenbank

In diesem Artikel wird veranschaulicht, wie Sie die aktive Georeplikation für Azure SQL-Datenbank über das Azure-Portal oder mithilfe der Azure CLI konfigurieren und ein Failover initiieren.

Bewährte Methoden für die Verwendung von Failovergruppen finden Sie unter Failovergruppen mit Azure SQL-Datenbank und Failovergruppen mit Azure SQL Managed Instance.

Voraussetzungen

In diesem Tutorial erfahren Sie, wie Sie eine Datenbank für die aktive Georeplikation konfigurieren. Informationen zum Erstellen einer Einzeldatenbank mit dem Azure-Portal, der Azure CLI, der Azure CLI (sql up) oder PowerShell finden Sie unter Schnellstart: Erstellen einer Einzeldatenbank – Azure SQL-Datenbank.

Hinzufügen einer sekundären Datenbank

Mit den folgenden Schritten wird eine neue sekundäre Datenbank in einer Partnerschaft für die Georeplikation erstellt.

Zum Hinzufügen einer sekundären Datenbank müssen Sie der Besitzer oder Mitbesitzer der Subscription sein.

Die sekundäre Datenbank hat den gleichen Namen wie die primäre Datenbank und standardmäßig auch die gleiche Dienstebene und Computegröße. Die sekundäre Datenbank kann eine Einzel- oder Pooldatenbank sein. Weitere Informationen finden Sie unter DTU-basiertes Kaufmodell und vCore-basiertes Kaufmodell. Nachdem die sekundäre Datenbank erstellt und das Seeding ausgeführt wurde, beginnt die Replikation der Daten von der primären Datenbank in die neue sekundäre Datenbank.

Wenn Ihr sekundäres Replikat nur für Notfallwiederherstellung (DR) verwendet wird und keine Lese- oder Schreib-Workloads enthält, können Sie Lizenzkosten sparen, indem Sie die Datenbank bei der Konfiguration einer neuen aktiven Geo-Replikationsbeziehung als Standby festlegen. Weitere Informationen finden Sie unter Lizenzfreies Standby-Replikat.

Hinweis

Wenn die Partnerdatenbank bereits vorhanden ist (z. B. aufgrund der Beendigung einer vorherigen Georeplikationsbeziehung), tritt für den Befehl ein Fehler auf.

  1. Navigieren Sie im Azure-Portal zu der Datenbank, die Sie für die Georeplikation einrichten möchten.

  2. Wählen Sie auf der Seite SQL-Datenbank Ihre Datenbank aus, scrollen Sie zu Datenverwaltung, wählen Sie Replikate und dann Replikat erstellen aus.

    Screenshot that shows the Configure geo-replication option.

  3. Wählen oder erstellen Sie den Server für die sekundäre Datenbank und konfigurieren Sie bei Bedarf die Compute und Speicher-Optionen. Sie können eine beliebige Region für Ihren sekundären Server auswählen, wir empfehlen jedoch das Regionspaar.

    Screenshot that shows the Create and configure replica screen.

    Optional können Sie einem Pool für elastische Datenbanken eine sekundäre Datenbank hinzufügen. Um die sekundäre Datenbank in einem Pool zu erstellen, wählen Sie Ja neben der Option Möchten Sie einen Pool für elastische SQL-Datenbanken verwenden? und dann einen Pool auf dem Zielserver aus. Ein Pool muss bereits auf dem Zielserver vorhanden sein. Dieser Workflow erstellt keinen Pool.

  4. Klicken Sie auf Überprüfen und erstellen, überprüfen Sie die Informationen, und klicken Sie dann auf Erstellen.

  5. Die sekundäre Datenbank wird erstellt und der Bereitstellungsprozess beginnt.

    Screenshot that shows the deployment status of the secondary database.

  6. Nach Abschluss der Bereitstellung wird der Status für die sekundäre Datenbank angezeigt.

    Screenshot that shows the secondary database status after deployment.

  7. Kehren Sie zur Seite der primären Datenbank zurück, und wählen Sie Replikate aus. Ihre sekundäre Datenbank ist unter Georeplikate aufgeführt.

    Screenshot that shows the SQL database primary and geo replicas.

Initiieren eines Failovers

Für die sekundäre Datenbank kann ein Wechsel durchgeführt werden, bei dem sie zur primären Datenbank wird.

  1. Navigieren Sie im Azure-Portal zur primären Datenbank in der Georeplikationspartnerschaft.

  2. Scrollen Sie zu Datenverwaltung, und wählen Sie dann Replikate aus.

  3. Wählen Sie in der Liste Georeplikate die Datenbank aus, die die neue primäre Datenbank werden soll. Wählen Sie dann die Auslassungspunkte und anschließend Erzwungenes Failover aus.

    Screenshot that shows selecting forced failover from the drop-down.

  4. Wählen Sie Ja aus, um das Failover zu beginnen.


Durch den Befehl wird die sekundäre Datenbank sofort in die primäre Rolle geändert. Dieser Vorgang sollte normalerweise innerhalb von 30 Sekunden oder weniger abgeschlossen sein.

Es gibt einen kurzer Zeitraum, in dem beide Datenbanken während des Rollenwechsels (ca. 0 bis 25 Sekunden) nicht verfügbar sind. Wenn die primäre Datenbank über mehrere sekundäre Datenbanken verfügt, werden die anderen sekundären Datenbanken durch den Befehl automatisch neu konfiguriert, sodass sie eine Verbindung mit der neuen primären Datenbank herstellen. Unter normalen Umständen dauert der gesamte Vorgang nicht länger als 1 Minute.

Entfernen einer sekundären Datenbank

Dieser Vorgang beendet die Replikation zur sekundären Datenbank dauerhaft und ändert die Rolle der sekundären Datenbank in eine normale Datenbank mit Lese-/Schreibzugriff. Wenn die Verbindung mit der sekundären Datenbank unterbrochen wird, ist der Befehl zwar erfolgreich, aber die sekundäre Datenbank wird erst mit Lese-/ Schreibzugriff versehen, nachdem die Verbindung wiederhergestellt wurde.

  1. Navigieren Sie im Azure-Portal zur primären Datenbank in der Georeplikationspartnerschaft.
  2. Wählen Sie Replikate aus.
  3. Wählen Sie in der Liste Georeplikate die Datenbank aus, die Sie aus der Georeplikationspartnerschaft entfernen möchten, klicken Sie auf die Auslassungspunkte und dann auf Replikation beenden.
  4. Ein Bestätigungsfenster wird geöffnet. Klicken Sie zum Entfernen der Datenbank aus der Georeplikationspartnerschaft auf Ja. (Setzen Sie sie auf eine Datenbank mit Lese-/ Schreibzugriff fest, die kein Teil der Replikation ist.)

Subscriptionübergreifende Georeplikation

Verwenden Sie Transact-SQL (T-SQL) um eine sekundäre Geodatenbank in einer anderen Subscription als dem der primären Geodatenbank zu erstellen (unabhängig davon, ob es sich um denselben Mandanten in Microsoft Entra ID (früher Azure Active Directory) handelt oder nicht), führen Sie die Schritte in diesem Abschnitt aus.

  1. Fügen Sie die IP-Adresse des Client-Rechners, der die T-SQL-Befehle in diesem Beispiel ausführt, zu den Server-Firewalls von beiden primären und sekundären Servern hinzu. Sie können diese IP-Adresse bestätigen, indem Sie die folgende Abfrage ausführen, während Sie von demselben Client-Rechner aus mit dem Primärserver verbunden sind.

    select client_net_address from sys.dm_exec_connections where session_id = @@SPID;
    

    Weitere Informationen finden Sie unter Konfigurieren der Firewall.

  2. Erstellen Sie in der master-Datenbank auf dem primären Server eine Anmeldung mit SQL-Authentifizierung für die Einrichtung der aktiven Georeplikation. Passen Sie den Anmeldenamen und das Passwort nach Bedarf an.

    create login geodrsetup with password = 'ComplexPassword01';
    
  3. Erstellen Sie in derselben Datenbank einen Benutzer für die Anmeldung, und fügen Sie ihn der Rolle dbmanager hinzu:

    create user geodrsetup for login geodrsetup;
    alter role dbmanager add member geodrsetup;
    
  4. Notieren Sie sich den SID-Wert der neuen Anmeldung. Ermitteln Sie den SID-Wert mit der folgenden Abfrage.

    select sid from sys.sql_logins where name = 'geodrsetup';
    
  5. Verbinden Sie sich mit der primären Datenbank (nicht mit der master-Datenbank), und erstellen Sie einen Benutzer für dieselbe Anmeldung.

    create user geodrsetup for login geodrsetup;
    
  6. Fügen Sie in derselben Datenbank den Benutzer zur Rolle db_owner hinzu.

    alter role db_owner add member geodrsetup;
    
  7. Erstellen Sie in der master-Datenbank auf dem sekundären Server dieselbe Anmeldung wie auf dem primären Server, mit demselben Namen und Kennwort und derselben SID. Ersetzen Sie den hexadezimalen SID-Wert im nachfolgenden Beispielbefehl durch den in Schritt 4 erhaltenen Wert.

    create login geodrsetup with password = 'ComplexPassword01', sid=0x010600000000006400000000000000001C98F52B95D9C84BBBA8578FACE37C3E;
    
  8. Erstellen Sie in derselben Datenbank einen Benutzer für die Anmeldung, und fügen Sie ihn der Rolle dbmanager hinzu.

    create user geodrsetup for login geodrsetup;
    alter role dbmanager add member geodrsetup;
    
  9. Stellen Sie eine Verbindung mit der master-Datenbank auf dem primären Server unter Verwendung der neuen Anmeldung geodrsetup her, und initiieren Sie die geosekundäre Erstellung auf dem sekundären Server. Passen Sie den Datenbanknamen und den Namen des Sekundärservers nach Bedarf an. Nachdem der Befehl ausgeführt wurde, können Sie die geosekundäre Erstellung überwachen, indem Sie die Sicht sys.dm_geo_replication_link_status in der primären Datenbank und die Sicht sys.dm_operation_status in der master-Datenbank auf dem primären Server abfragen. Die für die Erstellung einer Geo-Sekundärdatenbank benötigte Zeit hängt von der Größe der Primärdatenbank ab.

    alter database [dbrep] add secondary on server [servername];
    
  10. Nachdem die Geo-Sekundärstation erfolgreich erstellt wurde, können die Benutzer, Anmeldungen und Firewall-Regeln, die mit diesem Verfahren erstellt wurden, entfernt werden.

Hinweis

Subscriptionübergreifende Georeplikationsvorgänge, einschließlich Einrichtung und Geo-Failover, werden nur über T-SQL-Befehle der REST-API und unterstützt.

Das Hinzufügen einer Geo-Sekundärressource mithilfe von T-SQL wird nicht unterstützt, wenn Sie eine Verbindung mit dem primären Server über einen privaten Endpunkt herstellen. Wenn ein privater Endpunkt konfiguriert wurde, aber der Zugriff über das öffentliche Netzwerk zulässig ist, wird nach der Verbindungsherstellung mit dem primären Server über eine öffentliche IP-Adresse das Hinzufügen einer Geo-Sekundärressource unterstützt. Sobald eine geo-sekundäre Ressource hinzugefügt wurde, kann der öffentliche Netzwerkzugriff verweigert werden.

Die Erstellung einer sekundären Geodatenbank auf einem logischen Server in einem anderen Microsoft Entra-Mandanten wird nicht unterstützt, wenn die reine Microsoft Entra-Authentifizierung auf einem primären oder sekundären logischen Server aktiviert ist.

Nächste Schritte