Erstellen und Verwenden der aktiven GeoreplikationCreating and using active geo-replication

Die aktive Georeplikation ist eine Funktion in Azure SQL-Datenbank, mit der Sie lesbare sekundäre Datenbanken für einzelne Datenbanken auf einem SQL-Datenbank-Server im selben oder in einem anderen Rechenzentrum (Region) erstellen können.Active geo-replication is Azure SQL Database feature that allows you to create readable secondary databases of individual databases on a SQL Database server in the same or different data center (region).

Hinweis

Die aktive Georeplikation wird von der verwalteten Instanz nicht unterstützt.Active geo-replication is not supported by managed instance. Für ein geografisches Failover verwalteter Datenbanken verwenden Sie Autofailover-Gruppen.For geographic failover of managed instances, use Auto-failover groups.

Aktive Georeplikation ist als Geschäftskontinuitätslösung konzipiert, die der Anwendung im Falle eines regionalen Notfalls oder größeren Ausfalls eine schnelle Notfallwiederherstellung einzelner Datenbanken ermöglicht.Active geo-replication is designed as a business continuity solution that allows the application to perform quick disaster recovery of individual databases in case of a regional disaster or large scale outage. Wenn Georeplikation aktiviert ist, kann die Anwendung ein Failover auf eine sekundäre Datenbank in einer anderen Azure-Region initiieren.If geo-replication is enabled, the application can initiate failover to a secondary database in a different Azure region. Bis zu vier sekundäre Datenbanken werden in derselben oder verschiedenen Regionen unterstützt, und die sekundären Datenbanken können auch für schreibgeschützten Abfragezugriff verwendet werden.Up to four secondaries are supported in the same or different regions, and the secondaries can also be used for read-only access queries. Das Failover muss durch die Anwendung oder den Benutzer manuell eingeleitet werden.The failover must be initiated manually by the application or the user. Nach einem Failover hat die neue primäre Datenbank einen anderen Verbindungsendpunkt.After failover, the new primary has a different connection end point. Das folgende Diagramm zeigt eine typische Konfiguration einer georedundanten Cloudanwendung mit aktiver Georeplikation.The following diagram illustrates a typical configuration of a geo-redundant cloud application using Active geo-replication.

Aktive Georeplikation

Wichtig

SQL-Datenbank unterstützt auch Autofailover-Gruppen.SQL Database also supports auto-failover groups. Weitere Informationen finden Sie unter Autofailover-Gruppen.For more information, see using auto-failover groups. Aktive Georeplikation wird für Datenbanken, die innerhalb einer verwalteten Instanz erstellt wurden, nicht unterstützt.Also, active geo-replication is not supported for databases created within a Managed Instance. Ziehen Sie bei verwalteten Instanzen die Verwendung von Failovergruppen in Betracht.Consider using failover groups with Managed Instances.

Falls Ihre primäre Datenbank aus irgendeinem Grund ausfällt oder einfach offline geschaltet werden muss, können Sie ein Failover auf eine der sekundären Datenbanken initiieren.If for any reason your primary database fails, or simply needs to be taken offline, you can initiate failover to any of your secondary databases. Wenn das Failover auf eine sekundäre Datenbank aktiviert ist, werden alle anderen sekundären Datenbanken automatisch mit der neuen primären Datenbank verknüpft.When failover is activated to one of the secondary databases, all other secondaries are automatically linked to the new primary.

Sie können Replikation und Failover für eine einzelne Datenbank oder eine Gruppe von Datenbanken auf einem Server oder in einem Pool für elastische Datenbanken mithilfe der aktiven Georeplikation verwalten.You can manage replication and failover of an individual database or a set of databases on a server or in an elastic pool using active geo-replication. Verwenden Sie hierfür Folgendes:You can do that using:

Aktive Georeplikation nutzt die Always On-Technologie von SQL Server, um Transaktionen mit ausgeführtem Commit in der primären Datenbank asynchron mit Momentaufnahmeisolation in eine sekundäre Datenbank zu replizieren.Active geo-replication leverages the Always On technology of SQL Server to asynchronously replicate committed transactions on the primary database to a secondary database using snapshot isolation. Gruppen für automatisches Failover stellen die Gruppensemantik über der aktiven Georeplikation bereit, es wird aber der gleiche asynchrone Replikationsmechanismus verwendet.Auto-failover groups provide the group semantics on top of active geo-replication but the same asynchronous replication mechanism is used. Wenngleich die sekundäre Datenbank stets ein wenig hinter der primären Datenbank zurückliegt, sind unvollständige Transaktionen bei sekundären Daten garantiert ausgeschlossen.While at any given point, the secondary database might be slightly behind the primary database, the secondary data is guaranteed to never have partial transactions. Regionsübergreifende Redundanz ermöglicht Anwendungen die schnelle Wiederherstellung nach einem dauerhaften Ausfall eines gesamten Rechenzentrums oder von Teilen eines Rechenzentrums aufgrund von Naturkatastrophen, schwerwiegendem menschlichen Versagen oder böswilligen Handlungen.Cross-region redundancy enables applications to quickly recover from a permanent loss of an entire datacenter or parts of a datacenter caused by natural disasters, catastrophic human errors, or malicious acts. Die spezifischen RPO-Daten finden Sie unter Übersicht über die Geschäftskontinuität mit Azure SQL-Datenbank.The specific RPO data can be found at Overview of Business Continuity.

Hinweis

Bei einem Netzwerkfehler zwischen zwei Regionen versuchen wir alle 10 Sekunden, die Verbindung erneut herzustellen.If there is a network failure between two regions, we retry every 10 seconds to re-establish connections.

Wichtig

