É possível fazer um backup íntegro(lógico e/ou bruto) sem parar o serviço ou fazer um LOCK DATABASE?
É possível fazer um backup íntegro(lógico e/ou bruto) sem parar o serviço ou fazer um LOCK DATABASE?
Isso mesmo Leonardo. Completamente possível.
A única questão é que o servidor pode ficar lento durante a realização desse backup, podendo afetar os sistemas.
Pode ocorrer também que o backup não seja tão fiel quanto a base, pois ainda podem ocorrer inserções durante o processo de backup.
Em relação aos pontos citados pelo Rodrigo, os 2 são relavantes.
Em relação à lentidão do servidor, normalmente os SGBD utilizam uma parte dos processadores para o backup deixando os outros para outros processos. Então é possível sentir alguma lentidão dependendo da máquina e da atividade que esteja sendo feito no momento. Mas, de modo algum, a máquina vai parar por conta do backup e não precisa fazer uma parada para manutenção.
Em relação à fidelidade dos dados, sempre é uma boa prática fazer essa operação de backup fora do expediente de forma automática seja integral ou incremental.
Abraços,
Entendi Carlos...
Antes de mais nada, obrigado pela resposta...
Mas, considerando que o sistema fica 24h no ar; e que um backup pode tranquilamente durar horas, qual a forma correta de fazer um backup íntegro?
Eu tenho que fazer um "lock database for backup"?
Esse lock paralisa as atividades do banco completamente?
Citando como acontece no postgresql, enquanto o backup está sendo feito, outro processo fica capturando as alterações no banco. Ao final, ele faz um pacote e fecha um backup íntegro.
Acabo de ver isso, que pode dar alguma direção...
"Making a Hot Backup with MySQL Enterprise Backup ... ... Backing up the physical database files makes restore much faster than logical techniques such as the mysqldump command"
Se for fazer um backup lógico, um ponto importante é escolher correto o Engine das tabelas... "For InnoDB tables, it is possible to perform an online backup that takes no locks on tables using the --single-transaction option to mysqldump."
Pensando num banco com alguns terabytes, preciso de um solução de backup com cópia de arquivos, porque é mais rápida.
"Making Backups Using Replicas"... Tem a opção de criar uma réplica e fazer backup nela. Resolve 2 problemas: pode parar o banco e não vai ocupar a CPU do master. "If you have performance problems with a server while making backups, one strategy that can help is to set up replication and perform backups on the replica rather than on the source. "
"Making Incremental Backups by Enabling the Binary Log"... interessante...
"Making Backups Using a File System Snapshot"... talvez a minha opção seja essa.
Fonte: https://dev.mysql.com/doc/refman/8.0/en/backup-methods.html