Pular para o conteúdo principal

Postgres pg_dump e pg_restore

info

Beta

O Lakebase Postgres (beta com escalonamento automático) é a próxima versão do Lakebase, disponível apenas para avaliação. Para cargas de trabalho de produção, utilize a versão de pré-visualização pública do Lakebase. Consulte a seção "Como escolher entre as versões" para entender qual versão é a mais adequada para você.

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 de banco de dados 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 o seu projeto de banco de dados.

  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. Desmarque a opção de agrupamento de conexões . Você precisa de uma string de conexão direta, não de uma string de pool.

    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 o seu projeto de banco de dados 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. Desmarque a opção de agrupamento de conexões . Você precisa de uma string de conexão direta, não de uma string de pool.

    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