Erstellen und Verwalten von Lesereplikaten über die Azure CLI und die REST-API

GILT FÜR: Azure Database for PostgreSQL – Single Server

Wichtig

Azure Database for PostgreSQL – Single Server wird eingestellt. Es wird dringend empfohlen, ein Upgrade auf Azure Database for PostgreSQL – Flexibler Server auszuführen. Weitere Informationen zum Migrieren zu Azure Database for PostgreSQL – Flexibler Server finden Sie unter Was geschieht mit Azure Database for PostgreSQL – Einzelserver?.

In diesem Artikel erfahren Sie, wie Sie Lesereplikate in Azure Database for PostgreSQL über die Azure CLI und die REST-API erstellen und verwalten. Weitere Informationen zu Lesereplikaten finden Sie in der Übersicht.

Azure-Replikationsunterstützung

Lesereplikate und logische Decodierung sind beide vom Write-Ahead-Protokoll (WAL) von Postgres abhängig. Diese beiden Features erfordern unterschiedliche Ebenen der Protokollierung durch Postgres. Die logische Decodierung erfordert einen höheren Protokolliergrad als Lesereplikate.

Um den richtigen Protokolliergrad zu konfigurieren, verwenden Sie den Parameter für die Unterstützung der Azure-Replikation. Für die Unterstützung der Azure-Replikation gibt es drei Einstellungsoptionen:

  • Off: Speichert am wenigsten Informationen im Write-Ahead-Protokoll. Diese Einstellung ist auf den meisten Azure Database for PostgreSQL-Servern nicht verfügbar.
  • Replica: Ausführlichere Informationen als bei Off. Dies ist der mindestens erforderliche Protokolliergrad, damit Lesereplikate funktionieren. Auf den meisten Servern ist dies die Standardeinstellung.
  • Logical: Noch ausführlichere Informationen als bei Replica. Dies ist der mindestens erforderliche Protokolliergrad, damit die logische Decodierung funktioniert. Lesereplikate funktionieren bei dieser Einstellung ebenfalls.

Hinweis

Beim Bereitstellen von Lesereplikaten für persistente, sehr schreibintensive primäre Workloads kann sich die Replikation immer weiter verzögern, sodass der Stand des primären Servers möglicherweise gar nicht mehr erreicht wird. Damit kann auch die Speicherauslastung auf dem primären Server ansteigen, da die WAL-Dateien erst gelöscht werden, wenn sie im Replikat empfangen wurden.

Azure-Befehlszeilenschnittstelle

Sie können Lesereplikate mithilfe der Azure CLI erstellen und verwalten.

Voraussetzungen

Vorbereiten des primären Servers

  1. Überprüfen Sie den Wert azure.replication_support des primären Servers. Er sollte mindestens REPLICA sein, damit Lesereplikate funktionieren.

    az postgres server configuration show --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support
    
  2. Wenn azure.replication_support nicht mindestens REPLICA ist, legen Sie dies fest.

    az postgres server configuration set --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support --value REPLICA
    
  3. Starten Sie den Server neu, um die Änderung zu übernehmen.

    az postgres server restart --name mydemoserver --resource-group myresourcegroup
    

Erstellen eines Lesereplikats

Der Befehl az postgres server replica create erfordert die folgenden Parameter:

Einstellung Beispielwert BESCHREIBUNG
resource-group myresourcegroup Die Ressourcengruppe, in der der Replikatserver erstellt wird.
name mydemoserver-replica Der Name des neuen Replikatservers, der erstellt wird.
source-server mydemoserver Der Name oder die Ressourcen-ID des vorhandenen primären Servers, von dem die Replikation erfolgt. Verwenden Sie die Ressourcen-ID, wenn sich die Ressourcengruppen auf dem Replikat und dem primären Server unterscheiden sollen.

Im folgenden CLI-Beispiel wird das Replikat in derselben Region wie der primäre Server erstellt.

az postgres server replica create --name mydemoserver-replica --source-server mydemoserver --resource-group myresourcegroup

Verwenden Sie den --location-Parameter, um ein regionsübergreifendes Lesereplikat zu erstellen. Im folgenden CLI-Beispiel wird das Replikat in der Region „USA, Westen“ erstellt.

az postgres server replica create --name mydemoserver-replica --source-server mydemoserver --resource-group myresourcegroup --location westus

Hinweis

Weitere Informationen zu den Regionen, in denen Sie ein Replikat erstellen können, finden Sie im Konzeptartikel zu Lesereplikaten.

Wenn Sie den Parameter azure.replication_support auf einem universellen oder arbeitsspeicheroptimierten primären Server nicht auf REPLICA festgelegt und den Server nicht neu gestartet haben, erhalten Sie eine Fehlermeldung. Führen Sie diese beiden Schritte aus, bevor Sie ein Replikat erstellen.

Wichtig

Lesen Sie den Abschnitt „Überlegungen“ in der Übersicht über Lesereplikate.

