Noções básicas de backup

Esta página aborda as estratégias de backup mais populares para a plataforma Navixy. Presume-se que todos os componentes estejam executando em um único servidor e que o banco de dados esteja sendo executado no mesmo servidor ou em um servidor separado.

A plataforma consiste nos seguintes componentes, listados pelo seu caminho de instalação padrão:

Aplicação

Backend:

  • /home/java/api-server

  • /home/java/sms-server

  • /home/java/tcp-server

Frontend:

  • /var/www/panel-v2

  • /var/www/pro-ui

Banco de dados

Os seguintes bancos de dados MySQL são usados pelo Navixy:

  • google

  • tracking

Se sua plataforma Navixy estiver executando em uma VM em uma plataforma de nuvem, você pode criar snapshots periódicos da máquina e, adicionalmente, realizar um dump do MySQL. A criação de um dump é necessária para manter a consistência do banco de dados. Você pode encontrar mais informações sobre mysqldump aqui:

https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html

Ambos os bancos de dados "google" e "tracking" devem ser feitos backup. Você pode criar um mysqldump em um banco de dados em execução sem bloquear tabelas e sem interromper o serviço usando --single-transaction opção.

Se você executa o Navixy em um servidor físico, você pode fazer backup dos componentes apenas uma vez após a instalação e depois uma vez após cada atualização da plataforma, assim você sempre terá a versão mais recente dos componentes backend e frontend em backup. Então, você só precisa fazer backups periódicos do banco de dados usando mysqldump.

Abaixo está um exemplo de script bash que cria dumps MySQL de ambos os bancos de dados, passa-os pelo gzip para reduzir o tamanho e, em seguida, exclui todos os backups no diretório de backup com mais de 1 ano. Sinta-se à vontade para modificar o script de acordo com suas necessidades.

#!/bin/bash

bak_dir=/home/navixy-backups
sql_user=root
sql_passwd=rootpasswd
now=$(date +"%Y-%m-%d")

mysqldump -u$sql_user -p$sql_passwd --single-transaction google | gzip > $bak_dir/google-bak-$now.sql.gz
mysqldump -u$sql_user -p$sql_passwd --single-transaction tracking | gzip > $bak_dir/tracking-bak-$now.sql.gz

find $bak_dir -maxdepth 1 -type f \( -name "google-bak-*.sql.gz" -o -name "tracking-bak-*.sql.gz" \) -mtime +365 -delete

Você também pode usar soluções de terceiros para backups MySQL, por exemplo: https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html. É uma solução comprovada que oferece opções avançadas de backup de banco de dados. É testada com sucesso e usada por muitos engenheiros de sistemas em instâncias On-premise. Para encontrar a prática recomendada de backup MySQL recomendada pela Navixy, por favor consulte esta página.

Backup da chave de licença

Ao planejar backups para a plataforma Navixy, um aspecto importante a considerar é a chave de licença. A chave (também conhecida como fingerprint) é atualizada contra nosso servidor de licenças aproximadamente uma vez por semana. Isso significa que, se você restaurar um backup feito antes da última atualização da chave, a plataforma não funcionará e será necessário contatar nosso suporte técnico para obter a nova chave.

Para evitar isso, recomendamos fazer backup da chave de licença separadamente do backup principal. A chave pode ser selecionada do banco de dados usando a seguinte consulta SQL:

SELECT value FROM google.variables WHERE var='fingerprint';

O resultado é uma string de texto simples que pode ser salva em um arquivo ou em outro banco de dados. Recomendamos fazer backup da chave pelo menos 2–3 vezes ao dia.

Se for necessário restaurar a plataforma a partir do backup, você só precisa gravar a chave de volta no banco de dados, reiniciar os serviços e a plataforma deverá começar a funcionar:

UPDATE google.variables SET value='<your_key>' WHERE var='fingerprint';

Atualizado

Isto foi útil?