【问题标题】:How to save data from a crashed Cloud SQL instance without data loss如何从崩溃的 Cloud SQL 实例中保存数据而不丢失数据
【发布时间】:2021-04-30 05:33:59
【问题描述】:

启用高可用性的我的 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.

【问题讨论】:

  • 实例刚刚恢复 - 停机 4 小时后。当我尝试在克隆实例中应用时间点恢复时,意外地导致时间点作业失败,但原始实例却神秘地自行恢复。明天我将退出 Cloud SQL 并将我的数据库移动到我的 GKE 集群中。并且,要求退款。
  • 你有复制品吗?如果是这样,您可以尝试推广它。
  • 谢谢,我刚吃了一个,虽然这很奇怪,因为我认为 HA 故障转移应该负责它,而不是只读副本。我稍后会尝试迁移到旧版 HA。

标签: mysql google-cloud-platform innodb google-cloud-sql


【解决方案1】:

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

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

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

【讨论】:

  • 我已经向 GCP 提交了我的 SLA 通知,我会在下个月收到回复。感谢您告诉我有关旧版 HA 的信息,您节省了我的时间。您认为将实例从 MySQL 5.7 升级到 8.0(CloudSQL 目前支持的最新版本)更好吗?
  • MySQL 的版本不应影响实例的可用性。因此,除非您想要某些 MySQL 8.0 特定功能,否则无需更改版本。
  • 最后我收到了 6.5 美元的 SLA 退款。 4 小时停机时间,6.5 美元。
猜你喜欢
  • 2021-01-13
  • 2020-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多