Um zu gewährleisten, dass eine wichtige Änderung in der primären Datenbank vor dem Failover zur sekundären Datenbank repliziert wird, können Sie die Synchronisierung erzwingen, um sicherzustellen, dass wichtige Änderungen (z.B. Kennwortänderungen) repliziert werden.To guarantee that a critical change on the primary database is replicated to a secondary before you failover, you can force synchronization to ensure the replication of critical changes (for example, password updates). Die erzwungene Synchronisierung beeinträchtigt die Leistung, da der aufrufende Thread blockiert wird, bis alle durchgeführten Transaktionen repliziert wurden.Forced synchronization impacts performance because it blocks the calling thread until all committed transactions are replicated. Weitere Informationen finden Sie unter sp_wait_for_database_copy_sync.For details, see sp_wait_for_database_copy_sync. Informationen zur Überwachung der Replikationsverzögerung zwischen der primären Datenbank und der geografisch sekundären Datenbank finden Sie unter sys.dm_geo_replication_link_status.To monitor the replication lag between the primary database and geo-secondary, see sys.dm_geo_replication_link_status.

Die folgende Abbildung zeigt ein Beispiel für die Konfiguration der aktiven Georeplikation, wobei sich die primäre Datenbank in der Region „USA, Norden-Mitte“ und die sekundäre Datenbank in der Region „USA, Süden-Mitte“ befindet.The following figure shows an example of active geo-replication configured with a primary in the North Central US region and secondary in the South Central US region.

Georeplikationsbeziehung

Weil die sekundären Datenbanken lesbar sind, können sie zum Auslagern schreibgeschützter Workloads wie Berichtsaufträge verwendet werden.Because the secondary databases are readable, they can be used to offload read-only workloads such as reporting jobs. Bei Verwendung der aktiven Georeplikation können Sie die sekundäre Datenbank in der gleichen Region wie die primäre erstellen, aber dies steigert nicht die Stabilität der Anwendung gegenüber schwerwiegenden Ausfällen.If you are using active geo-replication, it is possible to create the secondary database in the same region with the primary, but it does not increase the application's resilience to catastrophic failures. Wenn Sie Gruppen für automatisches Failover verwenden, werden die sekundären Datenbanken immer in einer anderen Region erstellt.If you are using auto-failover groups, your secondary database is always created in a different region.

Zusätzlich zur Wiederherstellung im Notfall kann aktive Georeplikation in den folgenden Szenarien verwendet werden:In addition to disaster recovery active geo-replication can be used in the following scenarios:

  • Datenbankmigration: Sie können die aktive Georeplikation zur Onlinemigration einer Datenbank von einem Server auf einen anderen mit minimalen Ausfallzeiten nutzen.Database migration: You can use active geo-replication to migrate a database from one server to another online with minimum downtime.
  • Anwendungsupgrades: Sie können bei Anwendungsupgrades eine zusätzliche sekundäre Datenbank als Failbackkopie erstellen.Application upgrades: You can create an extra secondary as a fail back copy during application upgrades.

Wenn Sie echte Geschäftskontinuität erreichen möchten, ist das Bereitstellen von Datenbankredundanz zwischen Rechenzentren jedoch nur ein Teil der Lösung.To achieve real business continuity, adding database redundancy between datacenters is only part of the solution. Für die komplette Wiederherstellung einer Anwendung bzw. eines Diensts nach einem schwerwiegenden Fehler ist das Wiederherstellen aller Komponenten erforderlich, aus denen sich der Dienst und alle abhängigen Dienste zusammensetzen.Recovering an application (service) end-to-end after a catastrophic failure requires recovery of all components that constitute the service and any dependent services. Beispiele dieser Komponenten sind die Clientsoftware (z. B. ein Browser mit benutzerdefiniertem JavaScript), Web-Front-Ends, Speicher und DNS.Examples of these components include the client software (for example, a browser with a custom JavaScript), web front ends, storage, and DNS. Es ist wichtig, dass alle Komponenten hinsichtlich derselben Fehler gegen Ausfälle geschützt und innerhalb des RTO (Recovery Time Objective) der Anwendung wieder verfügbar sind.It is critical that all components are resilient to the same failures and become available within the recovery time objective (RTO) of your application. Daher müssen Sie alle abhängigen Dienste bestimmen und mit dem Leistungsumfang und den Funktionen vertraut sein, die sie bieten.Therefore, you need to identify all dependent services and understand the guarantees and capabilities they provide. Dann müssen Sie entsprechende Maßnahmen ergreifen, um sicherzustellen, dass Ihr Dienst während des Failovers der Dienste funktioniert, von denen er abhängig ist.Then, you must take adequate steps to ensure that your service functions during the failover of the services on which it depends. Weitere Informationen zum Entwerfen von Lösungen für die Notfallwiederherstellung finden Sie unter Entwerfen von Cloudlösungen für die Notfallwiederherstellung mithilfe der aktiven Georeplikation.For more information about designing solutions for disaster recovery, see Designing Cloud Solutions for Disaster Recovery Using active geo-replication.

Aktive Georeplikation – Terminologie und FunktionenActive geo-replication terminology and capabilities

  • Automatische asynchrone ReplikationAutomatic Asynchronous Replication

    Sie können eine sekundäre Datenbank nur erstellen, indem Sie diese einer vorhandenen Datenbank hinzufügen.You can only create a secondary database by adding to an existing database. Die sekundäre Datenbank kann auf einem anderen Azure SQL-Datenbank-Server erstellt werden.The secondary can be created in any Azure SQL Database server. Nach der Erstellung wird die sekundäre Datenbank mit den Daten aufgefüllt, die aus der primären Datenbank kopiert wurden.Once created, the secondary database is populated with the data copied from the primary database. Dieser Prozess wird als Seeding bezeichnet.This process is known as seeding. Nachdem eine sekundäre Datenbank erstellt wurde und das Seeding erfolgt ist, werden Aktualisierungen der primären Datenbank automatisch asynchron in die sekundäre Datenbank repliziert.After secondary database has been created and seeded, updates to the primary database are asynchronously replicated to the secondary database automatically. Asynchrone Replikation bedeutet, dass für Transaktionen in der primären Datenbank ein Commit erfolgt, ehe sie in die sekundäre Datenbank repliziert werden.Asynchronous replication means that transactions are committed on the primary database before they are replicated to the secondary database.

  • Lesbare sekundäre DatenbankenReadable secondary databases

    Eine Anwendung kann für schreibgeschützte Vorgänge auf eine sekundäre Datenbank zugreifen, indem sie die Sicherheitsprinzipale für den Zugriff auf die primäre Datenbank oder andere Sicherheitsprinzipale verwendet.An application can access a secondary database for read-only operations using the same or different security principals used for accessing the primary database. Die sekundären Datenbanken werden im Momentaufnahme-Isolationsmodus betrieben. Auf diese Weise wird sichergestellt, dass die Replikation von Aktualisierungen der primären Datenbank (Protokollwiedergabe) nicht durch Abfragen verzögert wird, die für die sekundäre Datenbank ausgeführt werden.The secondary databases operate in snapshot isolation mode to ensure replication of the updates of the primary (log replay) is not delayed by queries executed on the secondary.

