mysql 5.6 myisam 引擎表损坏

  1. 告警日志发现报错

2016-12-05 13:01:23 27830 [ERROR] /usr/sbin/mysqld: Table ‘./user/t_customer‘ is marked as crashed and should be repaired

2016-12-05 13:01:23 27830 [ERROR] /usr/sbin/mysqld: Table ‘./user/t_customer‘ is marked as crashed and should be repaired

2016-12-05 13:01:25 27830 [ERROR] /usr/sbin/mysqld: Table ‘./user/t_customer‘ is marked as crashed and should be repaired

2016-12-05 13:01:26 27830 [ERROR] /usr/sbin/mysqld: Table ‘./user/t_customer‘ is marked as crashed and should be repaired

2016-12-05 13:01:28 27830 [ERROR] /usr/sbin/mysqld: Table ‘./user/t_customer‘ is marked as crashed and should be repaired

2016-12-05 13:01:29 27830 [ERROR] /usr/sbin/mysqld: Table ‘./user/t_customer‘ is marked as crashed and should be repaired

2016-12-05 13:01:31 27830 [ERROR] /usr/sbin/mysqld: Table ‘./user/t_customer‘ is marked as crashed and should be repaired

2.检查table

([email protected]) [user]> check table t_customer;

+---------------------------------+-------+----------+----------------------------------------------------------+

| Table                           | Op    | Msg_type | Msg_text                                                 |

+---------------------------------+-------+----------+----------------------------------------------------------+

| user.t_customer | check | warning  | Table is marked as crashed                               |

| user.t_customer | check | warning  | 2 clients are using or haven‘t closed the table properly |

| user.t_customer | check | error    | Checksum for key:  2 doesn‘t match checksum for records  |

| user.t_customer | check | error    | Corrupt                                                  |

+---------------------------------+-------+----------+----------------------------------------------------------+

4 rows in set (0.10 sec)

3.修复表

([email protected]) [user]> repair table t_customer;

+---------------------------------+--------+----------+----------+

| Table                           | Op     | Msg_type | Msg_text |

+---------------------------------+--------+----------+----------+

| user.t_customer | repair | status   | OK       |

+---------------------------------+--------+----------+----------+

1 row in set (0.27 sec)

4.再次检查表

([email protected]) [user]> check table t_customer;

+---------------------------------+-------+----------+----------+

| Table                           | Op    | Msg_type | Msg_text |

+---------------------------------+-------+----------+----------+

| user.t_customer | check | status   | OK       |

+---------------------------------+-------+----------+----------+

1 row in set (0.00 sec)

([email protected]) [user]>

建议:

1)MySQL 5.6版本建议不要使用myisam引擎,innodb引擎完全可以取代myisam引擎,并且innodb引擎也是5.6版本的默认引擎。

2)数据库的非正常启停、以及服务器异常关机等容易造成表的损坏。

时间: 2024-10-19 03:48:05

mysql 5.6 myisam 引擎表损坏的相关文章

MySQL数据库锁机制之MyISAM引擎表锁和InnoDB行锁详解

MySQL中的锁概念 Mysql中不同的存储引擎支持不同的锁机制.比如MyISAM和MEMORY存储引擎采用的表级锁,BDB采用的是页面锁,也支持表级锁,InnoDB存储引擎既支持行级锁,也支持表级锁,默认情况下采用行级锁. Mysql3中锁特性如下: 表级锁:开销小,加锁块:不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发性也最高. 页面锁:开销和加锁界于表锁和行锁之间,会出现死锁:锁定粒度界与表锁和行锁

辛星解读mysql中的MyISAM引擎

很多以前的教科书上都是写的MyISAM是mysql的默认存储引擎,其实自从mysql5.5开始,默认存储引擎就已经改变成为InnoDB了,由于InnoDB在很多方面有着不可替代的功能,因此,很多人喜欢研究InnoDB也在情理之中,我也很喜欢InnoDB.但是呢,对于MyISAM,就跟着辛星辛博士来认识一下吧. 第一点就是MyISAM不支持事务和外键,也正是基于这一点,很多人不喜欢MyISAM.但是MyISAM并不着急改变自己,因为这个引擎的重心是性能,而不是功能,不可否认,MyISAM的性能是非

MySQL数据库表损坏后的修复方法

