Condividi tramite


PostgreSQL pg_dump & pg_restore

Importante

La scalabilità automatica di Lakebase è la versione più recente di Lakebase, con calcolo autoscalabile, scalabilità fino a zero, ramificazione e ripristino immediato. Per le aree supportate, vedere Disponibilità dell'area. Se sei un utente provisioning di Lakebase, vedere Lakebase provisioning.

Questo argomento descrive come creare un backup del database Lakebase usando l'utilità Postgres pg_dump e come ripristinare un backup usando pg_restore.

Quando usare pg_dump e pg_restore

Usare pg_dump e pg_restore per il ripristino di emergenza e i requisiti di continuità aziendale o quando è necessario archiviare i backup completi all'esterno di Lakebase. Questo metodo fornisce esportazioni di database complete che possono essere archiviate in modo indipendente e ripristinato in qualsiasi sistema compatibile con Postgres.

Prerequisiti

Prima di iniziare, assicurarsi che:

  • pg_dump e pg_restore sono installati. È possibile verificare eseguendo pg_dump -V.
  • Si usano le versioni più recenti di pg_dump e pg_restore.
  • La versione client corrisponde alla versione di Postgres del progetto Lakebase.
  • Un progetto Lakebase con un ruolo Postgres configurato

Annotazioni

È consigliabile usare l'autenticazione della password Postgres nativa quando si usano pg_dump e pg_restore. Le password native di Postgres non scadono ogni ora come i token OAuth, rendendole più adatte per le operazioni di backup e ripristino. Per informazioni dettagliate sui metodi di autenticazione, vedere Panoramica dell'autenticazione.

Installare pg_dump e pg_restore

Se non hai le utilità pg_dump e pg_restore installate in locale, installale sulla tua piattaforma preferita.

Windows: Installare PostgreSQL usando il programma di installazione ufficiale da postgresql.org. Le utilità pg_dump e pg_restore vengono installate per impostazione predefinita e sono disponibili nella directory bin di PostgreSQL.

Macos: Installare PostgreSQL con Homebrew:

brew install postgresql

Linux (Ubuntu/Debian):

sudo apt-get install postgresql-client

Docker: Eseguire pg_dump con un contenitore Docker Postgres:

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

Creare un backup con pg_dump

Per creare un backup del database in locale:

  1. Passare all'app Lakebase facendo clic sul commutatore delle app nell'angolo in alto a destra dell'area di lavoro.

  2. Seleziona il progetto.

  3. Fare clic su Connetti per aprire la finestra di connessione al database.

  4. Selezionare un ruolo Postgres dall'elenco a discesa (è consigliabile usare un ruolo Postgres nativo con l'autenticazione della password).

  5. Copiare la stringa di connessione.

    La stringa di connessione è simile alla seguente:

    postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    
  6. Creare un backup del database Lakebase eseguendo il comando seguente pg_dump :

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

    Dopo aver aggiunto la stringa di connessione del database Lakebase e un nome file dump, il comando avrà un aspetto simile al seguente:

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

argomenti di comando pg_dump

Il pg_dump comando include questi argomenti:

  • -Fc: invia l'output a un archivio in formato personalizzato adatto per l'input in pg_restore.
  • -v: Esegue pg_dump in modalità dettagliata, consentendo di monitorare ciò che accade durante l'operazione di dump.
  • -d: specifica la stringa di connessione per il database Lakebase.
  • -f <dump_file_name>: nome del file di dump. Può essere qualsiasi nome scelto (ad esempio, mydumpfile.bak).

Ripristinare un backup con pg_restore

Per ripristinare un database usando l'utilità pg_restore da un file di backup creato tramite pg_dump:

  1. Creare un nuovo progetto Lakebase.

  2. Creare un database con lo stesso nome di quello di cui è stato eseguito il backup.

  3. Passare all'app Lakebase facendo clic sul commutatore delle app nell'angolo in alto a destra dell'area di lavoro.

  4. Seleziona il tuo progetto e fai clic su Connetti per aprire la finestra di connessione al database.

  5. Selezionare un ruolo Postgres dall'elenco a discesa (è consigliabile usare un ruolo Postgres nativo con l'autenticazione della password).

  6. Copiare la stringa di connessione.

    La stringa di connessione è simile alla seguente:

    postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
    
  7. Ripristina i dati nel database di destinazione su Lakebase con pg_restore.

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

    Dopo aver aggiunto la stringa di connessione del database Lakebase e il nome del file di dump, il comando sarà simile al seguente:

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

argomenti di comando pg_restore

Il pg_restore comando include questi argomenti:

  • -v: esegue pg_restore in modalità dettagliata, consentendo di monitorare cosa succede durante l'operazione di ripristino.
  • -d: specifica il database Lakebase a cui connettersi. Il valore è una stringa di connessione del database Lakebase.
  • <dump_file_name>: nome del file dump creato con pg_dump.

Esempio completo

Nell'esempio seguente viene illustrato il dump dei dati da un database di origine denominato databricks_postgres in un progetto Lakebase e il ripristino in un databricks_postgres database in un altro progetto Lakebase.

Prima di eseguire questa procedura:

  • È stato creato un nuovo progetto Lakebase per il database di destinazione (che include il database predefinito databricks_postgres )
  • Sono state raccolte le stringhe di connessione per i database di origine e di destinazione:
    • Fonte:postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    • Destinazione:postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require

Procedura di backup e ripristino:

# 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