bil*_*oah 9 mysql innodb mysqldump
我正在使用 mysqldump 对完全由 InnoDB 表组成的架构执行定期备份。mysqldump 文档有这样的说法--single-transaction:
--single-transaction 选项和 --lock-tables 选项是互斥的,因为 LOCK TABLES 会导致隐式提交任何挂起的事务。
然而,这里(以及堆栈交换网络上的其他地方)大约有无数篇博客文章和答案推荐:
mysqldump --single-transaction --skip-lock-tables my_database > my_database.sql
Run Code Online (Sandbox Code Playgroud)
如果这两个选项是互斥的,我认为指定--single-transaction就足够了。然而,文档还说明了这一点--opt:
该选项默认启用,是 --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick -- 组合的简写设置字符集。
这让我相信--lock-tables默认情况下是打开的。
我是否需要指定--skip-lock-tables或--single-transaction仅设置后者足以确保表在转储期间不被锁定?
Bil*_*win 11
如果您使用该--single-transaction选项,它将关闭--lock-tables。这就是文档说它们是相互排斥的意思。
https://github.com/mysql/mysql-server/blob/8.0/client/mysqldump.cc#L1076
if (opt_single_transaction || opt_lock_all_tables) lock_tables = false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4957 次 |
| 最近记录: |