Freigeben über


Postgres pg_dump & pg_restore

Von Bedeutung

Lakebase Autoscaling ist in den folgenden Regionen verfügbar: eastus, eastus2, centralus, southcentralus, westus, westus2, canadacentral, brazilsouth, northeurope, uksouth, westeurope, australiaeast, centralindia, southeastasia.

Lakebase Autoscaling ist die neueste Version von Lakebase mit automatischer Berechnung, Skalierung bis Null, Verzweigung und sofortiger Wiederherstellung. Wenn Sie ein Lakebase Provisioned-Benutzer sind, lesen Sie Lakebase Provisioned.

In diesem Thema wird beschrieben, wie Sie mithilfe des Postgres-Dienstprogramms pg_dump eine Sicherung Ihrer Lakebase-Datenbank erstellen und wie Sie mithilfe von pg_restore eine Sicherung wiederherstellen.

Wann man pg_dump und pg_restore verwenden sollte

Verwenden Sie pg_dump und pg_restore für Anforderungen an die Notfallwiederherstellung und Betriebskontinuität, oder um vollständige Backups außerhalb von Lakebase zu speichern. Diese Methode stellt vollständige Datenbankexporte bereit, die unabhängig gespeichert und in jedem Postgres-kompatiblen System wiederhergestellt werden können.

Voraussetzungen

Bevor Sie beginnen, stellen Sie folgendes sicher:

  • pg_dump und pg_restore werden installiert. Sie können überprüfen, indem Sie folgendes ausführen pg_dump -V:
  • Sie verwenden die neuesten Versionen von pg_dump und pg_restore.
  • Die Clientversion entspricht der Postgres-Version Ihres Lakebase-Projekts.
  • Ein Lakebase-Projekt mit konfigurierter Postgres-Rolle

Hinweis

Wir empfehlen die Verwendung der systemeigenen Postgres-Kennwortauthentifizierung bei Verwendung pg_dump und pg_restore. Native Postgres-Kennwörter laufen nicht stündlich ab wie OAuth-Token, wodurch sie besser für Sicherungs- und Wiederherstellungsvorgänge geeignet sind. Details zu Authentifizierungsmethoden finden Sie in der Übersicht über die Authentifizierung.

Installieren von pg_dump und pg_restore

Wenn die pg_dump und pg_restore Dienstprogramme nicht lokal installiert sind, installieren Sie sie auf Ihrer bevorzugten Plattform.

Windows: Installieren Sie PostgreSQL mit dem offiziellen Installationsprogramm von postgresql.org. Die Dienstprogramme pg_dump und pg_restore sind standardmäßig installiert und befinden sich im Verzeichnis des PostgreSQL-Bin.

Macos: Installieren Sie PostgreSQL mit Homebrew:

brew install postgresql

Linux (Ubuntu/Debian):

sudo apt-get install postgresql-client

Docker: Ausführen pg_dump mit einem Docker-Container von Postgres:

docker run --rm postgres:15 pg_dump --version

Erstellen einer Sicherung mit pg_dump

So erstellen Sie eine Datenbanksicherung lokal:

  1. Navigieren Sie zur Lakebase-App, indem Sie in der oberen rechten Ecke des Arbeitsbereichs auf den App-Switcher klicken.

  2. Wählen Sie Ihr Projekt aus.

  3. Klicken Sie auf "Verbinden" , um die modale Datenbankverbindung zu öffnen.

  4. Wählen Sie eine Postgres-Rolle aus der Dropdownliste aus (wir empfehlen die Verwendung einer nativen Postgres-Rolle mit kennwortauthentifizierung).

  5. Kopieren Sie die Verbindungszeichenfolge.

    Ihre Verbindungszeichenfolge sieht ähnlich wie folgt aus:

    postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    
  6. Erstellen Sie eine Sicherung Ihrer Lakebase-Datenbank, indem Sie den folgenden pg_dump Befehl ausführen:

    pg_dump -Fc -v -d "<lakebase_database_connection_string>" -f <dump_file_name>
    

    Nachdem Sie die Lakebase-Datenbankverbindungszeichenfolge und einen Dumpdateinamen hinzugefügt haben, sieht ihr Befehl wie folgt aus:

    pg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak
    

