首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >记一次sys 数据库的修复

记一次sys 数据库的修复

作者头像
bsbforever
发布2020-08-19 15:54:40
发布2020-08-19 15:54:40
1.2K00
代码可运行
举报
运行总次数:0
代码可运行

1. 现象

公司一套MySQL数据库的error日志被撑得很大

查看后发现大量报错

代码语言:javascript
代码运行次数:0
运行
复制
Incorrect information in file:    './sys/x$session.frm'

这时查看sys文件夹,发现里面的文件大小都为0

2. 原因查找

sys 数据库是MySQL 5.7后引入的一个系统数据库

用于分析系统性能

具体产生报错的原因未找到

这时想办法修复

3. 问题解决

这里采用还原其他MySQL中sys数据库解决

3.1 备份sys库

找个正常的sys数据库进行备份

代码语言:javascript
代码运行次数:0
运行
复制
mysqldump -usystem -p -S /data/mysql/data/mysql.sock --single-transaction --master-data=2 --set-gtid-purged=off -E -R --triggers --databases sys > /home/mysql/sys.sql

3.2 还原sys库

停止应用

备份整个数据库

删除sys

代码语言:javascript
代码运行次数:0
运行
复制
drop database sys;

重启数据库

代码语言:javascript
代码运行次数:0
运行
复制
service mysqld restart

导入

代码语言:javascript
代码运行次数:0
运行
复制
mysql -usystem -p -S /data/mysql/data/mysql.sock < /home/mysql/sys.sql

再次备份主库

代码语言:javascript
代码运行次数:0
运行
复制
mysqldump -usystem -p -S /data/mysql/data/mysql.sock --single-transaction --master-data=2 --set-gtid-purged=off -E -R --triggers --all-databases > /home/mysql/all.sql

重建复制

4. 注意事项

  • sys库导出需导出所有内容,包括表 视图 存储过程等

否则会报错:

代码语言:javascript
代码运行次数:0
运行
复制
can not create 
  • drop sys库后需要重启实例

否则报错:

代码语言:javascript
代码运行次数:0
运行
复制
Got error 168 from storage engine

这里分享个sql导出后的文本

sys.txt

5. 参考链接

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 现象
  • 2. 原因查找
  • 3. 问题解决
    • 3.1 备份sys库
    • 3.2 还原sys库
  • 4. 注意事项
  • 5. 参考链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档