Skip to main content

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
  • Execute os backups semanalmente ou antes de qualquer atualização
  • Tempo estimado: 5 a 10 minutos
  • Em caso de dúvidas, contate o suporte Link Tecnologia

.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 lgs-backup:$(date +%Y%m%d)
docker save -o backups/lgs-backup-$(date +%Y%m%d).tar lgs-backup:$(date +%Y%m%d)

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-20241202.yml (configuração do LGS)
  • lgs-backup-20241202.tar (imagem do sistema LGS)

📁 ~/Dockers/postgres/backups/

  • docker-compose-20241202.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