pg_dump Befehlsargumente

Der pg_dump Befehl enthält die folgenden Argumente:

  • -Fc: Sendet die Ausgabe an ein benutzerdefiniertes Formatarchive, das als Eingabe in pg_restore geeignet ist.
  • -v: Führt pg_dump im ausführlichen Modus aus, sodass Sie den Dump-Vorgang überwachen können.
  • -d: Gibt die Verbindungszeichenfolge für Ihre Lakebase-Datenbank an.
  • -f <dump_file_name>: Der Dateiname des Dumps. Dies kann ein beliebiger Name sein, den Sie auswählen, wie z. B. mydumpfile.bak.

Wiederherstellen einer Sicherung mit pg_restore

So stellen Sie eine Datenbank mithilfe des Hilfsprogramms aus einer Sicherungsdatei wieder her, die mit pg_restore erstellt wurde:

  1. Erstellen Sie ein neues Lakebase-Projekt.

  2. Erstellen Sie eine Datenbank mit demselben Namen wie die Datenbank, die Sie gesichert haben.

  3. Navigieren Sie zur Lakebase-App, indem Sie in der oberen rechten Ecke des Arbeitsbereichs auf den App-Switcher klicken.

  4. Wählen Sie Ihr Projekt aus, und klicken Sie auf "Verbinden" , um die modale Datenbankverbindung zu öffnen.

  5. Wählen Sie eine Postgres-Rolle aus der Dropdownliste aus (wir empfehlen die Verwendung einer nativen Postgres-Rolle mit kennwortauthentifizierung).

  6. Kopieren Sie die Verbindungszeichenfolge.

    Ihre Verbindungszeichenfolge sieht ähnlich wie folgt aus:

    postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
    
  7. Stellen Sie Ihre Daten in der Zieldatenbank von Lakebase mit pg_restore wieder her:

    pg_restore -v -d "<lakebase_database_connection_string>" <dump_file_name>
    

    Nachdem Sie die Lakebase-Datenbankverbindungszeichenfolge und den Dumpdateinamen hinzugefügt haben, sieht ihr Befehl wie folgt aus:

    pg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak
    

pg_restore Befehlsargumente

Der pg_restore Befehl enthält die folgenden Argumente:

  • -v: Wird im ausführlichen Modus ausgeführt pg_restore , sodass Sie überwachen können, was während des Wiederherstellungsvorgangs geschieht.
  • -d: Gibt die Lakebase-Datenbank an, mit der eine Verbindung hergestellt werden soll. Der Wert ist eine Lakebase-Datenbankverbindungszeichenfolge.
  • <dump_file_name>: Der Name der Dumpdatei, mit pg_dumpder Sie erstellt haben.

Vollständiges Beispiel

Das folgende Beispiel zeigt, wie Daten aus einer Quelldatenbank, die in einem Lakebase-Projekt mit dem Namen databricks_postgres vorhanden ist, exportiert und in einer anderen Datenbank in einem anderen Lakebase-Projekt wiederhergestellt werden.

Bevor Sie dieses Verfahren ausführen, gehen Sie wie folgt vor:

  • Für die Zieldatenbank (einschließlich der Standarddatenbank databricks_postgres ) wurde ein neues Lakebase-Projekt erstellt.
  • Verbindungszeichenfolgen für die Quell- und Zieldatenbanken wurden gesammelt:
    • Quelle:postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    • Ziel:postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require

Sicherungs- und Wiederherstellungsprozedur:

# Create a directory for the dump
mkdir mydump && cd mydump

# Create the backup
pg_dump -Fc -v -d "postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require" -f mydatabase.bak

# Verify the backup file was created
ls
mydatabase.bak

# Restore the backup to the destination database
pg_restore -v -d "postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require" mydatabase.bak