跳到主要内容
版本:v3&v6

mysql修复

1. 问题表现

ONES中的MySQL无法正常启动,查看日志,Mysql的文件损坏 img.png

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