Meu banco de dados usa InnoDB e, ao usá-lo, mysqldump
tenho a opção de configurar --single-transaction
para evitar o bloqueio das tabelas e, ao mesmo tempo, manter uma visualização consistente delas.
Estou tentando mudar para o MySQL Shellutil.dumpSchema
recomendado , e só vejo duas opções: consistent: true
e consistent: false
. A documentação para consistent: true
especifica que as tabelas serão bloqueadas para backup.
É possível usar util.dumpSchema
para despejar em uma única transação via InnoDB da mesma forma? Ou isso é feito automaticamente se as tabelas usarem InnoDB?
O utilitário DumpSchema usa vários threads para despejar tabelas em paralelo (leia a seção sobre na página que você vinculou na pergunta). Cada thread é executada em sua própria transação, então é impossível despejar o banco de dados inteiro em uma única transação.
É por isso que o utilitário aplica bloqueios de leitura globais ou de nível de tabela se o modo consistente estiver habilitado. Ele tem o mesmo efeito que a opção de transação única no mysqldump: o backup será consistente.