Hinweis

Die Protokollwiedergabe wird in der sekundären Datenbank verzögert, wenn Schemaupdates für die primäre Datenbank vorhanden sind.The log replay is delayed on the secondary database if there are schema updates on the Primary. In diesem Fall ist eine Schemasperre für die sekundäre Datenbank erforderlich.The latter requires a schema lock on the secondary database.

Wichtig

Sie können die Georeplikation verwenden, um eine sekundäre Datenbank in derselben Region wie die primäre Datenbank zu erstellen.You can use geo-replication to create a secondary database in the same region as the primary. Sie können diese sekundäre Datenbank verwenden, um einen Lastenausgleich für schreibgeschützte Workloads in derselben Region durchzuführen.You can use this secondary to load-balance a read-only workloads in the same region. Eine sekundäre Datenbank in derselben Region bietet jedoch keine zusätzliche Fehlertoleranz und ist daher kein geeignetes Failoverziel für die Notfallwiederherstellung.However, a secondary database in the same region does not provide additional fault resilience and therefore is not a suitable failover target for disaster recovery. Es wird auch keine Garantie für die Isolation der Verfügbarkeitszone geben.It will also not guarantee availability zone isolation. Verwenden Sie die Dienstebenen „Unternehmenskritisch“ oder „Premium“ mit zonenredundanter Konfiguration, um eine Isolation der Verfügbarkeitszone zu erreichen.Use Business critical or Premium service tier with zone redundant configuration to achieve availability zone isolation.

  • Geplantes FailoverPlanned failover

    Das geplante Failover schaltet die Rollen der primären und sekundären Datenbanken nach Abschluss der vollständigen Synchronisierung um.Planned failover switches the roles of primary and secondary databases after the full synchronization is completed. Es handelt sich um einen Onlinevorgang, der keinen Datenverlust zur Folge hat.It is an online operation that does not result in data loss. Die für den Vorgang benötigte Zeit hängt von der Größe des Transaktionsprotokolls für die primäre Datenbank ab, die synchronisiert werden muss.The time of the operation depends on the size of the transaction log on the primary that needs to be synchronized. Ein geplantes Failover wurde für folgenden Szenarien konzipiert: (a) zum Ausführen von DR-Drills in der Produktion, wenn ein Datenverlust nicht akzeptabel ist, (b) zum Verschieben der Datenbank in eine andere Region, (c) für die Rückkehr der Datenbank in die primäre Region, nachdem der Ausfall behoben wurde (Failback).Planned failover is designed for following scenarios: (a) to perform DR drills in production when the data loss is not acceptable; (b) to relocate the database to a different region; and (c) to return the database to the primary region after the outage has been mitigated (failback).

  • Nicht geplantes FailoverUnplanned failover

    Beim ungeplanten oder erzwungenen Failover übernimmt die sekundäre Datenbank sofort die Rolle der primären Datenbank, ohne dass eine Synchronisierung mit der primären Datenbank stattfindet.Unplanned or forced failover immediately switches the secondary to the primary role without any synchronization with the primary. Alle Transaktionen, die an die primäre Datenbank committet, aber nicht auf die sekundäre Datenbank repliziert werden, gehen verloren.Any transactions committed to the primary but not replicated to the secondary will be lost. Dieser Vorgang ist als Wiederherstellungsmethode bei Ausfällen konzipiert, wenn auf die primäre Datenbank nicht zugegriffen werden kann, die Datenbankverfügbarkeit aber schnell wiederhergestellt werden muss.This operation is designed as a recovery method during outages when the primary is not accessible, but the database availability must be quickly restored. Wenn die ursprüngliche primäre Datenbank wieder online ist, stellt sie automatisch wieder eine Verbindung her und wird zur neuen sekundären Datenbank.When the original primary is back online it will automatically re-connect and become a new secondary. Alle nicht synchronisierten Transaktionen vor dem Failover bleiben in der Sicherungsdatei erhalten, werden jedoch nicht mit der neuen primären Datenbank synchronisiert, um Konflikte zu vermeiden.All unsynchronized transactions before the failover will be preserved in the backup file but will not be synchronized with the new primary to avoid conflicts. Diese Transaktionen müssen manuell mit der neuesten Version der primären Datenbank gemergt werden.These transactions will have to be manually merged with the most recent version of the primary database.

  • Mehrere lesbare sekundäre DatenbankenMultiple readable secondaries

    Es können bis zu vier sekundäre Datenbanken für eine primäre Datenbank erstellt werden.Up to 4 secondary databases can be created for each primary. Wenn es nur eine sekundäre Datenbank gibt und diese ausfällt, ist die Anwendung bis zum Erstellen einer neuen sekundären Datenbank einem höheren Risiko ausgesetzt.If there is only one secondary database, and it fails, the application is exposed to higher risk until a new secondary database is created. Wenn mehrere sekundäre Datenbanken vorhanden sind, bleibt die Anwendung auch bei Ausfall einer der sekundären Datenbanken geschützt.If multiple secondary databases exist, the application remains protected even if one of the secondary databases fails. Die zusätzlichen sekundären Datenbanken können auch zum horizontalen Skalieren der schreibgeschützten Workloads verwendet werden.The additional secondaries can also be used to scale out the read-only workloads

    Hinweis

    Wenn Sie mit der aktiven Georeplikation eine global verteilte Anwendung erstellen und schreibgeschützten Zugriff auf Daten in mehr als vier Regionen bereitstellen müssen, können Sie eine sekundäre Datenbank einer sekundären Datenbank erstellen (dieser Prozess wird als Verkettung bezeichnet).If you are using active geo-replication to build a globally distributed application and need to provide read-only access to data in more than four regions, you can create secondary of a secondary (a process known as chaining). Auf diese Weise können Sie die Datenbankreplikation praktisch unbegrenzt skalieren.This way you can achieve virtually unlimited scale of database replication. Darüber hinaus verkürzt die Verkettung den Mehraufwand der Replikation von der primären Datenbank.In addition, chaining reduces the overhead of replication from the primary database. Der Nachteil besteht in der erhöhten Replikationsverzögerung in den äußersten sekundären Datenbanken.The trade-off is the increased replication lag on the leaf-most secondary databases.

  • Georeplikation von Datenbanken in einem Pool für elastische DatenbankenGeo-replication of databases in an elastic pool

    Jede sekundäre Datenbank kann einzeln in einem Pool für elastische Datenbanken enthalten sein oder sich in keinem Pool befinden.Each secondary database can separately participate in an elastic pool or not be in any elastic pool at all. Die Auswahl des Pools für jede sekundäre Datenbank erfolgt einzeln und ist nicht von der Konfiguration einer anderen sekundären Datenbank abhängig (ob primär oder sekundär).The pool choice for each secondary database is separate and does not depend upon the configuration of any other secondary database (whether primary or secondary). Jeder Pool für elastische Datenbanken befindet sich innerhalb einer einzelnen Region, daher können mehrere sekundäre Datenbanken in derselben Topologie einen Pool für elastische Datenbanken nie gemeinsam verwenden.Each elastic pool is contained within a single region, therefore multiple secondary databases in the same topology can never share an elastic pool.

  • Benutzergesteuertes Failover und FailbackUser-controlled failover and failback

    Eine sekundäre Datenbank kann jederzeit durch die Anwendung oder den Benutzer explizit die primäre Rolle erhalten.A secondary database can explicitly be switched to the primary role at any time by the application or the user. Bei einem echten Ausfall sollte die Option „Nicht geplant“ verwendet werden, die eine sekundäre Datenbank umgehend zu einer primären Datenbank heraufstuft.During a real outage the “unplanned” option should be used, which immediately promotes a secondary to be the primary. Wenn die ausgefallene primäre Datenbank wiederhergestellt ist und wieder zur Verfügung steht, kennzeichnet das System diese wiederhergestellte primäre Datenbank automatisch als sekundäre Datenbank und bringt sie auf den aktuellen Stand der neuen primären Datenbank.When the failed primary recovers and is available again, the system automatically marks the recovered primary as a secondary and bring it up-to-date with the new primary. Aufgrund der asynchronen Natur der Replikation kann eine kleine Menge von Daten bei einem nicht geplanten Failover verloren gehen, wenn eine primäre Datenbank ausfällt, bevor die aktuellen Änderungen in die sekundäre Datenbank repliziert wurden.Due to the asynchronous nature of replication, a small amount of data can be lost during unplanned failovers if a primary fails before it replicates the most recent changes to the secondary. Wenn für eine primäre Datenbank mit mehreren sekundären Datenbanken ein Failover durchgeführt wird, konfiguriert das System automatisch die Replikationsbeziehungen neu und verknüpft die verbleibenden sekundären Datenbanken mit der soeben heraufgestuften primären Datenbank, ohne dass ein Benutzereingriff erforderlich ist.When a primary with multiple secondaries fails over, the system automatically reconfigures the replication relationships and links the remaining secondaries to the newly promoted primary without requiring any user intervention. Wenn der Ausfall behoben ist, durch den das Failover verursacht wurde, kann es wünschenswert sein, die Anwendung wieder in die primäre Region zurückzuführen.After the outage that caused the failover is mitigated, it may be desirable to return the application to the primary region. Zu diesem Zweck sollte der Failoverbefehl mit der Option „Geplant“ aufgerufen werden.To do that, the failover command should be invoked with the “planned” option.

