Você precisa de um bloqueio completo do banco de dados para fazer backup de um (s) maior (s) banco (s) de dados de forma consistente.
O link do manual diz TABELAS DE FLUSH COM BLOQUEIO DE LEITURA está correto para instantâneos do ZFS especificamente.
Making Backups Using a File System Snapshot
If you are using a Veritas file system, you can make a backup like
this:
- From a client program, execute
FLUSH TABLES WITH READ LOCK
.
- From another shell, execute mount
vxfs
snapshot.
- From the first client, execute
UNLOCK TABLES
.
- Copy files from the snapshot.
- Unmount the snapshot.
Similar snapshot capabilities may be available in other file systems,
such as LVM or ZFS.
É meio ridículo que eles tenham deixado de fora o fato de que você precisa de FLUSH TABLES table_a, table_b, table_c FOR EXPORT
para InnoDB nessas instruções. Também é estúpido ter que especificar cada tabela assim. Mas, como diz a EEAA, você pode gerar uma lista de tabelas ao iniciar o backup com bastante facilidade.
Quanto a manter o bloqueio, você deve manter a conexão do banco de dados ativa durante a execução da captura instantânea
Geralmente eu usaria algo como Perl ou outra linguagem de programação que pudesse se conectar, bloquear o banco de dados e, ao mesmo tempo, manter a conexão do banco de dados, tirar o instantâneo, depois desbloquear e desconectar. Não é complexo. Eu aposto que existem ferramentas que já fazem isso, mas escrever uma é fácil.
Eu digo fácil, não complexo, etc. algumas vezes. Eu estou supondo que você tenha alguma programação básica ou boas habilidades de script.