Preciso criar um dump de banco de dados Postgres usando pg_dump. Banco de dados localizado no pod do Kubernetes. Estou tentando obter o dump no formato de diretório, não apenas em um único arquivo .sql. Mas não entendo como posso especificar um diretório.
Quando tento este comando:
kubectl exec patroni-0 -- bash -c "pg_dump -U username db_name --format=d" > db_dump_folder
Recebi um erro:
pg_dump: [directory archiver] no output directory specified
command terminated with exit code 1
Desde já, obrigado!
Ao usar
pg_dump
para criar um dump de banco de dados em formato de diretório, você precisa especificar um diretório de saída no qualpg_dump
possa gravar diretamente. O comando que você usou tentou redirecionar stdout para um diretório, e não é assim quepg_dump
funciona o formato de diretório. Em vez disso, você precisa especificar o diretório usando a-f
opção ou--file
opção diretamente em seupg_dump
comando.No entanto, como o dump precisa ser feito dentro de um pod do Kubernetes, o diretório na sua máquina local onde você deseja que o dump seja armazenado deve estar acessível para o pod ou você pode armazená-lo no pod e copiá-lo para o seu local.
Para a segunda opção, você pode fazer desta forma:
pg_dump
dentro do pod , especificando um diretório temporário no pod para o dump:Espero que isto ajude.