Vorbereiten der sekundären Datenbank für FailoverPreparing secondary database for failover

Um sicherzustellen, dass Ihre Anwendung nach einem Failover sofort auf die neue primäre Datenbank zugreifen kann, müssen Sie sicherstellen, dass die Authentifizierungsanforderungen für den sekundären Server und die Datenbank ordnungsgemäß konfiguriert sind.To ensure that your application can immediately access the new primary after failover, ensure the authentication requirements for your secondary server and database are properly configured. Weitere Informationen finden Sie unter Verwalten der Sicherheit der Azure SQL-Datenbank nach der Notfallwiederherstellung.For details, see SQL Database security after disaster recovery. Um die Kompatibilität nach einem Failover zu gewährleisten, stellen Sie sicher, dass die Sicherungsaufbewahrungsrichtlinie für die sekundäre Datenbank mit der der primären Datenbank übereinstimmt.To guarantee compliance after failover, make sure that the backup retention policy on the secondary database matches that of the primary. Diese Einstellungen sind nicht Teil der Datenbank und werden nicht repliziert.These settings are not part of the database and are not replicated. Standardmäßig wird die sekundäre Datenbank mit einer standardmäßigen PITR-Aufbewahrungsdauer von sieben Tagen konfiguriert.By default, the secondary will be configured with a default PITR retention period of seven days. Weitere Informationen finden Sie unter Übersicht: Automatisierte SQL-Datenbanksicherungen.For details, see SQL Database automated backups.

Konfigurieren einer sekundären DatenbankConfiguring secondary database

