A seguinte configuração se aplica:
- Cluster galera de 3 nós no docker
- contêiner de backup que deve executar o mariabackup para obter os dados do cluster galera
- rede está bem. container de backup pode pingar galera
- mariadb/mariabackup versão 10.3
- o container de backup só tem o mariabackup instalado.
O comando que eu usei
mariabackup --backup --host=<service_name> --port=3306 --user=root --password=<pass> --target-dir=/backup
Ao tentar fazer backup do galera-cluster de dentro do contêiner de backup, recebo o seguinte erro
00] 2019-09-15 23:38:34 Connecting to MySQL server host: mdb_mariadb, user: root, password: set, port: 3306, socket: /var/run/mysqld/mysqld.sock
[00] 2019-09-15 23:38:34 Using server version 10.3.18-MariaDB-1:10.3.18+maria~bionic-log
[00] 2019-09-15 23:38:34 Warning: option 'datadir' points to nonexistent directory '/var/lib/mysql/'
[00] 2019-09-15 23:38:34 Warning: MySQL variable 'datadir' points to nonexistent directory '/var/lib/mysql/'
[00] 2019-09-15 23:38:34 Warning: option 'datadir' has different values:
'/var/lib/mysql/' in defaults file
'/var/lib/mysql/' in SHOW VARIABLES
mariabackup based on MariaDB server 10.3.18-MariaDB debian-linux-gnu (x86_64)
[00] 2019-09-15 23:38:34 uses posix_fadvise().
mariabackup: Can't change dir to '/var/lib/mysql/' (Errcode: 2 "No such file or directory")
[00] 2019-09-15 23:38:34 my_setwd() failed , /var/lib/mysql/
O que eu tentei.
- pesquisando várias essências para pistas
- pesquisando os scripts mariadb fornecidos pela instalação do servidor
- tentando combinações de opções diferentes, mas sempre o mesmo erro.
Pergunta:
- Alguém já fez backups remotos e pode me dizer como você conseguiu?
- A abordagem está errada e existe uma maneira melhor de fazer backups dinâmicos uma vez por dia e incrementais durante o dia?
Abordagem errada -
mariabackup
não foi projetado para trabalhar remotamente. Consulte também MDEV-15075 .Portanto, você precisa executar
mariabackup
localmente em um dos nós do cluster.Para evitar que o backup reduza a velocidade do cluster, você pode impedir que o nó acione o Flow Control e permitir que ele fique atrás dos outros nós fazendo:
Quando o backup estiver concluído, você poderá fazer:
(Consulte wsrep_desync na base de conhecimento do MariaDB.)
Obviamente, não direcione nenhum tráfego de banco de dados para o nó enquanto estiver executando o backup.