MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Movendo-se para o backup do MariaDB


Em minha postagem anterior no blog que era sobre atualizar para a versão mais recente do Jira junto com a versão mais recente do MariaDB, mencionei brevemente que, ao atualizar para o MariaDB Server 10.3, deve-se observar como os backups são feitos. Com o MariaDB Server 10.3 vem o MariaDB Backup, que suporta os mais novos recursos do MariaDB Server. Também está disponível em todas as mesmas plataformas do MariaDB Server e é distribuído junto com o servidor.

Se você estiver fazendo backup com o XtraBackup e tentar executar esses mesmos comandos no MariaDB Server 10.3, receberá uma mensagem de erro:

$ innobackupex ~/backup_to_dir --user=username --password=password
...
InnoDB: Unsupported redo log format. The redo log was created with MariaDB 10.3.9.


A primeira frase da última mensagem é sobre o que se trata. O XtraBackup não entende o(s) arquivo(s) no redo log da versão 10.3. Observe que usamos uma versão antiga do XtraBackup e é por isso que o comando ainda é innobackupex .

Por este e alguns outros motivos mencionados abaixo, o MariaDB Server, agora vem com o MariaDB Backup que suporta o novo formato de redo log. Com o MariaDB Backup, você tem a mesma funcionalidade que está acostumado com o XtraBackup, mas com suporte para o formato de redo log aprimorado e suporte para criptografia de dados em repouso do MariaDB. Outro aspecto muito solicitado é que o MariaDB Backup também está disponível para Windows, o que o XtraBackup não está. Se você estiver interessado em saber mais sobre a alteração do log de redo, leia isto.

No início deste post, mencionei que recentemente atualizamos o Jira para a versão mais recente e o MariaDB Server para 10.3. Nesse ambiente mais antigo, usamos o XtraBackup. Para obter backups do MariaDB Server 10.3, tivemos que atualizar nossos scripts de backup para usar o MariaDB Backup.

Depois de mudar para o MariaDB Backup, o comando de backup fica assim:

$ mariabackup --backup --target-dir /backup/to/dir --user=username --password=password --parallel=4

Tivemos que mudar o próprio comando de innobackupex para mariabackup e adicionamos duas opções; –backup dizer a mariabackup que queremos que ele crie um backup e –target-dir para especificar que o diretório fornecido é onde os arquivos de backup devem ir. Deve-se notar que se estivéssemos usando uma versão mais recente do XtraBackup as opções de linha de comando seriam completamente compatíveis com o XtraBackup, então a única coisa a mudar seria o próprio comando de xtrabackup para mariabackup .

Para ter certeza de que o backup funciona, vamos copiá-lo para outro servidor e tentar restaurá-lo lá. Para restaurar um backup, primeiro temos que prepará-lo:

$ mariabackup --prepare --target-dir full-2018-09-11_09-38-32

Observe que tenho um backup completo de uma instância do MariaDB Server que substituirá qualquer coisa que existiria na instância em que estou restaurando. Portanto, vou parar o servidor e remover todos os arquivos de dados que ele contém.

$ sudo service mariadb stop
$ sudo rm -rf /var/lib/mysql/*


Agora os arquivos de backup podem ser colocados no diretório de dados desta instância do servidor. Isso deve ser feito com mariabackup para que seja feito corretamente. Ele faz algumas coisas relacionadas ao formato de redo log explicado acima.

$ sudo mariabackup --copy-back --target-dir full-2018-09-11_09-38-32

Verifique se as permissões estão corretas. No meu caso, usuário e grupo normais estão em uso. Em seguida, inicie o servidor.

$ sudo chown mysql:mysql /var/lib/mysql -R
$ sudo service mariadb start


Vamos então nos conectar ao servidor e verificar se ele possui os dados que deveria ter. Decidi consultar o número máximo de problemas no Jira.

# connect to mariadb
$ mysql -uusername -ppassword
# query the database
MariaDB [(none)]> USE jiradb
MariaDB [jiradb]> SELECT MAX(issuenum) FROM jiraissue;


Voilá! Agora temos backups funcionando no MariaDB Server 10.3.