Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL SP和事件被Google Cloud SQL自动回滚_Mysql_Events_Stored Procedures_Rollback_Google Cloud Sql - Fatal编程技术网

MySQL SP和事件被Google Cloud SQL自动回滚

MySQL SP和事件被Google Cloud SQL自动回滚,mysql,events,stored-procedures,rollback,google-cloud-sql,Mysql,Events,Stored Procedures,Rollback,Google Cloud Sql,我已经将我的生产MySQL模式迁移到Google Cloud SQL。必须对现有存储过程和计划事件进行各种修改,并部署一些新的存储过程和计划事件。 然而,我一直注意到,当我在下午6点下班时,第二天早上回到我的办公桌时,许多(全部?)SP和事件的更改被回滚到早期的开发状态,我所有的例行程序都失败或变得疯狂。数据本身似乎没有受到影响或回滚,连续的新插入正在成功进行。 我认为自动备份/复制可能会覆盖我的SP和事件。有人知道如何控制吗? 谢谢 -Paul云SQL永远不会回滚您的数据库,除非您通过从备份恢

我已经将我的生产MySQL模式迁移到Google Cloud SQL。必须对现有存储过程和计划事件进行各种修改,并部署一些新的存储过程和计划事件。 然而,我一直注意到,当我在下午6点下班时,第二天早上回到我的办公桌时,许多(全部?)SP和事件的更改被回滚到早期的开发状态,我所有的例行程序都失败或变得疯狂。数据本身似乎没有受到影响或回滚,连续的新插入正在成功进行。 我认为自动备份/复制可能会覆盖我的SP和事件。有人知道如何控制吗? 谢谢
-Paul

云SQL永远不会回滚您的数据库,除非您通过从备份恢复触发它。通常,当我们看到类似回滚的情况时,真正发生的是MySQL级别的数据丢失。这通常意味着两件事之一是正确的:

  • 如果使用MyISAM表,则可能会丢失数据。尽快切换到InnoDB。我们现在提供的功能,如果有一个是阻碍你从InnoDB
  • 您使用的是InnoDB,但您的代码没有运行提交,因此当数据库关闭时,不会提交任何数据,数据也会丢失

  • 如果这两件事都是真的,请联系云计算-sql@google.com我们将进一步调查。希望这有帮助

    更改存储过程后,请发出
    刷新表
    。这将减少MyISAM表无法持久重启服务器的可能性。

    您好,感谢您的分析。我可以确认我使用的是InnoDB,问题是存储过程本身正在丢失,或者恢复到早期版本,而不是它们处理的数据。在我的代码中使用提交的解决方案是否包含了这一点?请查看在转储数据库时是否可以看到过程。这可能会有一些启示。如果没有,请通过云与我们联系-sql@google.com使用您的实例名和您认为丢失的时间,我们将为您调查。存储过程存储在MyISAM表(mysql.proc)中。这可能就是您观察回滚的原因。