Sowohl die primäre als auch die sekundäre Datenbank müssen die gleiche Dienstebene aufweisen.Both primary and secondary databases are required to have the same service tier. Darüber hinaus wird dringend empfohlen, eine sekundäre Datenbank mit der gleichen Computegröße (DTUs oder virtuelle Kerne) wie die primäre Datenbank zu erstellen.It is also strongly recommended that secondary database is created with the same compute size (DTUs or vCores) as the primary. Wenn in der primären Datenbank schreibintensive Workloads verarbeitet werden, ist eine sekundäre Datenbank mit einer geringeren Computegröße möglicherweise nicht in der Lage, mitzuhalten.If the primary database is experiencing a heavy write workload, a secondary with lower compute size may not be able to keep up with it. Dadurch wird die Wiederholungsverzögerung für die sekundäre Datenbank und potenzielle Nichtverfügbarkeit verursacht.It will cause the redo lag on the secondary and potential unavailability. Eine sekundäre Datenbank, die die primäre Datenbank nur verzögert widerspiegelt, stellt auch ein Risiko eines großen Datenverlusts dar, falls ein erzwungenes Failover erforderlich ist.A secondary database that is lagging behind the primary also risks a large data loss should a forced failover be required. Um diese Risiken zu mindern, drosselt die effektive aktive Georeplikation die Protokollrate der primären Datenbank, damit die sekundären Datenbanken aufholen können.To mitigate these risks, effective active geo-replication will throttle the primary's log rate to allow its secondaries to catch up. Wenn die sekundäre Datenbank nicht angemessen konfiguriert ist, kann es außerdem passieren, dass die Anwendungsleistung nach einem Failover beeinträchtigt wird, da die neue primäre Datenbank nicht genügend Computekapazität aufweist.The other consequence of an imbalanced secondary configuration is that after failover the application’s performance will suffer due to insufficient compute capacity of the new primary. Daher ist ein Upgrade auf eine höhere Computekapazität erforderlich, was erst möglich ist, nachdem der Ausfall behoben wurde.It will be required to upgrade to a higher compute to the necessary level, which will not be possible until the outage is mitigated.

Wichtig

Die veröffentlichte RPO = 5 Sekunden kann nur dann garantiert werden, wenn die sekundäre Datenbank mit der gleichen Computegröße wie die primäre Datenbank konfiguriert ist.The published RPO = 5 sec cannot be guaranteed unless the secondary database is configured with the same compute size as the primary.

Wenn Sie die sekundäre Datenbank mit einer niedrigeren Computegröße erstellen, können Sie anhand des Diagramms mit dem Protokoll-E/A-Prozentsatz im Azure-Portal gut abschätzen, welche Computegröße für die sekundäre Datenbank mindestens erforderlich ist, um die Replikationslast zu bewältigen.If you decide to create the secondary with lower compute size, the log IO percentage chart on Azure portal provides a good way to estimate the minimal compute size of the secondary that is required to sustain the replication load. Wenn die Leistungsstufe der primären Datenbank beispielsweise P6 (1.000 DTU) ist und ihr Protokoll-E/A-Prozentsatz 50 % beträgt, muss die Leistungsstufe der sekundären Datenbank mindestens P4 (500 DTU) sein.For example, if your Primary database is P6 (1000 DTU) and its log IO percent is 50% the secondary needs to be at least P4 (500 DTU). Sie können die Protokoll-E/A-Daten auch mithilfe der Datenbanksicht sys.resource_stats oder sys.dm_db_resource_stats abrufen.You can also retrieve the log IO data using sys.resource_stats or sys.dm_db_resource_stats database views. Die Drosselung wird als HADR_THROTTLE_LOG_RATE_MISMATCHED_SLO-Wartezustand in den Datenbanksichten sys.dm_exec_requests und sys.dm_os_wait_stats gemeldet.The throttling is reported as a HADR_THROTTLE_LOG_RATE_MISMATCHED_SLO wait state in the sys.dm_exec_requests and sys.dm_os_wait_stats database views.

Weitere Informationen zu SQL-Datenbank-Computegrößen finden Sie im Artikel über die SQL-Datenbank-Dienstebenen.For more information on the SQL Database compute sizes, see What are SQL Database Service Tiers.

Synchronisieren von Anmeldeinformationen und FirewallregelnKeeping credentials and firewall rules in sync

Wir empfehlen die Verwendung von IP-Firewallregeln auf Datenbankebene für georeplizierte Datenbanken, damit diese Regeln mit der Datenbank repliziert werden können. So wird sichergestellt, dass alle sekundären Datenbanken die gleichen IP-Firewallregeln wie die primäre Datenbank besitzen.We recommend using database-level IP firewall rules for geo-replicated databases so these rules can be replicated with the database to ensure all secondary databases have the same IP firewall rules as the primary. Mit diesem Ansatz müssen Kunden auf Servern, auf denen sowohl die primäre als auch die sekundäre Datenbank gehostet wird, keine Firewallregeln mehr manuell konfigurieren und verwalten.This approach eliminates the need for customers to manually configure and maintain firewall rules on servers hosting both the primary and secondary databases. Analog dazu wird durch die Verwendung von eigenständigen Datenbankbenutzern für den Datenzugriff sichergestellt, dass für primäre und sekundäre Datenbanken immer die gleichen Benutzeranmeldeinformationen gelten, damit bei einem Failover keine Unterbrechungen durch Benutzernamen- und Kennwortkonflikte auftreten.Similarly, using contained database users for data access ensures both primary and secondary databases always have the same user credentials so during a failover, there is no disruptions due to mismatches with logins and passwords. Durch Hinzufügen von Azure Active Directory können Kunden den Benutzerzugriff sowohl für primäre als auch für sekundäre Datenbanken verwalten, sodass die Notwendigkeit der Verwaltung von Anmeldeinformationen in Datenbanken vollständig entfällt.With the addition of Azure Active Directory, customers can manage user access to both primary and secondary databases and eliminating the need for managing credentials in databases altogether.

