【问题标题】:mysqldump with --single-transaction and avoid DDL statements without table lockingmysqldump 与 --single-transaction 并避免没有表锁定的 DDL 语句
【发布时间】:2018-01-29 13:59:55
【问题描述】:

我正在寻找一种解决方案,以使用带有单事务选项的 mysqldump 对 MySQL 数据库进行逻辑备份,并在备份期间避免任何 DDL 语句而不锁定任何表。如果在备份期间执行任何 alter table 语句,当前 mysqldump 将失败。

【问题讨论】:

  • 关于此的另一篇文章。你可以在这里找到:Run MySQLDump without Locking Tables
  • 感谢您的评论。如前所述,我正在使用带有 --single-transaction 选项的 mysqldump,但是如果任何其他用户执行任何 DDL 语句(如 Alter table 'table1'....错误 1412:表定义已更改,请在第 0 行转储表 'table1' 时重试事务。注意:所有表都是 InnoDB 表。
  • 如果在转储发生的同时运行 ALTER TABLE,使用 mysqldump 和 --single-transaction 失败的任何解决方案?似乎应该有办法让这个工作......

标签: mysql table-locking


【解决方案1】:

这对你有帮助吗?

$ mysqldump --compress --quick --triggers --routines --lock-tables=false --single-transaction {YOUR_DATABASE_NAME}

【讨论】:

  • 不!在执行您建议的命令期间,当我从其他连接运行 alter table 命令时发生了同样的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-01
  • 2015-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多