MySQL离线分析工具innochecksum

  • 时间:
  • 浏览:1
  • 来源:大发5分快乐8_极速5分11选5

innochecksum打印InnoDB文件的校验和。此工具读取InnoDB表空间文件,计算每个页面的校验和,将计算的校验和与存储的校验和进行比较,并报告不匹配,这表明页面已损坏。它最初是为了在停电后加快验证表空间文件的完全性而开发的,但也都时需在文件基因重组后使用。原应校验和不匹配原应InnoDB故意关闭正在运行的服务器,很久最好使用此工具而都在在等待生产中的服务器遇到损坏的页面。

对于文件名以“t”开头的所有表空间文件( .ibd 文件)运行 innochecksum :

innochecksum不还还可以用于服务器已打开的表空间文件。对于此类文件,应使用CHECK TABLE检查表空间中的表。尝试在服务器已打开的表空间上运行innochecksum将原应“Unable to lock file”错误。

使用 --write 选项时时需指定算法。使用 --write 选项时获得独占锁,--write 选项的原应值为:

--write 选项将整个页面重写为磁盘。原应新校验和与现有校验和相同,则新校验和我不要 写入磁盘以最小化I / O.

在多个用户定义的表空间文件( .ibd 文件)上运行

对“test”数据库中的所有表空间( .ibd )文件运行 innochecksum :

在多个系统表空间文件上运行innochecksum

默认状态下,只还还有一个 多多 InnoDB 系统表空间文件( ibdata1 ),但都时需使用 innodb_data_file_path 选项定义系统表空间的多个文件。在以下示例中,使用 innodb_data_file_path 选项定义系统表空间的还还有一个 多文件: ibdata1 , ibdata2 和 ibdata3 。

原应未指定 --strict-check 选项, innochecksum 将对 innodb , crc32 和 none 进行验证。

原应指定 none 选项,则仅允许 none 生成的校验和。

原应指定 innodb 选项,则仅允许 innodb 生成的校验和。

原应指定 crc32 选项,则仅指定校验和由 crc32 生成是允许的。

这还还有一个 多文件( ibdata1 , ibdata2 和 ibdata3 )构成还还有一个 多逻辑系统表空间。要在形成还还有一个 多逻辑系统表空间的多个文件上运行 innochecksum , innochecksum 时需 - 选项从标准输入读取表空间文件,这最少 连接多个文件以创建还还有一个 多文件。对于上边提供的示例,以下 innochecksum 将使用命令:

对 data 目录中的所有表空间文件( .ibd 文件)运行 innochecksum :

原应找到校验和不匹配,通常会从备份恢复表空间或启动服务器并尝试使用mysqldump对表空间中的表进行备份。