Upgrade oder Downgrade einer primären DatenbankUpgrading or downgrading primary database

Sie können für eine primäre Datenbank ein Upgrade oder Downgrade auf eine andere Computegröße (innerhalb der gleichen Dienstebene; nicht zwischen „Universell“ und „Unternehmenskritisch“) ausführen, ohne die Verbindung mit sekundären Datenbanken zu trennen.You can upgrade or downgrade a primary database to a different compute size (within the same service tier, not between General Purpose and Business Critical) without disconnecting any secondary databases. Bei einem Upgrade wird empfohlen, zuerst das Upgrade für die sekundäre Datenbank und anschließend das Upgrade für die primäre Datenbank auszuführen.When upgrading, we recommend that you upgrade the secondary database first, and then upgrade the primary. Drehen Sie bei einem Downgrade die Reihenfolge um: Führen Sie zuerst das Downgrade für die primäre und anschließend das Downgrade für die sekundäre Datenbank aus.When downgrading, reverse the order: downgrade the primary first, and then downgrade the secondary. Wenn Sie ein Upgrade oder Downgrade der Datenbank auf eine andere Dienstebene durchführen, wird diese Empfehlung erzwungen.When you upgrade or downgrade the database to a different service tier, this recommendation is enforced.

Hinweis

Wenn Sie eine sekundäre Datenbank als Teil der Konfiguration der Failovergruppe erstellt haben, sollten Sie kein Downgrade der sekundären Datenbank durchführen.If you created secondary database as part of the failover group configuration it is not recommended to downgrade the secondary database. So wird sichergestellt, dass Ihre Datenebene nach dem Aktivieren des Failovers ausreichende Kapazität zum Verarbeiten des normalen Workloads hat.This is to ensure your data tier has sufficient capacity to process your regular workload after failover is activated.

Wichtig

Die primäre Datenbank in einer Failovergruppe kann nur auf eine höhere Ebene skaliert werden, wenn zuerst die sekundäre Datenbank auf die höhere Ebene skaliert wird.The primary database in a failover group can't scale to a higher tier unless the secondary database is first scaled to the higher tier. Wenn Sie versuchen, die primäre Datenbank vor der sekundären Datenbank zu skalieren, wird ggf. der folgende Fehler angezeigt:If you try to scale the primary database before the secondary database is scaled, you might receive the following error:

Error message: The source database 'Primaryserver.DBName' cannot have higher edition than the target database 'Secondaryserver.DBName'. Upgrade the edition on the target before upgrading the source.

Verhindern des Verlusts wichtiger DatenPreventing the loss of critical data

Aufgrund der hohen Latenz von WANs wird für die fortlaufende Kopie ein asynchroner Replikationsmechanismus verwendet.Due to the high latency of wide area networks, continuous copy uses an asynchronous replication mechanism. Asynchrone Replikation macht Datenverlust unvermeidlich, sobald ein Ausfall auftritt.Asynchronous replication makes some data loss unavoidable if a failure occurs. Bei einigen Anwendung dürfen jedoch ggf. keine Daten verloren gehen.However, some applications may require no data loss. Um diese kritischen Aktualisierungen zu schützen, kann ein Anwendungsentwickler die Systemprozedur sp_wait_for_database_copy_sync aufrufen, unmittelbar nachdem der Commit für die Transaktion erfolgt ist.To protect these critical updates, an application developer can call the sp_wait_for_database_copy_sync system procedure immediately after committing the transaction. Das Aufrufen von sp_wait_for_database_copy_sync blockiert den aufrufenden Thread so lange, bis die letzte Transaktion mit erfolgtem Commit in die sekundäre Datenbank übertragen wurde.Calling sp_wait_for_database_copy_sync blocks the calling thread until the last committed transaction has been transmitted to the secondary database. Es wird jedoch nicht abgewartet, bis die übertragenen Transaktionen wiedergegeben und in der sekundären Datenbank committet werden.However, it does not wait for the transmitted transactions to be replayed and committed on the secondary. sp_wait_for_database_copy_sync ist auf eine bestimmte fortlaufende Kopierverknüpfung begrenzt.sp_wait_for_database_copy_sync is scoped to a specific continuous copy link. Jeder Benutzer mit den Rechten zum Herstellen der Verbindung mit der primären Datenbank kann diese Prozedur aufrufen.Any user with the connection rights to the primary database can call this procedure.

Hinweis

sp_wait_for_database_copy_sync verhindert Datenverlust nach einem Failover, garantiert aber nicht die vollständige Synchronisierung für den Lesezugriff.sp_wait_for_database_copy_sync prevents data loss after failover, but does not guarantee full synchronization for read access. Die vom Aufruf der Prozedur sp_wait_for_database_copy_sync verursachte Verzögerung kann signifikant sein und hängt von der Größe des Transaktionsprotokolls zum Zeitpunkt des Aufrufs ab.The delay caused by a sp_wait_for_database_copy_sync procedure call can be significant and depends on the size of the transaction log at the time of the call.

Überwachen der Verzögerung bei der GeoreplikationMonitoring geo-replication lag

Verwenden Sie zum Überwachen der Verzögerung in Bezug auf RPO in der primären Datenbank die Spalte replication_lag_sec von sys.dm_geo_replication_link_status.To monitor lag with respect to RPO, use replication_lag_sec column of sys.dm_geo_replication_link_status on the primary database. Die Verzögerung in Sekunden zwischen den Transaktionen, die in der primären Datenbank committet und in der sekundären Datenbank gespeichert werden, wird angezeigt.It shows lag in seconds between the transactions committed on the primary and persisted on the secondary. Beispiel:E.g. Falls der Wert der Verzögerung 1 Sekunde beträgt, bedeutet dies Folgendes: Wenn die primäre Datenbank in diesem Moment von einem Ausfall betroffen ist und ein Failover initiiert wird, wird 1 Sekunde der letzten Transaktionen nicht gespeichert.if the value of the lag is 1 second, it means if the primary is impacted by an outage at this moment and failover is initiated, 1 second of the most recent transitions will not be saved.

