Verschieben von Azure Database for PostgreSQL in eine andere Region

Dieser Artikel enthält Anleitungen zur Verschiebung von Azure Database for PostgreSQL Einzelserver und flexibler Server in Regionen, in denen keine Regionspaare für Replikation und geographische Wiederherstellung verfügbar sind.

Es gibt verschiedene mögliche Gründe, warum Sie Ihre vorhandenen Azure-Ressourcen aus einer Region in eine andere verschieben möchten. Möglicherweise möchten Sie Folgendes ausführen:

  • Nutzen Sie die Vorteile einer neuen Azure-Region.
  • Stellen Sie Features oder Dienste bereit, die nur in bestimmten Regionen verfügbar sind.
  • Erfüllen Sie interne Richtlinien- und Governanceanforderungen.
  • Ausrichtung an Unternehmenszusammenschlüssen und -übernahmen
  • Um die Anforderungen an die Kapazitätsplanung zu erfüllen

Wie Sie Azure Cosmos DB for PostgreSQL (früher Azure Database for PostgreSQL – Hyperscale (Citus)) verschieben können, erfahren Sie unter Lesereplikate in Azure Cosmos DB for PostgreSQL.

Einen Überblick über die von der nativen Replikation unterstützten Regionspaare finden Sie unter Regionsübergreifende Replikation.

Voraussetzungen

Voraussetzungen gelten nur für die erneute Bereitstellung mit Daten. Um Ihre Datenbank ohne Daten zu verschieben, können Sie zu Vorbereiten springen.

  • Um PostgreSQL mit Daten von einer Region in eine andere zu verschieben, benötigen Sie eine zusätzliche Computeressource zur Ausführung der Sicherungs- und Wiederherstellungstools. Die Beispiele in diesem Leitfaden verwenden eine Azure-VM mit Ubuntu 20.04 LTS. Die Computeressourcen müssen:
    • Netzwerkzugriff sowohl auf den Quell- als auch auf den Zielserver haben, entweder über ein privates Netzwerk oder durch Aufnahme in die Firewallregeln.
    • Sich entweder in der Quell- oder Zielregion befinden.
    • Wenn verfügbar, den beschleunigten Netzwerkbetrieb verwenden.
    • Der Inhalt der Datenbank wird nicht zwischengespeichert; die Ausgabe des logischen Backup-Tools wird direkt an den Zielserver gesendet.
  • Abhängig vom Design Ihrer Azure Database for PostgreSQL-Instanz müssen die folgenden abhängigen Ressourcen möglicherweise vor der Verlagerung in der Zielregion bereitgestellt und konfiguriert werden:

Ausfallzeit

Informationen zu den möglichen Ausfallzeiten finden Sie unter Cloud Adoption Framework für Azure: Auswählen einer Verlagerungsmethode.

Vorbereiten

Exportieren Sie zunächst eine Resource Manager-Vorlage. Diese Vorlage enthält Einstellungen, die Ihren Automation-Namespace beschreiben.

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie Alle Ressourcen und dann Ihre Automation-Ressource aus.

  3. Wählen Sie Vorlage exportieren aus.

  4. Wählen Sie Herunterladen auf der Seite Vorlage exportieren aus.

  5. Suchen Sie die aus dem Portal heruntergeladene ZIP-Datei, und entpacken Sie sie in einen Ordner Ihrer Wahl.

    Diese ZIP-Datei enthält die JSON-Dateien, in denen die Vorlage und Skripts zum Bereitstellen der Vorlage enthalten sind.

Erneute Bereitstellung ohne Daten

  1. Passen Sie die exportieren Vorlagenparameter so an, dass sie der Zielregion entsprechen.

Wichtig

Der Name des Zielservers muss sich von dem Namen des Quellservers unterscheiden. Sie müssen die Clients neu konfigurieren, damit sie auf den neuen Server zeigen.

  1. Stellen Sie die Vorlage erneut in der neuen Region bereit. Ein Beispiel dafür, wie Sie eine ARM-Vorlage verwenden, um eine Azure-Datenbank für PostgreSQL zu erstellen, finden Sie unter Schnellstart: Verwenden einer ARM-Vorlage zur Erstellung einer Azure Database for PostgreSQL – Flexibler Server.

