Como fazer BACKUP e restauração do sistema completo e do banco de dados?
IMPORTANTE: Leia antes de começar
- Este procedimento cria cópias de segurança do seu sistema Fokus
- É necessário que você tenha conhecimento técnico para lidar com os procedimentos abaixo
- Execute os backups semanalmente ou antes de qualquer atualização
- Tempo estimado: 10 a 30 minutos
- Em caso de dúvidas, contate o suporte Link Tecnologia
- É necessário que seiga a risca todas as recomendações
- A Link disponibiliza um serviço de backup automatizado para que este processo não precise ser feito manualmente. Para mais informaçoes consulte nossa equipe comercial.
ATENÇÃO: Para backup apenas do BANCO DE DADOS, execute somente o passo 2 deste manual.
.1 BACKUP DO SISTEMA LGS (Aplicação)
Passo 1: Entrar na pasta do LGS
cd ~/Dockers/lgs
Passo 2: Criar pasta para os backups
mkdir -p backups
Passo 3: Copiar o arquivo docker-compose.yml
cp docker-compose.yml backups/docker-compose.yml
Passo 4: Verificar o nome do container LGS
docker ps
Procure pelo container que tem "lgs" no nome. Exemplo: lgs-lgs-1
Passo 5: Salvar a imagem do container
docker commit lgs-lgs-1 linktecnologia/garagem:latest
docker save -o backups/lgs-backup-$(date +%Y%m%d).tar linktecnologia/garagem:latest
Passo 6: Verificar se os arquivos foram criados
ls -lh backups/
Você deve ver 2 arquivos: o .yml e o .tar
.2 BACKUP DO BANCO DE DADOS (PostgreSQL)
Passo 1: Entrar na pasta do PostgreSQL
cd ~/Dockers/postgres
Passo 2: Criar pasta para os backups
mkdir -p backups
Passo 3: Copiar o arquivo docker-compose.yml
cp docker-compose.yml backups/docker-compose.yml
Passo 4: Verificar o nome do container PostgreSQL
docker ps
Procure pelo container que tem "postgres" no nome. Exemplo: postgres-postgres-1
Passo 5: Fazer backup do banco de dados
docker exec -i postgres-postgres-1 pg_dump -U postgres -d lgs > backups/lgs-database-$(date +%Y%m%d).sql
Explicação de cada parte:
| Parte do Comando | O que faz | Explicação |
|---|---|---|
docker exec -i |
Executa um comando dentro do container | -i mantém a entrada aberta para capturar os dados |
postgres-postgres-1 |
Nome do container PostgreSQL | Nome do seu container (veja com docker ps) |
pg_dump |
Ferramenta de backup do PostgreSQL | Exporta todo o conteúdo do banco de dados |
-U postgres |
Usuário do banco de dados | Usuário: postgres (usuário administrador padrão) |
-d lgs |
Nome do banco de dados | Banco: lgs (banco de dados do sistema Fokus) |
> |
Redireciona a saída | Salva o resultado em um arquivo |
backups/lgs-database-$(date +%Y%m%d).sql |
Arquivo de destino | Cria arquivo com a data atual (ex: lgs-database-20241202.sql) |
IMPORTANTE: Ajuste conforme seu sistema
Se no seu sistema o usuário e banco são diferentes, ajuste o comando:
docker exec -i <NOME_DO_CONTAINER> pg_dump -U <USUARIO> -d <BANCO> > backups/backup-$(date +%Y%m%d).sql
Caso necessário, consulte o usuário e senha no arquivo 'docker-compose.yml, na pasta do LGS.
Passo 6: Verificar se os arquivos foram criados
ls -lh backups/
Você deve ver 2 arquivos: o .yml e o .sql
.3 RESUMO - O QUE FOI CRIADO
Após seguir todos os passos, você terá:
📁 ~/Dockers/lgs/backups/
docker-compose.yml(configuração do LGS)lgs-backup-20241202.tar(imagem do sistema LGS)
📁 ~/Dockers/postgres/backups/
docker-compose.yml(configuração do PostgreSQL)lgs-database-20241202.sql(banco de dados completo)
.4 VERIFICAR ESPAÇO EM DISCO
Antes de fazer backup, verifique se há espaço suficiente:
df -h
Recomendado: Manter pelo menos 50GB livres no disco
.5 RESTAURAÇÃO DO SISTEMA
ATENÇÃO: Só faça restauração se tiver conhecimento sobre docker e bancos de dados
PRÉ-REQUISITOS
Antes de começar, certifique-se que você tem:
- Os arquivos de backup salvos (em pendrive, HD externo, nuvem, etc)
- Docker e Docker Compose instalados na máquina nova
PASSO 1: PREPARAR O AMBIENTE
1.1. Criar a estrutura de pastas:
mkdir -p ~/Dockers/lgs
mkdir -p ~/Dockers/postgres
1.2. Copiar os arquivos de backup para a máquina:
- Coloque a imagem do LGS dentro de: ~/Dockers/lgs, junto com seu 'docker-compose.yml'.
- Coloque o backup do banco dentro de: ~/Dockers/postgres, junto com seu 'docker-compose.yml'.
1.3. Verificar se os arquivos foram copiados:
ls -lh ~/Dockers/lgs/
ls -lh ~/Dockers/postgres/
Você deve ver os arquivos .tar, .yml e .sql
PASSO 2: RESTAURAR O POSTGRESQL
2.1. Entrar na pasta do PostgreSQL:
cd ~/Dockers/postgres
2.3. Iniciar o PostgreSQL:
docker-compose up -d
2.4. Aguardar o PostgreSQL iniciar (cerca de 10 segundos).
2.5. Verificar o nome do container PostgreSQL:
docker ps | grep postgres
Anote o nome do container. Exemplo: postgres-postgres-1
2.6. Criar o banco de dados:
docker exec -it postgres-postgres-1 psql -U postgres -c "CREATE DATABASE lgs OWNER postgres;"
docker exec -it postgres-postgres-1 psql -U postgres -c "GRANT ALL ON SCHEMA public TO postgres;" lgs
docker exec -it postgres-postgres-1 psql -U postgres -c "ALTER SCHEMA public OWNER TO postgres;" lgs
IMPORTANTE: Aqui estamos criando o banco 'lgs' com owner user 'postgres' padrão. Caso queira criar um usuario diferente, altere a identificação.
Garanta que no 'docker-compose.yml do LGS, a variável DATABASE_URL esteja com mesmo usuário e senha criados aqui, para que o sistema se conecte corretamente ao DB.
2.7. Restaurar o backup do banco:
docker exec -i postgres-postgres-1 psql -U postgres -d lgs < lgs-database-20241202.sql
Ajuste o nome do arquivo para a data do seu backup
Este processo pode demorar alguns minutos dependendo do tamanho do banco
2.8. Verificar se o banco foi restaurado:
docker exec -it postgres-postgres-1 psql -U postgres -d lgs -c "\dt"
Você deve ver uma lista de tabelas do sistema Fokus
PASSO 3: RESTAURAR O SISTEMA LGS
3.1. Entrar na pasta do LGS:
cd ~/Dockers/lgs
3.2. Carregar a imagem Docker do backup:
docker load -i lgs-backup-20241202.tar
Ajuste o nome do arquivo para a data do seu backup
Este processo pode demorar alguns minutos
3.4. Verificar se a imagem foi carregada:
docker images | grep garagem
Você deve ver uma imagem com o nome linktecnologia/garagem e a data
3.5. Verifique o docker-compose.yml para usar a imagem
nano docker-compose.yml
Procure pela linha image: e garanta que esteja:
image: linktecnologia/garagem
Pressione CTRL+O para salvar e CTRL+X para sair
3.6. Verificar a conexão com PostgreSQL no docker-compose.yml:
Abra o arquivo:
nano docker-compose.yml
Certifique-se que a variável DATABASE_URL está apontando para o PostgreSQL:
environment:
DATABASE_URL: "ecto://postgres:SENHA@postgres-postgres-1:5432/lgs"
Ajuste:
postgres→ usuário do bancoSENHA→ senha do bancopostgres-postgres-1→ nome do container PostgreSQLlgs→ nome do banco
Pressione CTRL+O para salvar e CTRL+X para sair
3.7. Iniciar o sistema LGS:
docker-compose up -d
PASSO 4: VERIFICAÇÕES FINAIS
4.1. Verificar se todos os containers estão rodando:
docker ps
```
Você deve ver:
- Container PostgreSQL (status: Up)
- Container LGS (status: Up)
### **4.2. Testar acesso ao sistema:**
Abra o navegador e acesse:
```
http://IP_DA_MAQUINA:4000
```
ou
```
http://localhost:4000
IMPORTANTE: Mantenha definido o mesmo IP da máquina servidor anterior.
Caso tenha alterado o IP, altere-o nas variáveis PHX_HOST_I e PHX_HOST_E do 'docker-compose.yml' do LGS
4.3. Verificar conectividade dos terminais:
Acesse o sistema Fokus e verifique:
- Terminais de entrada conectados
- Terminais de saída conectados
- Caixas conectados
- ATMs conectados
PROBLEMAS COMUNS NA RESTAURAÇÃO
Problema 1: "Connection refused" ao restaurar banco
Causa: PostgreSQL ainda não terminou de iniciar
# Aguarde 30 segundos e tente novamente
sleep 30
docker exec -i postgres-postgres-1 psql -U postgres -d lgs < lgs-database-20241202.sql
Problema 2: "permission denied for schema public"
Causa: Permissões do usuário não foram configuradas
docker exec -it postgres-postgres-1 psql -U postgres lgs
Dentro do PostgreSQL:
GRANT ALL ON SCHEMA public TO postgres;
ALTER SCHEMA public OWNER TO postgres;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO postgres;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO postgres;
\q
Problema 3: LGS não conecta no PostgreSQL
Causa: Nome do container ou credenciais incorretas
Solução:
- Verifique o nome do container PostgreSQL:
docker ps | grep postgres
- Edite o docker-compose.yml do LGS:
cd ~/Dockers/lgs
nano docker-compose.yml
- Ajuste a linha
DATABASE_URLcom os dados corretos
Problema 4: "docker: command not found"
Causa: Docker não está instalado
Solução: Instale o Docker:
# Ubuntu/Debian
sudo apt update
sudo apt install docker.io docker-compose -y
sudo usermod -aG docker $USER
# Reinicie a sessão (logout/login)