Vergleichen Sie zum Messen der Verzögerung in Bezug auf Änderungen in der primären Datenbank, die auf die sekundäre Datenbank angewendet wurden (also aus dieser Datenbank gelesen werden können), den Zeitpunkt von last_commit in der sekundären Datenbank mit dem gleichen Wert in der primären Datenbank.To measure lag with respect to changes on the primary database that have been applied on the secondary, i.e. available to read from the secondary, compare last_commit time on the secondary database with the same value on the primary database.

Hinweis

Es kann vorkommen, dass replication_lag_sec in der primären Datenbank einen NULL-Wert aufweist. Dies bedeutet, dass die primäre Datenbank derzeit nicht weiß, wie weit die sekundäre Datenbank fortgeschritten ist.Sometimes replication_lag_sec on the primary database has a NULL value, which means that the primary does not currently know how far the secondary is. Dieser Fall tritt normalerweise ein, nachdem der Prozess neu gestartet wurde, und es sollte sich um einen vorübergehenden Zustand handeln.This typically happens after process restarts and should be a transient condition. Erwägen Sie, in der Anwendung eine Warnung zu verwenden, wenn für replication_lag_sec über einen längeren Zeitraum hinweg NULL zurückgegeben wird.Consider alerting the application if the replication_lag_sec returns NULL for an extended period of time. So wird darauf hingewiesen, dass die sekundäre Datenbank aufgrund eines dauerhaften Verbindungsausfalls nicht mit der primären Datenbank kommunizieren kann.It would indicate that the secondary database cannot communicate with the primary due to a permanent connectivity failure. Es können auch Bedingungen eintreten, unter denen der Unterschied zwischen dem Zeitpunkt von last_commit in der sekundären und primären Datenbank groß wird.There are also conditions that could cause the difference between last_commit time on the secondary and on the primary database to become large. Beispiel:E.g. Wenn in der primären Datenbank nach einem langen Zeitraum ohne Änderungen ein Commit erfolgt, springt der Unterschied auf einen hohen Wert, um dann schnell wieder auf 0 zu fallen.if a commit is made on the primary after a long period of no changes, the difference will jump up to a large value before quickly returning to 0. Sehen Sie es als Fehlerzustand an, wenn der Unterschied zwischen diesen beiden Werten längere Zeit groß bleibt.Consider it an error condition when the difference between these two values remains large for a long time.

Programmgesteuertes Verwalten der aktiven GeoreplikationProgrammatically managing active geo-replication

Wie bereits zuvor erwähnt, kann die aktive Georeplikation auch programmgesteuert mit Azure PowerShell und der REST-API verwaltet werden.As discussed previously, active geo-replication can also be managed programmatically using Azure PowerShell and the REST API. Die folgenden Tabellen beschreiben den verfügbaren Satz von Befehlen.The following tables describe the set of commands available. Die aktive Georeplikation umfasst eine Reihe von Azure Resource Manager-APIs für die Verwaltung. Hierzu zählen unter anderem die Azure SQL-Datenbank-REST-API und Azure PowerShell-Cmdlets.Active geo-replication includes a set of Azure Resource Manager APIs for management, including the Azure SQL Database REST API and Azure PowerShell cmdlets. Diese APIs erfordern die Verwendung von Ressourcengruppen und unterstützen rollenbasierte Sicherheit (RBAC).These APIs require the use of resource groups and support role-based security (RBAC). Weitere Informationen zur Implementierung von Zugriffsrollen finden Sie unter Rollenbasierte Zugriffssteuerung in Azure.For more information on how to implement access roles, see Azure Role-Based Access Control.

T-SQL: Verwalten des Failovers von Einzel- und PooldatenbankenT-SQL: Manage failover of single and pooled databases

Wichtig

Diese Transact-SQL-Befehle gelten nur für die aktive Georeplikation und nicht für Failovergruppen.These Transact-SQL commands only apply to active geo-replication and do not apply to failover groups. Daher gelten sie auch nicht für verwaltete Instanzen, da diese nur Failovergruppen unterstützen.As such, they also do not apply to Managed Instances, as they only support failover groups.

Get-HelpCommand BESCHREIBUNGDescription
ALTER DATABASEALTER DATABASE Verwenden Sie das Argument ADD SECONDARY ON SERVER, um eine sekundäre Datenbank für eine vorhandene Datenbank zu erstellen und die Datenreplikation zu starten.Use ADD SECONDARY ON SERVER argument to create a secondary database for an existing database and starts data replication
ALTER DATABASEALTER DATABASE Verwenden Sie FAILOVER oder FORCE_FAILOVER_ALLOW_DATA_LOSS, um die sekundäre Datenbank zur primären zu erklären und zu ihr zu wechseln – damit starten Sie das Failover.Use FAILOVER or FORCE_FAILOVER_ALLOW_DATA_LOSS to switch a secondary database to be primary to initiate failover
ALTER DATABASEALTER DATABASE Verwenden Sie REMOVE SECONDARY ON SERVER, um die Datenreplikation zwischen einer SQL-Datenbank und der angegebenen sekundären Datenbank zu beenden.Use REMOVE SECONDARY ON SERVER to terminate a data replication between a SQL Database and the specified secondary database.
sys.geo_replication_linkssys.geo_replication_links Gibt Informationen über alle vorhandenen Replikationsverknüpfungen für alle Datenbanken auf dem Azure SQL-Datenbank-Server zurück.Returns information about all existing replication links for each database on the Azure SQL Database server.
sys.dm_geo_replication_link_statussys.dm_geo_replication_link_status Ruft den Zeitpunkt der letzten Replikation, die Verzögerung der letzten Replikation und andere Informationen über die Replikationsverknüpfung für eine angegebene SQL-Datenbank ab.Gets the last replication time, last replication lag, and other information about the replication link for a given SQL database.
sys.dm_operation_statussys.dm_operation_status Zeigt den Status für alle Datenbankvorgänge an, einschließlich des Status der Replikationsverknüpfungen.Shows the status for all database operations including the status of the replication links.
sp_wait_for_database_copy_syncsp_wait_for_database_copy_sync Bewirkt, dass die Anwendung wartet, bis alle Transaktionen mit erfolgtem Commit repliziert und von der aktiven sekundären Datenbank bestätigt wurden.causes the application to wait until all committed transactions are replicated and acknowledged by the active secondary database.

