Pular para o conteúdo principal

Postgres pg_dump e pg_restore

info

Visualização

Este recurso está em Pré-visualização Pública nas seguintes regiões: us-east-1, us-west-2, eu-west-1.

O Lakebase autoscale é a nova versão do Lakebase com recursos como autoscale compute, escala-to-zero, branching e instant restore. Para comparação de recursos com o provisionamento do Lakebase, veja escolhendo entre versões.

Este tópico descreve como criar um backup do seu banco de dados Lakebase usando os utilitários Postgres pg_dump e como restaurar um backup usando pg_restore.

Quando usar pg_dump e pg_restore

Use pg_dump e pg_restore para requisitos de recuperação de desastres e continuidade de negócios, ou quando você precisar armazenar backups completos fora do Lakebase. Este método fornece exportações completas do banco de dados que podem ser armazenadas independentemente e restauradas em qualquer sistema compatível com Postgres.

Pré-requisitos

Antes de começar, certifique-se de que:

  • pg_dump e pg_restore estão instalados. Você pode verificar executando pg_dump -V.
  • Você está usando as versões mais recentes de pg_dump e pg_restore.
  • A versão do cliente corresponde à versão do Postgres do seu projeto Lakebase.
  • Um projeto Lakebase com uma função Postgres configurada
nota

Recomendamos o uso da autenticação de senha nativa do Postgres ao usar pg_dump e pg_restore. As senhas nativas do Postgres não expiram a cada hora como os tokens OAuth, o que as torna mais adequadas para operações de backup e restauração. Consulte a Visão geral da autenticação para obter detalhes sobre os métodos de autenticação.

Instale pg_dump e pg_restore.

Se você não tiver os utilitários pg_dump e pg_restore instalados localmente, instale-os em sua plataforma preferida.

Windows: Instale o PostgreSQL usando o instalador oficial do postgresql.org. Os utilitários pg_dump e pg_restore são instalados por default e podem ser encontrados no diretório bin PostgreSQL .

macOS: Instale o PostgreSQL usando o Homebrew:

Bash
brew install postgresql

Linux (Ubuntu/Debian):

Bash
sudo apt-get install postgresql-client

Docker: execução pg_dump usando um contêiner Postgres Docker :

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

Crie um backup com pg_dump

Para criar um backup do banco de dados localmente:

  1. Acesse o aplicativo Lakebase clicando no seletor de aplicativos no canto superior direito da sua workspace.

  2. Selecione seu projeto.

  3. Clique em Conectar para abrir a janela de conexão com o banco de dados.

  4. Selecione uma função do Postgres na dropdown (recomendamos usar uma função nativa do Postgres com autenticação por senha).

  5. Copie as cadeias de conexão.

    Suas strings de conexão são semelhantes a estas:

    postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
  6. Crie um backup do seu banco de dados Lakebase executando o seguinte comando pg_dump :

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

    Após adicionar as strings de conexão do seu banco de dados Lakebase e o nome do arquivo de despejo, seu comando ficará assim:

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

argumentos do comando pg_dump

O comando pg_dump inclui os seguintes argumentos:

  • -Fc: Envia a saída para um arquivo de formato personalizado adequado para entrada em pg_restore.
  • -v: execução pg_dump em modo detalhado, permitindo monitorar o que acontece durante as operações de dump.
  • -dEspecifica as strings de conexão para seu banco de dados Lakebase.
  • -f <dump_file_name>: O nome do arquivo de despejo. Pode ser qualquer nome que você escolher (por exemplo, mydumpfile.bak).

Restaure um backup com pg_restore

Para restaurar um banco de dados usando as utilidades pg_restore a partir de um arquivo de backup criado usando pg_dump:

  1. Crie um novo projeto no Lakebase.

  2. Crie um banco de dados com o mesmo nome daquele que você fez backup.

  3. Acesse o aplicativo Lakebase clicando no seletor de aplicativos no canto superior direito da sua workspace.

  4. Selecione seu projeto e clique em Conectar para abrir a janela de conexão com o banco de dados.

  5. Selecione uma função do Postgres na dropdown (recomendamos usar uma função nativa do Postgres com autenticação por senha).

  6. Copie as cadeias de conexão.

    Suas strings de conexão são semelhantes a estas:

    postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require
  7. Restaure seus dados para o banco de dados de destino no Lakebase com pg_restore:

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

    Após adicionar as strings de conexão do seu banco de dados Lakebase e o nome do arquivo de despejo, seu comando ficará assim:

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

argumentos do comando pg_restore

O comando pg_restore inclui os seguintes argumentos:

  • -v: execução pg_restore em modo detalhado, permitindo monitorar o que acontece durante as operações de restauração.
  • -d: Especifica o banco de dados Lakebase ao qual se conectar. O valor é uma string de conexão com o banco de dados Lakebase.
  • <dump_file_name>: O nome do arquivo de despejo que você criou com pg_dump.

Exemplo completo

O exemplo a seguir mostra como os dados são extraídos de um banco de dados de origem chamado databricks_postgres em um projeto Lakebase e restaurados em um banco de dados databricks_postgres em outro projeto Lakebase.

Antes de realizar este procedimento:

  • Um novo projeto Lakebase foi criado para o banco de dados de destino (que inclui o banco de dados default databricks_postgres ).
  • Foram coletadas as strings de conexão para os bancos de dados de origem e destino:
    • Fonte: postgresql://role_name:password@ep-source-abc-123.databricks.com/databricks_postgres?sslmode=require
    • Destino: postgresql://role_name:password@ep-destination-xyz-456.databricks.com/databricks_postgres?sslmode=require

Procedimento de backup e restauração:

Bash
# 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