Skip To Content

Verschieben einer Geodatabase in PostgreSQL zwischen AWS-Instanzen

Sie können eine vorhandene Enterprise-Geodatabase in PostgreSQL von einem lokalen Server in eine ArcGIS Enterprise on Amazon Web Services-Instanz oder von einer ArcGIS Enterprise on Amazon Web Services-Instanz in eine andere Instanz verschieben, indem Sie eine Sicherungsdatei verwenden.

Zu diesem Zweck müssen das Quell- und Ziel-PostgreSQL-Datenbank-Cluster das Übertragen von Datenbanken mit einer pg_dump-Datei unterstützen. Ermitteln Sie in der PostgreSQL-Dokumentation, ob die von Ihnen verwendeten Versionen kompatibel sind.

Wenn Ihre PostgreSQL-Versionen kompatibel sind, erstellen Sie eine Sicherung der Quell-Geodatabase, übertragen Sie die Sicherungsdatei auf die Zielinstanz vonArcGIS Enterprise on Amazon Web Services, erstellen Sie eine Datenbank und Anmelderollen im Ziel-PostgreSQL-Datenbank-Cluster, und stellen Sie die Datenbank wieder her.

Hinweis:

Dieser Workflow gilt nicht für Amazon Relational Database Services for PostgreSQL.

Überprüfen der benutzerdefinierten Variableneinstellungen

Alle benutzerdefinierten Einstellungen, die sich im Quelldatenbank-Cluster befanden, die Sie beibehalten möchten, müssen der neuen Datenbank-Cluster hinzugefügt werden. Die Konfigurationseinstellungen werden in der Datei postgresql.conf gespeichert. Erstellen Sie eine Kopie dieser Datei, und verschieben Sie sie in den Zieldatenbank-Cluster der ArcGIS Enterprise on Amazon Web Services-Instanz.

Die Datei postgresql.conf auf der Instanz von ArcGIS Enterprise on Amazon Web Services befindet sich auf dem bereitgestellten Laufwerk unter /data.

Erstellen einer Sicherung der Quell-Geodatabase

Sie können eine Sicherung der Datenbank erstellen, um die Datendateien auf eine ArcGIS Enterprise on Amazon Web Services-Instanz zu übertragen.

Verwenden Sie den PostgreSQL-Befehl pg_dump, um eine Sicherungsdatei zu erstellen.

  1. Stellen Sie ein Verbindung zu dem Server her, auf dem die Geodatabase gespeichert ist.
  2. Führen Sie den Befehl pg_dump über die Shell-Eingabeaufforderung aus, um eine Sicherung der Datenbank zu erstellen.
    pg_dump -U postgres -F c > /data/spdbbu11012.dump

    Weitere Informationen zum Befehl finden Sie in der pg_dump PostgreSQL-Dokumentation.

Verschieben der Sicherungsdatei in die Zielinstanz

Es gibt mehrere Möglichkeiten, die Sicherungsdatei auf die Zielinstanz zu übertragen. Weitere Informationen zu den verschiedenen Optionen zum Verschieben von Daten finden Sie unter Strategien für den Datentransfer zu Amazon Web Services. Sie können die Datei postgresql.conf bei Bedarf auf die gleiche Weise verschieben.

Stellen Sie sicher, dass die Sicherungsdatei auf dem EBS (Elastic Block Store)-Volume abgelegt wird.

Sobald die Sicherungsdatei auf die Zielinstanz von ArcGIS Enterprise on Amazon Web Services übertragen wurde, bereiten Sie den PostgreSQL-Datenbank-Cluster vor.

Vorbereiten des Ziel-PostgreSQL-Datenbank-Clusters

Sie müssen über eine Datenbank verfügen, in der Sie die Sicherungsdatei wiederherstellen können. Außerdem müssen sich alle Anmelderollen, die Eigentümer von Daten in der Quelldatenbank sind, im Zieldatenbank-Cluster befinden.

Ablegen der Konfigurationsdatei

Wenn Sie eine benutzerdefinierte postgresql.conf-Datei verwenden, erstellen Sie auf der Zielinstanz eine Kopie der Standard-postgresql.conf-Datei, und legen Sie die benutzerdefinierte Datei auf dem bereitgestellten Laufwerk in /data ab.

Erstellen einer leeren Datenbank

