mysql - 如何从崩溃的 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.
解决方案
配置了高可用性的实例应该会在几分钟内故障转移到辅助实例。在执行此操作时,无法执行导出或其他操作。
如果故障转移耗时 4 小时,您可能有资格根据 Cloud SQL SLA进行信用调整。如果您想探索这样的路径,我建议您打开支持票。
最后,我不建议使用旧版 HA 配置,因为它在2021 年第一季度之后将不再可用,如此处所述。
推荐阅读
- c# - 为什么会出现这样的错误统一货币化
- sql - 如何检测 SQL 重复值
- awk - 当 awk $n 参数以 z 结尾时是什么意思?
- ruby-on-rails - Docker - 调用后端不起作用 - 即使 app/api 在同一个网络上
- c++ - 析构函数真的会破坏内存还是只是在对象的生命周期结束之前运行?
- python - 为什么我只有一种方式得到循环导入错误?
- python - 使用 anaconda 设置 vs-code 的集成终端
- android - 通过网络链接在 Android / iOS / Desktop 中创建联系人
- java - 即使在返回 API 响应后,如何在 Java 中为 REST API 锁定 Oracle DB 表行
- swagger - 如何使用 Swagger/Swashbuckle .net 核心在 OpenApi 中指定 API 操作的自定义顺序