Erneute Bereitstellung mit Daten

Die erneute Bereitstellung mit Datenmigration für Azure Database for PostgreSQL basiert auf logischer Sicherung und Wiederherstellung und erfordert native Tools. Infolgedessen müssen Sie während der Wiederherstellung mit spürbaren Ausfallzeiten rechnen.

Tipp

Sie können das Azure-Portal für das Verschieben einer Azure Database for PostgreSQL – Flexibler Server-Instanz verwenden. Wie Sie eine Replikation für Single Server durchführen können, erfahren Sie unter Verschieben einer Azure Database for PostgreSQL – Flexible Server in eine andere Region mithilfe des Azure-Portals.

  1. Passen Sie die exportieren Vorlagenparameter so an, dass sie der Zielregion entsprechen.

Wichtig

Der Name des Zielservers muss sich von dem Namen des Quellservers unterscheiden. Sie müssen die Clients neu konfigurieren, damit sie auf den neuen Server zeigen.

  1. Stellen Sie die Vorlage erneut in der neuen Region bereit. Ein Beispiel dafür, wie Sie eine ARM-Vorlage verwenden, um eine Azure-Datenbank für PostgreSQL zu erstellen, finden Sie unter Schnellstart: Verwenden einer ARM-Vorlage zur Erstellung einer Azure Database for PostgreSQL – Flexibler Server.

  2. Installieren Sie auf der Computeressource, die für die Migration bereitgestellt wird, die PostgreSQL-Client-Tools für die zu migrierende PostgreSQL-Version. Das folgende Beispiel verwendet PostgreSQL Version 13 auf einer Azure-VM, auf der Ubuntu 20.04 LTS ausgeführt wird:

      sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      sudo apt-get update
      sudo apt-get install -y postgresql-client-13
    

    Weitere Informationen zur Installation von PostgreSQL-Komponenten in Ubuntu finden Sie unter Linux Downloads (Ubuntu).

    Informationen zu anderen Plattformen finden Sie unter PostgreSQL Downloads.

  3. (Optional) Wenn Sie zusätzliche Rollen auf dem Quellserver erstellt haben, erstellen Sie sie auch auf dem Zielserver. Um eine Liste der vorhandenen Rollen abzurufen, verwenden Sie die folgende Abfrage:

    select *
    from pg_catalog.pg_roles
    where rolename not like 'pg_%' and rolename not in ('azuresu', 'azure_pg_admin', 'replication')
    order by rolename;
    
  4. Führen Sie die folgenden Schritte aus, um jede Datenbank zu migrieren:

    1. Beenden Sie alle Datenbankaktivitäten auf dem Quellserver.
    2. Ersetzen Sie im folgenden Skript Anmeldeinformationen, Quellserver, Zielserver und Datenbanknamen:
        export USER=admin_username
        export PGPASSWORD=admin_password
        export SOURCE=pgsql-arpp-source.postgres.database.azure.com
        export TARGET=pgsql-arpp-target.postgres.database.azure.com
        export DATABASE=database_name
        pg_dump -h $SOURCE -U $USER --create --exclude-schema=pg_catalog $DATABASE | psql -h $TARGET -U $USER postgres
    
    1. Führen Sie das Skript aus, um die Datenbank zu migrieren.

    2. Konfigurieren Sie die Clients so, dass sie auf den Zielserver verweisen.

    3. Führen Sie funktionale Tests für die Anwendungen durch.

      1. Stellen Sie sicher, dass das ignoreMissingVnetServiceEndpoint-Flag auf Falsefestgelegt ist, damit die IaC die Datenbank nicht bereitstellen kann, wenn der Dienstendpunkt nicht in der Zielregion konfiguriert ist.