Backup MySQL

Boa tarde galerinha, tudo bom?

Qual a melhor forma para backup automático das bases de dados de um banco MySQL?
Salvar a pasta do mysql ou via script e gerar o sql?
Ou alguém tem alguma outra solução melhor?

Att,

Se o seu banco está em cloud, use o auto serviço de backup já ofertado pelo mesmo!

Se você precisa gerenciar o backup em ambite on premisse, um dump da base acredito ser suficiente!

Ponto importante para on premisse, replique o dump para mais de uma máquina, garanta redundância!

Ponto importante para ambos, periodicamente faça restore do dump em uma base de teste para validar que seus backups estão íntegros, para isso, é legal ter uma pipeline automatizada.

Existe alguma configuração no comando dump para não bloquear o banco enquando o backup é feito. Tenho alguns bancos muito grande, que demoram 10 minutos ou mais para finalizar o backup.

Como eu não trabalho com isso a bastante tempo, não saberia te dizer com certeza qual seria a configuração ideal para o seu cenário, você pode dar uma olhada na documentação oficial na parte de lock: https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html#option_mysqldump_lock-tables

Seria interessante você criar uma pequena réplica e fazer alguns testes mais próximos do seu cenário real!

Você pode usar o mysqldump e o gzip para comprimir os seus backups. Você pode colocar o comando de backup do Agendador de tarefas do seu sistema operacional. Agora se você usa algum serviço de banco de dados em nuvem, olhe na documentação do seu provedor de serviços, pois quase todos têm uma solução de backup pronta e confiável.