raphael75 Asked: 2017-01-28 07:39:51 +0800 CST2017-01-28 07:39:51 +0800 CST 2017-01-28 07:39:51 +0800 CST 停止正在进行的mysql维护检查是否安全? 772 我正在使用 HeidiSQL 并对数据库中的所有表(mysql 5.5.46-0+deb7u1-log)运行维护检查: CHECK TABLE `database`.`table` QUICK FAST MEDIUM 它只是遍历并在每个表上运行该命令,一次一个。但是,我需要重新启动服务器。在不破坏任何东西的情况下杀死这个检查是否安全? mysql mysql-5.5 1 个回答 Voted Best Answer RolandoMySQLDBA 2017-01-28T07:56:34+08:002017-01-28T07:56:34+08:00 请注意MySQL 文档中CHECK TABLE关于在 InnoDB 表上运行的内容,项目符号 7 在标题 CHECK TABLE Usage Notes for InnoDB Tables 下 在大型 InnoDB 表上运行 CHECK TABLE 时,其他线程可能会在 CHECK TABLE 执行期间被阻塞。为避免超时,CHECK TABLE 操作的信号量等待阈值(600 秒)延长了 2 小时(7200 秒)。如果 InnoDB 检测到信号量等待 240 秒或更长时间,它会开始将 InnoDB 监视器输出打印到错误日志中。如果锁定请求超出信号量等待阈值,InnoDB 会中止进程。要完全避免信号量等待超时的可能性,您可以运行 CHECK TABLE QUICK 而不是 CHECK TABLE。 CHECK TABLE从不意味着进行写入,只是在最坏的情况下阻止其他连接。CHECK TABLE作为对其他连接的礼貌,应该在 4 分钟后自行中止。在您的情况下,如果还有其他进程,请等待 4-5 分钟。然后杀死进程。如果没有其他东西在运行,请立即终止该进程。在它仍在运行的情况下进行关机可能会阻止关机 4 分钟或更长时间,但最终会关机。 请SET GLOBAL innodb_fast_shutdown = 0提前跑。
请注意MySQL 文档中
CHECK TABLE
关于在 InnoDB 表上运行的内容,项目符号 7 在标题 CHECK TABLE Usage Notes for InnoDB Tables 下CHECK TABLE
从不意味着进行写入,只是在最坏的情况下阻止其他连接。CHECK TABLE
作为对其他连接的礼貌,应该在 4 分钟后自行中止。在您的情况下,如果还有其他进程,请等待 4-5 分钟。然后杀死进程。如果没有其他东西在运行,请立即终止该进程。在它仍在运行的情况下进行关机可能会阻止关机 4 分钟或更长时间,但最终会关机。请
SET GLOBAL innodb_fast_shutdown = 0
提前跑。