Postgres pg_dump & pg_restore

Belangrijk

Lakebase Autoscaling is de nieuwste versie van Lakebase, met automatisch schalen van rekenkracht, schaal-tot-nul, branching-functionaliteit en direct herstellen. Zie Beschikbaarheid van regio's voor ondersteunde regio's. Als u een door Lakebase ingericht gebruiker bent, raadpleegt u Lakebase Ingericht.

In dit onderwerp wordt beschreven hoe u een back-up van uw Lakebase-database maakt met behulp van het Postgres-hulpprogramma pg_dump en hoe u een back-up herstelt met behulp van pg_restore.

Wanneer gebruikt u pg_dump &pg_restore

Gebruik pg_dump en pg_restore voor vereisten voor herstel na noodgevallen en bedrijfscontinuïteit, of wanneer u volledige back-ups buiten Lakebase moet opslaan. Deze methode biedt volledige databaseexports die onafhankelijk kunnen worden opgeslagen en kunnen worden hersteld naar elk postgres-compatibel systeem.

Voorwaarden

Voordat u begint, moet u ervoor zorgen dat:

  • pg_dump en pg_restore zijn geïnstalleerd. U kunt dit controleren door uit te voeren pg_dump -V.
  • U gebruikt de nieuwste versies van pg_dump en pg_restore.
  • De clientversie komt overeen met de Postgres-versie van uw Lakebase-project.
  • Een Lakebase-project met een Postgres-rol geconfigureerd

Opmerking

We raden u aan systeemeigen Postgres-wachtwoordverificatie te gebruiken bij het gebruik van pg_dump en pg_restore. Systeemeigen Postgres-wachtwoorden verlopen niet elk uur, zoals OAuth-tokens, waardoor ze beter geschikt zijn voor back-up- en herstelbewerkingen. Zie het overzicht van verificatie voor meer informatie over verificatiemethoden.

Pg_dump en pg_restore installeren

Als u de pg_dump hulpprogramma's pg_restore niet lokaal hebt geïnstalleerd, installeert u deze op uw voorkeursplatform.

Windows: Installeer PostgreSQL met behulp van het officiële installatieprogramma van postgresql.org. De pg_dump hulpprogramma's en pg_restore hulpprogramma's worden standaard geïnstalleerd en zijn te vinden in de map postgreSQL bin.

Macos: PostgreSQL installeren met Homebrew:

brew install postgresql

Linux (Ubuntu/Debian):

sudo apt-get install postgresql-client

Docker: Uitvoeren pg_dump met behulp van een Postgres Docker-container:

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

Een back-up maken met pg_dump

Een back-up van een database lokaal maken:

  1. Navigeer naar de Lakebase-app door te klikken op de app-switcher in de rechterbovenhoek van uw werkruimte.

  2. Selecteer uw project.

  3. Klik op Verbinding maken om de databaseverbinding modaal te openen.

  4. Selecteer een Postgres-rol in de vervolgkeuzelijst (we raden u aan een systeemeigen Postgres-rol met wachtwoordverificatie te gebruiken).

  5. Kopieer de verbindingsreeks.

    Uw verbindingsreeks ziet er ongeveer als volgt uit:

    postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    
  6. Maak een back-up van uw Lakebase-database door de volgende pg_dump opdracht uit te voeren:

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

    Nadat u uw Lakebase-databaseverbindingsreeks en een dumpbestandsnaam hebt toegevoegd, ziet uw opdracht er als volgt uit:

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

pg_dump opdrachtargumenten

De pg_dump opdracht bevat deze argumenten:

  • -Fc: verzendt de uitvoer naar een archief met aangepaste indeling dat geschikt is voor invoer in pg_restore.
  • -v: Voert pg_dump uit in de verbose modus, zodat u kunt controleren wat er gebeurt tijdens de dumpbewerking.
  • -d: Hiermee geeft u de verbindingsreeks voor uw Lakebase-database op.
  • -f <dump_file_name>: de naam van het dumpbestand. Dit kan elke naam zijn die u kiest (bijvoorbeeld mydumpfile.bak).

Een back-up herstellen met pg_restore

Een database herstellen met behulp van het pg_restore hulpprogramma van een back-upbestand dat is gemaakt met behulp van pg_dump:

  1. Maak een nieuw Lakebase-project.

  2. Maak een database met dezelfde naam als de database waarvan u een back-up hebt gemaakt.

  3. Navigeer naar de Lakebase-app door te klikken op de app-switcher in de rechterbovenhoek van uw werkruimte.

  4. Selecteer uw project en klik op Verbinding maken om de databaseverbinding modaal te openen.

  5. Selecteer een Postgres-rol in de vervolgkeuzelijst (we raden u aan een systeemeigen Postgres-rol met wachtwoordverificatie te gebruiken).

  6. Kopieer de verbindingsreeks.

    Uw verbindingsreeks ziet er ongeveer als volgt uit:

    postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
    
  7. Herstel uw gegevens naar de doeldatabase in Lakebase met pg_restore:

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

    Nadat u uw Lakebase-databaseverbindingsreeks en de naam van het dumpbestand hebt toegevoegd, ziet uw opdracht er als volgt uit:

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

pg_restore opdrachtargumenten

De pg_restore opdracht bevat deze argumenten:

  • -v: Voert pg_restore uit in gedetailleerde modus, zodat u kunt controleren wat er gebeurt tijdens de herstelbewerking.
  • -d: hiermee geeft u de Lakebase-database op waarmee verbinding moet worden gemaakt. De waarde is een Lakebase-databaseverbindingsreeks.
  • <dump_file_name>: De naam van het dumpbestand dat u met pg_dump hebt gemaakt.

Volledig voorbeeld

In het volgende voorbeeld ziet u hoe gegevens worden gedumpt uit een brondatabase met de naam databricks_postgres in één Lakebase-project en worden hersteld naar een database in een databricks_postgres ander Lakebase-project.

Voordat u deze procedure uitvoert:

  • Er is een nieuw Lakebase-project gemaakt voor de doeldatabase (inclusief de standaarddatabase databricks_postgres )
  • Verbindingsreeksen voor de bron- en doeldatabases zijn verzameld:
    • Bron:postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    • Bestemming:postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require

Procedure voor back-up en herstel:

# 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