Bevor eine Primärservereinstellung auf einen neuen Wert aktualisiert wird, aktualisieren Sie die Replikateinstellung auf den gleichen oder einen größeren Wert. Diese Aktion sorgt dafür, dass das Replikat mit allen Änderungen auf dem primären Server Schritt halten kann.

Auflisten von Replikaten

Sie können die Liste der Replikate eines primären Servers mit dem Befehl az postgres server replica list anzeigen.

az postgres server replica list --server-name mydemoserver --resource-group myresourcegroup 

Beenden der Replikation auf einem Replikatserver

Sie können die Replikation zwischen einem primären Server und einem Lesereplikat mit dem Befehl az postgres server replica stop beenden.

Das Beenden der Replikation zwischen einem primären Server und einem Lesereplikat kann nicht mehr rückgängig gemacht werden. Das Lesereplikat wird zu einem eigenständigen Server, der sowohl Lese- als auch Schreibvorgänge unterstützt. Der eigenständige Server kann nicht wieder in ein Replikat umgewandelt werden.

az postgres server replica stop --name mydemoserver-replica --resource-group myresourcegroup 

Löschen eines primären oder Replikatservers

Wenn Sie einen primären oder Replikatserver löschen möchten, verwenden Sie den Befehl az postgres server delete.

Wenn Sie einen primären Server löschen, wird die Replikation auf allen Lesereplikaten beendet. Die Lesereplikate werden zu eigenständigen Servern, die nun Lese- und Schreibvorgänge unterstützen.

az postgres server delete --name myserver --resource-group myresourcegroup

REST-API

Sie können Lesereplikate mithilfe der Azure-REST-API erstellen und verwalten.

Vorbereiten des primären Servers

  1. Überprüfen Sie den Wert azure.replication_support des primären Servers. Er sollte mindestens REPLICA sein, damit Lesereplikate funktionieren.

    GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
  2. Wenn azure.replication_support nicht mindestens REPLICA ist, legen Sie dies fest.

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
    {
     "properties": {
     "value": "replica"
     }
    }
    
  3. Starten Sie den Server neu, um die Änderung zu übernehmen.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/restart?api-version=2017-12-01
    

Erstellen eines Lesereplikats

Sie können ein Lesereplikat mithilfe der Create-API erstellen:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{replicaName}?api-version=2017-12-01
{
  "location": "southeastasia",
  "properties": {
    "createMode": "Replica",
    "sourceServerId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}"
  }
}

Hinweis

Weitere Informationen zu den Regionen, in denen Sie ein Replikat erstellen können, finden Sie im Konzeptartikel zu Lesereplikaten.

Wenn Sie den Parameter azure.replication_support auf einem universellen oder arbeitsspeicheroptimierten primären Server nicht auf REPLICA festgelegt und den Server nicht neu gestartet haben, erhalten Sie eine Fehlermeldung. Führen Sie diese beiden Schritte aus, bevor Sie ein Replikat erstellen.

Ein Replikat wird mit den gleichen Compute- und Speichereinstellungen erstellt wie der primäre Server. Nachdem ein Replikat erstellt wurde, können mehrere Einstellungen unabhängig vom primären Server geändert werden: die Computegeneration, die virtuellen Kerne, der Speicher und der Aufbewahrungszeitraum für Sicherungen. Auch der Tarif kann unabhängig geändert werden, allerdings nicht in den oder aus dem Tarif „Basic“.

Wichtig

Bevor eine Primärservereinstellung auf einen neuen Wert aktualisiert wird, aktualisieren Sie die Replikateinstellung auf den gleichen oder einen größeren Wert. Diese Aktion sorgt dafür, dass das Replikat mit allen Änderungen auf dem primären Server Schritt halten kann.

Auflisten von Replikaten

Sie können die Replikatliste eines primären Servers mithilfe der Replica List-API anzeigen:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/Replicas?api-version=2017-12-01

Beenden der Replikation auf einem Replikatserver

Sie können die Replikation zwischen einem primären Server und einem Lesereplikat mithilfe der Update-API beenden.

Das Beenden der Replikation zwischen einem primären Server und einem Lesereplikat kann nicht mehr rückgängig gemacht werden. Das Lesereplikat wird zu einem eigenständigen Server, der sowohl Lese- als auch Schreibvorgänge unterstützt. Der eigenständige Server kann nicht wieder in ein Replikat umgewandelt werden.

PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{replicaServerName}?api-version=2017-12-01
{
  "properties": {
    "replicationRole":"None"  
   }
}

Löschen eines primären oder Replikatservers

Zum Löschen eines primären oder Replikatservers verwenden Sie die Delete-API:

Wenn Sie einen primären Server löschen, wird die Replikation auf allen Lesereplikaten beendet. Die Lesereplikate werden zu eigenständigen Servern, die nun Lese- und Schreibvorgänge unterstützen.

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}?api-version=2017-12-01

Nächste Schritte