【问题标题】:MySQL SPs and Events being automatically rolled-back by Google Cloud SQLGoogle Cloud SQL 自动回滚 MySQL SP 和事件
【发布时间】:2014-07-18 19:24:58
【问题描述】:

我已将生产 MySQL 架构迁移到 Google Cloud SQL。需要对现有的存储过程和计划事件进行各种修改,并部署一些新的。 但是,我一直注意到,当我在下午 6 点离开一切工作时,当我第二天早上回到我的办公桌时,许多(全部?)SP 和事件更改都回滚到早期的开发状态,以及我所有的例程失败或发疯。数据本身似乎没有受到影响或回滚,并且连续的新插入正在成功。 我在想自动备份/复制可能会覆盖我的 SP 和事件。有谁知道如何控制这个? 谢谢, -保罗

【问题讨论】:

    标签: mysql events stored-procedures rollback google-cloud-sql


    【解决方案1】:

    请在更改存储过程后发出FLUSH TABLES。这应该会减少 MyISAM 表不持久重启服务器的机会。

    【讨论】:

      【解决方案2】:

      Cloud SQL 永远不会回滚您的数据库,除非您通过从备份还原触发它。通常当我们看到看起来像回滚的事情时,真正发生的是 MySQL 级别的数据丢失。这通常意味着以下两种情况之一是正确的:

      1. 您正在使用 MyISAM 表,可能会丢失数据。尽快切换到 InnoDB。如果有一项功能阻碍了您使用 InnoDB,我们现在提供 MySQL 5.6 instances
      2. 您正在使用 InnoDB,但您的代码没有运行提交,因此当数据库关闭时,没有数据提交,并且丢失了。

      如果这两件事都属实,请联系 cloud-sql@google.com,我们会进一步调查。希望这会有所帮助!

      【讨论】:

      • 您好,感谢您的分析。我可以确认我正在使用 InnoDB。
      • 问题是存储过程本身正在丢失,或者恢复到早期版本 - 而不是它们处理的数据。这是否包含在您在我的代码中使用提交的解决方案中?
      • 查看dba.stackexchange.com/questions/6420/…,看看您在转储数据库时是否可以看到这些过程。这可能会有所启发。如果没有,请通过 cloud-sql@google.com 与我们联系,并提供您的实例名称以及您认为丢失的时间,我们会为您调查。
      • 存储过程存储在 MyISAM 表 (mysql.proc) 中。这可能就是您观察到回滚的原因。
      猜你喜欢
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 2012-12-17
      • 2012-12-24
      • 2013-11-22
      相关资源
      最近更新 更多