> 历史信息查看请查看个人网页www.zhaibibei.cn > 这是一个坚持Oracle,Python,MySQL原创内容的公众号,欢迎关注 ------ 这个专题讲一些MySQL日常运维的异常处理 ------- ##1. 现象 公司一套MySQL数据库的error日志被撑得很大 查看后发现大量报错 ``` Incorrect information in file: './sys/x$session.frm' ``` 这时查看sys文件夹,发现里面的文件大小都为0 ------ ##2. 原因查找 sys 数据库是MySQL 5.7后引入的一个系统数据库 用于分析系统性能 具体产生报错的原因未找到 这时想办法修复 -------- ##3. 问题解决 这里采用还原其他MySQL中sys数据库解决 ### 3.1 备份sys库 找个正常的sys数据库进行备份 ``` 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** ``` drop database sys; ``` **重启数据库** ``` service mysqld restart ``` **导入** ``` mysql -usystem -p -S /data/mysql/data/mysql.sock < /home/mysql/sys.sql ``` **再次备份主库** ``` 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库导出需导出所有内容,包括表 视图 存储过程等 否则会报错: ``` can not create ``` - drop sys库后需要重启实例 否则报错: ``` Got error 168 from storage engine ``` 这里分享个sql导出后的文本 [attachment:442] ------ ##5. 参考链接 无 --------