Die Datenbank, die Sie erstellen, muss den gleichen Namen haben wie die das Quelldatenbank-Cluster von PostgreSQL, für die Sicherungsdatei erstellt wurde. Datenbanknamen müssen innerhalb eines Datenbank-Clusters eindeutig sein. Wenn Sie also Datenbanken zwischen ArcGIS Enterprise on Amazon Web Services verschieben, muss eine der folgenden Situationen zutreffen:

  • Die Quelldatenbank darf nicht den gleichen Namen wie die Datenbank im Zieldatenbank-Cluster haben.

    oder

  • Sie müssen die Datenbank mit dem gleichen Namen aus dem Zieldatenbank-Cluster von PostgreSQL löschen, bevor Sie die übertragene Sicherungsdatei wiederherstellen können.
  1. Melden Sie sich bei der EC2-Zielinstanz als Root-Benutzer an.
  2. Öffnen Sie eine Befehls-Shell und melden Sie sich bei "psql" als SDE-Benutzer an.
  3. Erstellen Sie eine Datenbank, in der Sie die Sicherungsdatei wiederherstellen können.

    Beachten Sie die folgenden Informationen:

    • Der Name, der Besitzer und die Codierung der Zieldatenbank müssen mit denen in der Quelldatenbank identisch sein.
    • Wenn Sie eine nicht standardmäßige Datenbankvorlage für die Quelldatenbank verwendet haben, beispielsweise eine PostGIS-Datenbankvorlage, verwenden Sie die Vorlage für die Zieldatenbank.
    • Sie können die neue Datenbank in einem vorhandenen Tablespace speichern oder einen neuen Tablespace speziell für diese Datenbank erstellen. Wenn Sie einen neuen Tablespace verwenden möchten, müssen Sie ihn erstellen, bevor Sie die Datenbank erstellen.

    CREATE DATABASE <dbname>
      WITH OWNER = sde
           TEMPLATE = template0
           ENCODING = '<encoding of db>'
           TABLESPACE = 
           LC_COLLATE = ''
           LC_CTYPE = ''
           CONNECTION LIMIT = -1;

Erstellen von Anmelde- und Gruppenrollen

Das Zieldatenbank-Cluster muss Anmelderollen für jeden Benutzer enthalten, der Daten in der Quelldatenbank besitzt.

Wenn Sie eine Datenbank von einer ArcGIS Enterprise on Amazon Web Services-Instanz in eine andere verschieben und die Standardanmelderollen verwenden, müssen Sie keine neuen Rollen im Zieldatenbank-Cluster erstellen. Wenn sich Daten in der Quelldatenbank jedoch im Besitz von nicht standardmäßigen Anmelderollen befinden, müssen Sie Anmelderollen mit den gleichen Namen im Zieldatenbank-Cluster von PostgreSQL erstellen. Analog dazu müssen Sie für den Fall, dass Sie Gruppenanmeldungen in der Zieldatenbank verwenden möchten, diese neu erstellen und für die Anmelderollen zulassen.

Weitere Informationen zum Erstellen von Gruppen- und Anmelderollen und zum Hinzufügen von Anmeldungen zu Gruppen finden Sie in der PostgreSQL-Dokumentation.

Wiederherstellen der Datenbank

Stellen Sie die Datenbank mit dem PostgreSQL-Befehl pg_restore wieder her.

Vorsicht:

Sie müssen den Befehl pg_restore zweimal ausführen: einmal, um das öffentliche Schema wiederherzustellen, das die Systemtabelle "sde_spatial_references" enthält, und ein zweites Mal zum Wiederherstellen der restlichen Daten. Andernfalls werden keine räumlichen Daten wiederhergestellt.

  1. Stellen Sie eine Verbindung mit der Zielinstanz von ArcGIS Enterprise on Amazon Web Services (die Instanz, auf die Sie die Sicherungsdatei verschoben haben) her.
  2. Öffnen Sie eine Befehls-Shell und melden Sie sich bei "psql" als SDE-Benutzer an.
  3. Führen Sie den Befehl pg_restore über die Shell-Eingabeaufforderung aus, um das öffentliche Schema in der Datenbank wiederherzustellen.

    Der SDE-Benutzer muss Superuser in PostgreSQL sein, um den Befehl pg_restore ausführen zu können.

    pg_restore -U sde -n public -d spdb /data/spdbbu11012.dump
    Password:
  4. Führen Sie den Befehl pg_restore ein zweites Mal aus, um die gesamte Datenbank wiederherzustellen.
    pg_restore -U sde -d spdb /data/spdbbu11012.dump
    Password:

    Weitere Informationen zum Befehl finden Sie in der pg_restore PostgreSQL-Dokumentation.

Nachdem Sie die Datenbank im Zieldatenbank-Cluster von PostgreSQL wiederhergestellt haben, überprüfen Sie, ob die erwarteten Schemas und Tabellen in der neuen Datenbank vorhanden sind. Fragen Sie dazu die PostgreSQL-Katalogansichten ab, in denen diese Informationen gespeichert sind. Sie können beispielsweise die Katalogansicht "pg_tables" abfragen, um alle Tabellen in der Datenbank sowie das Schema, in denen sie gespeichert sind, anzuzeigen.

Festlegen der Datenbankvariablen

Nun verwenden Sie die Variableninformationen für die benutzerdefinierte Datenbank, die Sie zuvor gesammelt haben, um die Variablen für die neue Datenbank festzulegen.

Mit den folgenden Schritten können Sie die Variable "search_path" hinzufügen und festlegen. Die gleichen grundlegenden Schritte werden zum Einstellen benutzerdefinierter Werte für andere Datenbankvariablen ausgeführt.

  1. Stellen Sie eine Verbindung zur neuen Datenbank als SDE-Benutzer über "psql" her.
  2. Legen Sie den Suchpfad für die Datenbank, in die das SDE-Schema eingefügt werden soll, über die "psql"-Eingabeaufforderung fest.

    SET search_path TO "$user",public,sde;

Verwandte Themen