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
- Installieren der Azure CLI 2.0
- Ein Azure Database for PostgreSQL-Server, der als primärer Server verwendet wird.
Vorbereiten des primären Servers
Ü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
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
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
Ü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
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" } }
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
- Erfahren Sie mehr über Lesereplikate in Azure Database for PostgreSQL.
- Erhalten Sie Informationen zum Erstellen und Verwalten von Lesereplikaten im Azure-Portal.