PowerShell: Verwalten des Failovers von Einzel- und PooldatenbankenPowerShell: Manage failover of single and pooled databases

Hinweis

Dieser Artikel wurde aktualisiert und beinhaltet jetzt das neue Az-Modul von Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Sie können das AzureRM-Modul weiterhin verwenden, das bis mindestens Dezember 2020 weiterhin Fehlerbehebungen erhält.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Weitere Informationen zum neuen Az-Modul und zur Kompatibilität mit AzureRM finden Sie unter Introducing the new Azure PowerShell Az module (Einführung in das neue Az-Modul von Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Anweisungen zur Installation des Az-Moduls finden Sie unter Install Azure PowerShell (Installieren von Azure PowerShell).For Az module installation instructions, see Install Azure PowerShell.

Wichtig

Das PowerShell Azure Resource Manager-Modul wird von Azure SQL-Datenbank weiterhin unterstützt, aber alle zukünftigen Entwicklungen erfolgen für das Az.Sql-Modul.The PowerShell Azure Resource Manager module is still supported by Azure SQL Database, but all future development is for the Az.Sql module. Informationen zu diesen Cmdlets finden Sie unter AzureRM.Sql.For these cmdlets, see AzureRM.Sql. Die Argumente für die Befehle im Az- und in den AzureRm-Modulen sind im Wesentlichen identisch.The arguments for the commands in the Az module and in the AzureRm modules are substantially identical.

CmdletCmdlet BESCHREIBUNGDescription
Get-AzSqlDatabaseGet-AzSqlDatabase Ruft mindestens eine Datenbank ab.Gets one or more databases.
New-AzSqlDatabaseSecondaryNew-AzSqlDatabaseSecondary Erstellt eine sekundäre Datenbank für eine vorhandene Datenbank und startet die Datenreplikation.Creates a secondary database for an existing database and starts data replication.
Set-AzSqlDatabaseSecondarySet-AzSqlDatabaseSecondary Erklärt die sekundäre Datenbank zur primären und wechselt zu ihr – dadurch wird das Failover gestartet.Switches a secondary database to be primary to initiate failover.
Remove-AzSqlDatabaseSecondaryRemove-AzSqlDatabaseSecondary Beendet die Datenreplikation zwischen einer SQL-Datenbank und der angegebenen sekundären Datenbank.Terminates data replication between a SQL Database and the specified secondary database.
Get-AzSqlDatabaseReplicationLinkGet-AzSqlDatabaseReplicationLink Ruft die Georeplikationsverknüpfungen zwischen einer Azure SQL-Datenbank und einer Ressourcengruppe oder einer SQL Server-Instanz ab.Gets the geo-replication links between an Azure SQL Database and a resource group or SQL Server.

REST-API: Verwalten des Failovers von Einzel- und PooldatenbankenREST API: Manage failover of single and pooled databases

APIAPI BESCHREIBUNGDescription
Create or Update Database (createMode=Restore)Create or Update Database (createMode=Restore) Erstellt oder aktualisiert eine primäre oder sekundäre Datenbank oder stellt diese wieder her.Creates, updates, or restores a primary or a secondary database.
Get Create or Update Database StatusGet Create or Update Database Status Ruft den Status während eines Erstellungsvorgangs ab.Returns the status during a create operation.
Set Secondary Database as Primary (Planned Failover)Set Secondary Database as Primary (Planned Failover) Legt fest, welche sekundäre Datenbank als primäre Datenbank verwendet wird, indem ein Failover von der aktuellen primären Datenbank durchgeführt wird.Sets which secondary database is primary by failing over from the current primary database. Diese Option wird bei einer verwalteten Instanz nicht unterstützt.This option is not supported for Managed Instance.
Set Secondary Database as Primary (Unplanned Failover)Set Secondary Database as Primary (Unplanned Failover) Legt fest, welche sekundäre Datenbank als primäre Datenbank verwendet wird, indem ein Failover von der aktuellen primären Datenbank durchgeführt wird.Sets which secondary database is primary by failing over from the current primary database. Bei diesem Vorgang können Daten verloren gehen.This operation might result in data loss. Diese Option wird bei einer verwalteten Instanz nicht unterstützt.This option is not supported for Managed Instance.
Get Replication LinkGet Replication Link Ruft eine spezifische Replikationsverknüpfung für eine angegebene SQL-Datenbank in einer Georeplikationspartnerschaft ab.Gets a specific replication link for a given SQL database in a geo-replication partnership. Es werden die Informationen abgerufen, die in der Katalogsicht „sys.geo_replication_links“ sichtbar sind.It retrieves the information visible in the sys.geo_replication_links catalog view. Diese Option wird bei einer verwalteten Instanz nicht unterstützt.This option is not supported for Managed Instance.
Replication Links - List By DatabaseReplication Links - List By Database Ruft alle Replikationsverknüpfungen für eine angegebene SQL-Datenbank in einer Georeplikationspartnerschaft ab.Gets all replication links for a given SQL database in a geo-replication partnership. Es werden die Informationen abgerufen, die in der Katalogsicht „sys.geo_replication_links“ sichtbar sind.It retrieves the information visible in the sys.geo_replication_links catalog view.
Delete Replication LinkDelete Replication Link Löscht einen Datenbankreplikationslink.Deletes a database replication link. Kann nicht während eines Failovers verwendet werden.Cannot be done during failover.

Nächste SchritteNext steps