MyISAM表的维护和恢复
本节将讨论如何使用myisamchk检查和修复MyISAM表。
同时,你可以用myisamchk来检查,修复和优化数据库表。下面将讲述如何执行这些操作并建立维护计划。
虽然使用myisamchk很安全,但在操作前做个备份总是个好Idea。
当然也可以使用Sql达到与myisamchk相同的效果:
To check
MyISAMtables, useCHECK TABLE.To repair
MyISAMtables, useREPAIR TABLE.To optimize
MyISAMtables, useOPTIMIZE TABLE.To analyze
MyISAMtables, useANALYZE TABLE
8.6.2 How to Check MyISAM Tables for Errors
myisamchk tbl_name ,能找到99.99%的错误。不检测Data文件中的Corruption[一般不会出问题].

myisamchk -m tbl_name 能检测出99.999%的错误,checks all index entries for errors and then reads through all rows.
myisamchk -e -i tbl_name,全部检查,并输出统计信息。
8.6.3 How to Repair MyISAM Tables
使用perror展示错误码对应的描述:如 perror 123 134

Stage 1: Checking your tables
Stage 2: Easy safe repair
myisamchk -r -q tbl_name :快速修复【quick recovery mode】,对Myisam表Index进行修复而不触及.MYD【数据】。
也可用下面:
Make a backup of the data file before continuing.
Use myisamchk -r
tbl_name(-rmeans “recovery mode”). This removes incorrect rows and deleted rows from the data file and reconstructs the index file.If the preceding step fails, use myisamchk --safe-recover
tbl_name. Safe recovery mode uses an old recovery method that handles a few cases that regular recovery mode does not (but is slower).
Stage 3: Difficult repair 【 index file is destroyed or contains incorrect ,即.MYI文件出了问题,或or if the index file is missing】
1.移动数据文件到其他地方
2. Use the table description file to create new (empty) data and index files
TRUNCATE TABLE tbl_name;
3.再将数据文件拷回
4.myisamchk -r should work.
5.重启Msyql
Stage 4: Very difficult repair【the .frm description file has also crashed】
1.从之前备份的.frm文件恢复,然后按照Stage3的方式处理
2.如果没有备份,但你知道表怎么被创建,则可以在其他服务器上创建该表,然后将.frm和.MYI文件拷到该服务器上,之后执行Stage2的操作,重建索引文件。
Setting Up a MyISAM Table Maintenance Schedule
You should also check your tables regularly during normal system operation. For example, you can run a cron job to check important tables once a week, using a line like this in a crontab file:
35 0 * * 0/path/to/myisamchk--fast --silent/path/to/datadir/*/*.MYI
MyISAM表的维护和恢复的更多相关文章
- mysql 开发进阶篇系列 34 工具篇 mysqlcheck(MyISAM表维护工具)
一.概述 mysqlcheck客户端工具可以检查和修复MyISAM表,还可以优化和分析表.实际上,它集成了mysql工具中check,repair,analyze,optimize功能,对于check ...
- (转)Mysql数据库管理 表的维护
原文:http://t.dbdao.com/archives/mysql%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86-%E8%A1%A8%E7%9A%84 ...
- centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复
centos环境下使用percona-xtrabackup对mysql5.6数据库innodb和myisam进行快速备份及恢复 有时候我们会碰到这样的业务场景: 1.将大的数据库恢复到本地进行业务测试 ...
- RMAN详细教程(二):备份、检查、维护、恢复
RMAN详细教程(一):基本命令代码 一.创建增量备份 增量备份级别为0-4,但为方便备份管理,oracle建议只限于0级和1级. 1.差异增量备份(differential incremental ...
- MySQL优化篇系列文章(二)——MyISAM表锁与InnoDB锁问题
我可以和面试官多聊几句吗?只是想... MySQL优化篇系列文章(基于MySQL8.0测试验证),上部分:优化SQL语句.数据库对象,MyISAM表锁和InnoDB锁问题. 面试官:咦,小伙子,又来啦 ...
- 锁(MySQL篇)—之MyISAM表锁
前言 锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,除传统的计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性.有效性是 ...
- MyISAM表加字段的特殊方法
最近一个统计系统的大表需要加字段,表的引擎是myisam,表大小在3亿,物理文件在106G.想想都蛋疼.那么这种情况下怎么把字段撸上去呢? 1. 首先想到了<高性能MySQL>提到的直接更 ...
- MyISAM表杂记实验
一.本文说明 由于刚学mysql所以动手做了一些实验. 二.实验内容 1.验证MyISAM有AUOT_INCREMENT coloumn功能 ----在这里是对现有表t,增加一个主键----mysql ...
- 【转】MYISAM表批量压缩
关于对MYISAM表的压缩,可以使用myisampack和myisamchk完成(myisampack完之后必须进行myisamchk才能使用压缩后的表,而且是只读的), 其详细地用法可以参考官方文档 ...
随机推荐
- lvs部署-DR模式
DR模式 角色 IP地址 备注 LVS负载均衡器 192.168.119.132 VIP:192.168.119.150 ipvsadm http_Real server 192.168.119 ...
- C++多线程的几个重要方法解析CreateEvent / SetEvent /ResetEvent/ 等
1.CreateEvent 是创建windows事件的意思,作用主要用在判断线程退出,程锁定方面. 函功能描述:创建或打开一个命名的或无名的事件对象. HANDLE m_hExit; m_hExit= ...
- .apache2 设置多个虚拟域名
<VirtualHost 127.0.0.2:80> ServerName www.xylilun.cn DocumentRoot E:/www/ylll <Directory E: ...
- iOS开发——UI基础-KVC
除了一般的赋值和取值的方法,我们还可以用Key-Value-Coding(KVC)键值编码来访问你要存取的类的属性. 如何使用KVC存取对象属性呢?看个示例 一.使用KVC存数据 定义一个person ...
- C++ STL,list vector区别
顺序性容器: 向量 vector : 是一个线性顺序结构.相当于数组,但其大小可以不预先指定,并且自动扩展.它可以像数组一样被操作,由于它的特性我们完全可以将vector 看作动态数组.在创建一个 ...
- Internet与www的关系
Internet是把分布于世界各地不同结构的计算机网络用各种传输介质相互连接起来的网络. 因此,被称为网络的网络.Internet提供的主要服务有万维网(WWW.)文件传输(FTP.)电子邮件(E-m ...
- Python分割list
对于一个很大的列表,例如有超过一万个元素的列表,假如需要对列表中的每一个元素都进行一个复杂且耗时的计算,用单线程处理起来会很慢,这时有必要利用多线程进行处理,处理之前首先需要对大的列表进行分割,分割成 ...
- sublime text 2 配置php调试环境
准备工作: 计算机中已经正确安装了php. 1.设置windows php环境变量->用户变量 Path变量值
- 解析sql语句中left_join、inner_join中的on与where的区别
以下是对在sql语句中left_join.inner_join中的on与where的区别进行了详细的分析介绍,需要的朋友可以参考下 table a(id, type):id type ---- ...
- Unity3d 防止内存修改工具的小方法
一个非常简单的方法,直接上代码. private int curATK; private int curAtkKey; public int CurATK { get { return curATK ...