首页 > 解决方案 > 如何从崩溃的 Cloud SQL 实例中保存数据而不丢失数据

问题描述

我的启用高可用性的 Cloud SQL 实例(MySQL)现在完全关闭 - 我无法连接到 MySQL 服务,控制台上的 mysqldump、Export 和 Clone 都关闭了,即使是停止或重启按钮也只响应错误消息

有什么解决方案可以在不丢失数据的情况下保存我的数据吗?如果我从上次备份中恢复实例,将导致 12 小时的数据丢失,灾难。

我考虑过“时间点恢复”,但问题是如果我无法进入 MySQL,如何定位二进制日志文件名和恢复位置。

崩溃实例的错误日志:

2021-01-26 19:03:29.613 CST
2021-01-26T11:03:29.612303Z 0 [ERROR] InnoDB: Invalid redo log header checksum.
Error
2021-01-26 19:03:29.613 CST
2021-01-26T11:03:29.612315Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
Error
2021-01-26 19:03:30.213 CST
2021-01-26T11:03:30.213169Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
Error
2021-01-26 19:03:30.214 CST
2021-01-26T11:03:30.214078Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
Error
2021-01-26 19:03:30.214 CST
2021-01-26T11:03:30.214456Z 0 [ERROR] Failed to initialize builtin plugins.

标签: mysqlgoogle-cloud-platforminnodbgoogle-cloud-sql

解决方案


配置了高可用性的实例应该会在几分钟内故障转移到辅助实例。在执行此操作时,无法执行导出或其他操作。

如果故障转移耗时 4 小时,您可能有资格根据 Cloud SQL SLA进行信用调整。如果您想探索这样的路径,我建议您打开支持票。

最后,我不建议使用旧版 HA 配置,因为它在2021 年第一季度之后将不再可用,如此处所述。


推荐阅读