10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.2 kb
手册页(Zip)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

MySQL 8.0参考手册/.../ innochecksum -离线InnoDB文件校验和实用程序

4.6.2 innochecksum—离线InnoDB文件校验和实用程序

innochecksum打印校验和InnoDB文件。此工具读取InnoDB表空间文件,计算每个页的校验和,将计算的校验和与存储的校验和进行比较,并报告不匹配,这表明页面损坏。最初开发它是为了在断电后加速验证表空间文件的完整性,但也可以在文件复制后使用。因为校验和不匹配导致InnoDB要有意关闭正在运行的服务器,最好使用此工具,而不是等待生产服务器遇到损坏的页面。

innochecksum不能用于服务器已打开的表空间文件。对于这样的文件,您应该使用检查表检查表空间内的表。试图逃跑innochecksum类中已打开结果的表空间无法锁定文件错误。

如果发现校验和不匹配,则从备份中恢复表空间或启动服务器并尝试使用, mysqldump对表空间内的表进行备份。

调用innochecksum是这样的:

innochecksum [选项file_name

innochecksum选项

innochecksum支持以下选项。对于引用页码的选项,这些数字是从零开始的。

  • ——帮助- - - - - - ?

    显示命令行帮助。使用示例:

    innochecksum——帮助
  • ——信息-我

    的同义词——帮助.显示命令行帮助。使用示例:

    innochecksum——信息
  • ——版本- v

    显示版本信息。使用示例:

    innochecksum——版本
  • ——详细- v

    详细模式;每5秒向日志文件打印一个进度指示符。命令指定日志文件,以便打印进度指示器——日志选项.打开详细的运行模式:

    innochecksum——详细

    要关闭verbose模式,运行:

    innochecksum——verbose = FALSE

    ——详细选项,——日志选项可以同时指定。例如:

    Innochecksum——verbose——log=/var/lib/mysql/test/logtest.txt

    您可以通过以下方式查询日志文件中的进度指标信息。

    Cat ./logtest.txt | grep -i "ok "

    日志文件中的进度指标信息如下所示:

    1663页,完成2.863% 8447页,完成14.537% 13695页,完成23.568% 18815页,完成32.379% 23039页,完成39.648% 28351页,完成48.789% 33023页,完成56.828% 37951页,完成65.308% 44095页,完成75.881% 49407页,完成85.022% 54463页,完成93.722%…
  • ——数- c

    打印文件中页数的计数并退出。使用示例:

    Innochecksum——count ../data/test/tab1.ibd
  • ——开始页面=全国矿工工会- s全国矿工工会

    从这一页开始。使用示例:

    /data/test/tab1.ibd . Innochecksum——start-page=600 .

    或者:

    /data/test/tab1.ibd . Innochecksum -s 600 .
  • ——结束页=全国矿工工会- e全国矿工工会

    到此页码结束。使用示例:

    Innochecksum——end-page=700 ../data/test/tab1.ibd

    或者:

    Innochecksum——p 700 ../data/test/tab1.ibd
  • ——页面=全国矿工工会- p全国矿工工会

    只检查这个页码。使用示例:

    Innochecksum——page=701 ../data/test/tab1.ibd
  • ——严格检测- c

    指定严格的校验和算法。选项包括innodbcrc32,没有一个

    在本例中,innodb校验和算法:

    Innochecksum——strict-check=innodb ../data/test/tab1.ibd

    在本例中,crc32校验和算法:

    /data/test/tab1.ibd . innochecksum -C crc32 .

    以下条件适用:

    • 如果没有指定——严格检测选项,innochecksum验证对innodbcrc32而且没有一个

    • 如果您指定没有一个选项生成的校验和没有一个是允许的。

    • 如果您指定innodb选项生成的校验和innodb是允许的。

    • 如果您指定crc32选项生成的校验和crc32是允许的。

  • ——没有检查- n

    重写校验和时忽略校验和验证。选项只能与innochecksum——写选择。如果——写选项未指定,innochecksum终止。

    在本例中,aninnodb校验和被重写以替换无效的校验和:

    innodb ../data/test/tab1.ibd ./data/test/tab1.ibd
  • ——allow-mismatches——一个

    以前允许的校验和不匹配的最大数目innochecksum终止。默认设置为0。如果——allow-mismatches =N,在那里N> = 0N不匹配是允许的innochecksum终止在N+1.当——allow-mismatches为0,innochecksum在第一次校验和不匹配时终止。

    在本例中,一个现有的innodb校验和被重写为set——allow-mismatches为1。

    Innochecksum——allow-mismatches=1——write innodb ../data/test/tab1.ibd

    ——allow-mismatches设置为1,如果在1000页的文件中,第600页和第700页不匹配,则更新第0-599页和第601-699页的校验和。因为——allow-mismatches设置为1时,校验和容忍第一次不匹配并在第二次不匹配时终止,保持第600页和第700-999页不变。

  • ——写=的名字- w全国矿工工会

    重写校验和。重写无效的校验和时,——没有检查选项必须与——写选择。的——没有检查选项告诉innochecksum忽略无效校验和的验证。您不必指定——没有检查选项,如果当前校验和有效。

    属性时必须指定算法——写选择。的可能值——写选项有:

    • innodb:在软件中计算的校验和,使用的是原始算法InnoDB

    • crc32属性计算的校验和crc32算法,可能有硬件辅助。

    • 没有一个:常数。

    ——写选项将整个页面重写到磁盘。如果新的校验和与现有的校验和相同,则新的校验和不会写入磁盘,以最小化I/O。

    innochecksum方法时获取排他锁——写选项。

    在这个例子中,acrc32校验和的目的tab1.ibd

    /data/test/tab1.ibd . Innochecksum -w crc32 .

    在这个例子中,acrc32重写校验和以替换无效的校验和crc32校验和:

    Innochecksum——no-check——write crc32 ../data/test/tab1.ibd
  • ——page-type-summary- s

    显示表空间中每种页类型的计数。使用示例:

    Innochecksum——page-type-summary ../data/test/tab1.ibd

    的示例输出——page-type-summary

    文件::. . /数据/测试/ tab1。炎症性肠病  ================ 页面类型总结 ============== # PAGE_COUNT PAGE_TYPE  =============================================== 2索引页0 Undo日志页面1 Inode 0插入缓冲空闲列表页面2刚分配页面1插入缓冲图0系统事务系统第1页文件空间头0程度描述符页0 BLOB页面压缩BLOB 0 0其他类型的页面  =============================================== 附加信息:撤销页面类型:0插入,0更新,0其他撤销页面状态:0活动,0缓存,0 to_free, 0 to_purge, 0准备,0其他
  • ——page-type-dump- d

    将表空间中每个页的页类型信息转储为stderrstdout.使用示例:

    Innochecksum——page-type-dump=/tmp/a.txt ../data/test/tab1.ibd .txt ./data/test/tab1.ibd .txt
  • ——日志- l

    的日志输出innochecksum工具。必须提供日志文件名。日志输出包含每个表空间页的校验和值。对于未压缩的表,还提供了LSN值。的——日志取代了——调试选项,在早期版本中可用。使用示例:

    Innochecksum——log=/tmp/log.txt ../data/test/tab1.ibd . log=/tmp/log.txt .

    或者:

    Innochecksum -l /tmp/log.txt ../data/test/tab1.ibd .txt
  • -选择。

    指定-选项从标准输入读取。如果-选项在以下情况下缺失从标准中读取预计,innochecksum打印innochecksum的使用信息-选项被省略。示例用法:

    猫t1。Ibd | innochecksum -

    在这个例子中,innochecksumcrc32校验和算法a.ibd不变原t1.ibd文件。

    猫t1。Ibd | innochecksum——write=crc32 - > a.b d . Ibd

对多个自定义表空间文件运行innochecksum

下面的示例演示如何运行innochecksum在多个用户定义的表空间文件(.ibd文件)。

运行innochecksum对于所有表空间(.ibd)的文件测验数据库:

/ * .ibd innochecksum。/数据/测试

运行innochecksum对于所有表空间文件(.ibd文件),其文件名以t

innochecksum。/数据/测试/ t * .ibd

运行innochecksum对于所有表空间文件(.ibd文件)数据目录:

/ * / * .ibd innochecksum。/数据
请注意

运行innochecksum在Windows操作系统上不支持在多个用户定义的表空间文件上使用用于cmd . exe不支持glob模式展开。在Windows系统上,innochecksum必须为每个用户定义的表空间文件单独运行。例如:

innochecksum.exe t1。Ibd innochecksum.exe t2。innochecksum.exe t3.ibd

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

缺省情况下,只有一个InnoDB系统表空间文件(ibdata1),但是可以为system表空间定义多个文件innodb_data_file_path选择。属性定义了system表空间的三个文件innodb_data_file_path选择:ibdata1ibdata2,ibdata3

./bin/mysqld——no-defaults——innodb-data-file-path="ibdata: 10m;ibdata: 10m;ibdata: 10m:autoextend"

这三个档案(ibdata1ibdata2,ibdata3)形成一个逻辑系统表空间。运行innochecksum在构成一个逻辑系统表空间的多个文件上,innochecksum要求-选项从标准输入读取表空间文件,这相当于将多个文件连接起来创建一个文件。对于上面提供的示例,如下所示innochecksum命令将被使用:

Cat ibdata* | innochecksum -

请参阅innochecksum属性的详细信息-选择。

请注意

运行innochecksum在Windows操作系统上不支持在同一个表空间中的多个文件上,例如Windows shell用于cmd . exe不支持glob模式展开。在Windows系统上,innochecksum必须为每个系统表空间文件单独运行。例如:

Innochecksum.exe ibdata1 Innochecksum.exe ibdata2 Innochecksum.exe ibdata3