视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
利用Myisamchk对MySQL数据表进行体检
2020-11-09 07:52:39 责编:小采
文档

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 在MySQL数据库中,数据表数以百计,数据库管理员不可能有这么多的时间和精力去依次检查表的有效性,所以他们急需要一种工具,能够对相关的数据表进行体检,以判断表是否存在一些问题。这就好像我们每

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入

  在MySQL数据库中,数据表数以百计,数据库管理员不可能有这么多的时间和精力去依次检查表的有效性,所以他们急需要一种工具,能够对相关的数据表进行体检,以判断表是否存在一些问题。这就好像我们每年都需要体检一样,发现小问题,即时进行修复,以免到时候病入膏肓。在这里为大家推荐的工具是Myisamchk,使用这个工具来对数据表进行不定期的检查。在使用这个工具时,笔者要强调一下相关的注意事项以及使用技巧。

  一、大表要增加内存的容量

  Myisamchk工具的使用效率主要跟表的大小有关。如果数据表比较大,则其运行的速度就会比较慢。在这种情况下,数据库管理员可能需奥调整内存的配置。

  通常情况下,-O参数决定Myisamchk工具运行时所能够使用的内存大小。当运行Myisamchk时内存分配给其使用的空间不能够超过这个参数所指定的大小。如果数据库管理员需要对每一个大表使用Myisamchk工具时,往往需要首先确定这个数据表的大小,并依此判断所需要占用内存的大小。默认情况下,恢复时可以采用的内存大小只有3M.对于大表来说,这点内存是不够的。此时数据库管理员可以调整内存的大小,让Myisamchk工具运行的更快一点。

  如果有需要的话,可以使用-O参数将内存调整为合适的大小。如-O sort=8M等等。一般情况下,这个值设置为16M即可。不需要太大,否则的话,会影响其它作业的运行。总之,在运行Myisamchk工具之前,数据库管理员先需要评估一下数据库中各个数据表的大小。如果有比较大的数据表,可以先将其过滤出来(如通过通配符等形式)。然后再调整内存的大小,并单独对这些大表进行检查。这是提高Myisamchk运行效率的一个不错的办法。

  二、利用Myisamchk工具恢复数据时需要大量的硬盘空间

  在使用Myisamchk检查数据表时,如果发现某些表存在问题,还可以使用Myisamchk这个工具对其进行恢复。不过在恢复时,需要先确保有足够的硬盘空间。否则的话,就可能导致数据表恢复失败。

  通常情况下,所需要使用的硬盘空间是数据表的一倍大小。即如果需要对2G的数据表进行恢复,那么所需要的剩余空间至少应该还有2G.即需要将数据文件大小扩大为原来的一倍。如果硬盘空间不足,该怎么办呢?此时数据库管理员可以考虑使用―quick选项。使用这个选项之后,进行修复时就不需要这么多的空间。不过需要注意,此时数据库系统只是创建了索引文件。

  在某些情况下,在修复时需要重新创建索引文件。此时代替旧索引文件的新索引文件也需要占用一定的磁盘空间。虽然说在修复工作一开始的时候,数据库系统就会对就索引文件进行删减。但是为了安全起见,笔者还是建议为其保留足够的硬盘空间。并且在文件系统上所需要的这个存储空间的大小与原数据文件是相同的。

  另外在使用Myisamchk这个工具时,数据库管理员可能会使用―Recover选项。如果数据库管理员采用这个选项的话,那么就可以修复几乎所有一切的问题。不过注意这里有一个关键字几乎。这也就是说,大部分数据表问题都可以通过这个选项来解决。但是也有一些例外。如当遇到唯一的键不唯一等问题时,即时采用这个选项也是没有办法。一般情况下,数据库管理员在恢复工作时可以先试用这个选项。当系统报告这个选项不可用时,再尝试使用另外的恢复方式。不过需要注意的是,使用这个选项时需要用到排序缓冲区空间。大致大小一般为数据的2倍。

  综上所述,在利用Myisamchk这个工具对表进行恢复操作时,需要保证其有足够的磁盘空间。笔者的建议时,至少要有两倍以上的数据文件大小的磁盘空间。

[1] [2]

下载本文
显示全文
专题