步骤:1.sql语句:check table tabTest; 如果出现的结果说Status是OK,则不用修复,如果有Error2.Linux执行: myisamchk -r -q /var/lib/mysql/db/test.MYI 3.sql语句:repair table tabTest; 4.sql语句:check table tabTest; Status是OK就修复好了 非Linux上:直接 参考:有两种方法,一种方法使用mysql的check table和repair table 的

MySQL表损坏预防与修复

1.       表损坏的原因分析 以下原因是导致mysql 表毁坏的常见原因: 1. 服务器突然断电导致数据文件损坏. 2. 强制关机,没有先关闭mysql 服务. 3. mysqld 进程在写表时被杀掉. 4. 使用myisamchk 的同时,mysqld 也在操作表. 5. 磁盘故障. 6. 服务器死机. 7. mysql 本身的bug . 2.       表损坏的症状 一个损坏的表的典型症状如下: 1 .当在从表中选择数据之时,你得到如下错误: Incorrect key file f

MySQL管理之 MyISAM和InnoDB存储引擎简单对比

版权归QQ87006009所有 一.MyISAM引擎: 1.隔离事务界别: 由于myisam的隔离事务级别是串行.采用的是表级锁,不支持事物和全文索引.因此不适用在大并发,重负荷的生产系统上. 2.实例的崩溃恢复: 当系统宕机或者mysql进程崩溃后,MyISAM引擎表很容易受到损坏.不得不用外部命令myisamchk来进行修复. 3.分配内存和使用: myisam引擎内存主要存放索引信息,不存放数据信息,因此在检索表时会先访问索引信息,然后在去磁盘读取数据信息. 4.cpu的使用效率: myi

有关MyISAM引擎的锁定机制

本文介绍下,mysql数据库中MyISAM引擎的锁定机制的相关知识,感兴趣的朋友可以参考下. 本节内容: MyISAM引擎的锁定机制 在mysql数据库中,MyISAM存储引擎适合于读频率远大于写频率这一情况. 目前的应用可能会出现在某一时段读写频率相当. 大致如下: 一个客户端发出需要长时间运行的SELECT 其他客户端在同一个表上发出INSERT或者UPDATE,这个客户将等待SELECT完成 另一个客户在同一个表上发出另一个SELECT:因UPDATE或INSERT比SELECT有更高有优

MySQL数据库InnoDB存储引擎多版本控制(MVCC)实现原理分析

文/何登成 导读:   来自网易研究院的MySQL内核技术研究人何登成,把MySQL数据库InnoDB存储引擎的多版本控制(简称:MVCC)实现原理,做了深入的研究与详细的文字图表分析,方便大家理解InnoDB存储引擎实现的多版本控制技术(简称:MVCC). 基本知识 假设对于多版本控制(MVCC)的基础知识,有所了解.MySQL数据库InnoDB存储引擎为了实现多版本的一致性读,采用的是基于回滚段的协议. 行结构 MySQL数据库InnoDB存储引擎表数据的组织方式为主键聚簇索引.由于采用索引

关于mysql数据库引擎MyIsam的表锁理解

MySQL中的锁概念 MySQL中不同的存储引擎支持不同的锁机制.比如MyISAM和MEMORY存储引擎采用的表级锁,BDB采用的是页面锁,也支持表级锁,InnoDB存储引擎既支持行级锁,也支持表级锁,默认情况下采用行级锁. Mysql3中锁特性如下: 表级锁:开销小,加锁块:不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低. 行级锁:开销大,加锁慢:会出现死锁:锁定粒度最小,发生锁冲突的概率最低,并发性也最高. 页面锁:开销和加锁界于表锁和行锁之间,会出现死锁:锁定粒度界与表锁和行锁

MySQL基于MyISAM引擎和InnoDB引擎性能测试对比

在MySQL中数据表,使用MyISAM引擎快一些,存储空间小一些:使用InnoDB引擎插入速度稍快,关键是能支持事务. 实际应用中使用MyISAM还是InnoDB好呢?得具体问题具体分析,由你的系统特性决定, 如使用MyISAM,得到性能提升,但将失去了对事务的支持,到底值不值呢,还得充分了解两种方式的优劣程度, 下面是我的一次测试结果: MyISAM 数据量 数据占空间(byte) 索引占空间(byte) 基于索引查询(s) 无索引查询(s) coun(*)查询(s) 插入100万记录(s)