mysql修复
1. 问题表现
ONES中的MySQL无法正常启动,查看日志,Mysql的文件损坏
2. 修复办法
方法1:通过ONES备份数据恢复,参考文档:数据备份&恢复详细说明
方法2:在没有数据备份的情况下,使用官方工具myisamchk进行修复
#(1)下载修复工具
curl -O https://res.ones.pro/script/myisamchk
mv myisamchk /usr/local/bin/
chmod a+x /usr/local/bin/myisamchk
#(2)根据报错提示,修复指定文件.本地存储模式下默认 ONES 数据目录是 /data/ones
myisamchk -c -r /data/ones/ones-local-storage/mysql/ones/data-mysql-cluster-mysql-0/mysql/user.MYI
myisamchk -c -r /data/ones/ones-local-storage/mysql/ones/data-mysql-cluster-mysql-0/mysql/db.MYI
myisamchk -c -r /data/ones/ones-local-storage/mysql/ones/data-mysql-cluster-mysql-0/mysql/tables_priv.MYI
#(3)重启mysql,先关闭外部业务
kubectl -n ones scale --replicas=0 mysqlcluster mysql-cluster
kubectl -n ones scale --replicas=0 sts mysql-operator
kubectl -n ones scale --replicas=0 sts mysql-cluster-mysql
kubectl -n ones scale --replicas=1 mysqlcluster mysql-cluster
kubectl -n ones scale --replicas=1 sts mysql-operator
# 跟进mysql启动日志,根据报错日志再次参考上述步骤再次修复mysql文件并重启mysql
kubectl logs -f -n ones mysql-cluster-mysql-0
# 检查各个pod是否启动正常,逐个恢复业务
kubectl get pod -A|grep -iv running