Postgres pg_dump e pg_restore
Beta
A partir de 15 de junho, o Lakebase está disponível em Beta no GCP. Consulte Disponibilidade regional para regiões compatíveis.
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_dumpepg_restoreestão instalados. Você pode verificar executandopg_dump -V.- Você está usando as versões mais recentes de
pg_dumpepg_restore. - A versão do cliente corresponde à versão do Postgres do seu projeto Lakebase.
- Um projeto Lakebase com uma função Postgres configurada
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:
brew install postgresql
Linux (Ubuntu/Debian):
sudo apt-get install postgresql-client
Docker:
execução pg_dump usando um contêiner Postgres Docker :
docker run --rm postgres:17 pg_dump --version
Crie um backup com pg_dump
Para criar um backup do banco de dados localmente:
-
Acesse o aplicativo Lakebase clicando no seletor de aplicativos no canto superior direito da sua workspace.
-
Selecione seu projeto.
-
Clique em Conectar para abrir a janela de conexão com o banco de dados.
-
Selecione uma função do Postgres na dropdown (recomendamos usar uma função nativa do Postgres com autenticação por senha).
-
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 -
Crie um backup do seu banco de dados Lakebase executando o seguinte comando
pg_dump:Bashpg_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:
Bashpg_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 empg_restore.-v: execuçãopg_dumpem 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:
-
Crie um novo projeto no Lakebase.
-
Crie um banco de dados com o mesmo nome daquele que você fez backup.
-
Acesse o aplicativo Lakebase clicando no seletor de aplicativos no canto superior direito da sua workspace.
-
Selecione seu projeto e clique em Conectar para abrir a janela de conexão com o banco de dados.
-
Selecione uma função do Postgres na dropdown (recomendamos usar uma função nativa do Postgres com autenticação por senha).
-
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 -
Restaure seus dados para o banco de dados de destino no Lakebase com
pg_restore:Bashpg_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:
Bashpg_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çãopg_restoreem 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 compg_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
- Fonte:
Procedimento de backup e restauração:
# 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