我的数据库使用 InnoDB,当使用
mysqldump
时,我可以选择设置 --single-transaction
以避免锁定表,同时仍然保持一致的视图。
我正在尝试切换到推荐的 MySQL Shell
util.dumpSchema
,但我只看到两个选项:consistent: true
和 consistent: false
。 consistent: true
的文档指定将锁定表以进行备份。
是否可以使用
util.dumpSchema
以相同的方式通过InnoDB转储到单个事务中?或者如果表使用 InnoDB,这会自动完成吗?
DumpSchema 实用程序使用多个线程并行转储表(阅读问题中链接的页面上的“关于”部分)。每个线程都在自己的事务中运行,因此不可能在单个事务中转储整个数据库。
这就是为什么如果启用了一致模式,实用程序会应用全局或表级读锁。它与 mysqldump 中的单事务选项具有相同的效果:备份将是一致的。