之前在本地开发环境,遇到过一次因为意外断电,导致部分块文件损坏,进而导致 OceanBase 无法重启的问题,最后不得不重装(数据也全没了)。
因为这一次故障经历,让我特别关心 OceanBase 的故障恢复相关问题。
众所周知,MySQL 有恢复模式,比如设置 innodb_force_recovery
参数来强制忽略损坏的文件错误,进而实现正常启动。
请问:
- 当 OceanBase 也因为意外断电导致文件损坏、无法正常启动时,该如何使其恢复正常( 或者,能够安全导出数据 )呢 ?是否也有类似 MySQL 的 recovery 模式 ?
- 如果 OceanBase 的3个副本中,有2个副本出现磁盘故障,对应的本地数据文件损毁,有什么办法可以让该集群起死回生吗 ?
- 出于安全考虑,我们一般会定期进行磁盘备份或快照,将所有磁盘备份到 阿里云的 OSS ( 或 AWS S3 等类似物)。不过由于意外的随机性,日志盘、数据盘 的备份可能没有完全对齐,不知道 OceanBase 是否有相应的自动纠错机制去应对这种情况呢 ?还是说,如果备份恰好没有对齐,即使从备份中恢复,也将导致无法启动 ?
在此先感谢各位大佬的热心帮助~