fazer backup postgresql no docker

1. fazer backup postgresql no docker

FRANCISCO SALES
netocazuza

(usa Ubuntu)

Enviado em 20/10/2018 - 21:03h

Tenho um servidor de um sistema, com linux ubuntu 16.04 instalado, funcionando tudo certinho. O sistema usa docker 18 e postgresql 9.5. Preciso fazer um backup e não estou conseguindo, certamente por conta do docker que usa uma dinâmica diferente. Vou narrar aqui o passo a passo, pra que alguém me indique um caminho diverso, e que funcione, pois da forma como tô fazeendo, não tá funcionando. Só quero acessar o postgres, copiar todo o banco de dados, e salvar num outro local.
1 - Primeiro eu acesso o servidor , e depois a instância do do postgres, com o comando:
sudo docker-compose exec postgres_95 bash 

2- No bash do docker, digito diretamente o comando abaixo:
[email protected]:/#
pg_dump -v -F p -h postgres -U postgres > backup20102018.sql 

E retorna o seguinte código:
pg_dump: [archiver (db)] connection to database "postgres" failed: could not translate host name "postgres" to address: Name or service not known 

3 - Então tento de outra forma, acessando primeiro o postgres com o comando:
[email protected]:/#
su - postgres 

e na sequência, digito o mesmo comando:
$
pg_dump -v -F p -h postgres -U postgres > backup20102018.sql 

e também não dá certo, retornando, o seguinte código:
-su: 1: cannot create backup20102018.sql: Permission denied 

Ou seja, estou tentando de duas formas, e não tá dando certo. Imagino que seja o docker que exija mais alguma coisa, que eu não estou sabendo.



  


2. Re: fazer backup postgresql no docker

wellington joão da Silva
wellingtonjoao

(usa Manjaro Linux)

Enviado em 23/10/2018 - 00:00h

Backup:
docker exec -t -u postgres your-db-container pg_dumpall -c > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql

Restore:
cat your_dump.sql | docker exec -i your-db-container psql -U postgres



netocazuza escreveu:

Tenho um servidor de um sistema, com linux ubuntu 16.04 instalado, funcionando tudo certinho. O sistema usa docker 18 e postgresql 9.5. Preciso fazer um backup e não estou conseguindo, certamente por conta do docker que usa uma dinâmica diferente. Vou narrar aqui o passo a passo, pra que alguém me indique um caminho diverso, e que funcione, pois da forma como tô fazeendo, não tá funcionando. Só quero acessar o postgres, copiar todo o banco de dados, e salvar num outro local.
1 - Primeiro eu acesso o servidor , e depois a instância do do postgres, com o comando:
sudo docker-compose exec postgres_95 bash 

2- No bash do docker, digito diretamente o comando abaixo:
[email protected]:/#
pg_dump -v -F p -h postgres -U postgres > backup20102018.sql 

E retorna o seguinte código:
pg_dump: [archiver (db)] connection to database "postgres" failed: could not translate host name "postgres" to address: Name or service not known 

3 - Então tento de outra forma, acessando primeiro o postgres com o comando:
[email protected]:/#
su - postgres 

e na sequência, digito o mesmo comando:
$
pg_dump -v -F p -h postgres -U postgres > backup20102018.sql 

e também não dá certo, retornando, o seguinte código:
-su: 1: cannot create backup20102018.sql: Permission denied 

Ou seja, estou tentando de duas formas, e não tá dando certo. Imagino que seja o docker que exija mais alguma coisa, que eu não estou sabendo.





3. retorno comando.

FRANCISCO SALES
netocazuza

(usa Ubuntu)

Enviado em 09/11/2018 - 12:53h

Bom dia amigo. Fiz o seu comando (com as devidas adaptações) e deu o seguinte retorno:
[email protected]:~/i-educar$ sudo cat /home/pc2/Downloads/backupIeducar09112018.backup | docker-compose exec -i postgres_95 psql -U postgres
Execute a command in a running container

Usage: exec [options] [-e KEY=VAL...] SERVICE COMMAND [ARGS...]

Options:
-d, --detach Detached mode: Run command in the background.
--privileged Give extended privileges to the process.
-u, --user USER Run the command as this user.
-T Disable pseudo-tty allocation. By default `docker-compose exec`
allocates a TTY.
--index=index index of the container if there are multiple
instances of a service [default: 1]
-e, --env KEY=VAL Set environment variables (can be used multiple times,
not supported in API < 1.25)
-w, --workdir DIR Path to workdir directory for this command.


Onde posso ter errado? Pode ser que na hora de fazer as adaptações, tenha cometido algum deslize.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts