# KILL操作

使用前请连接goInception并使用inception show processlist确认当前阶段(STATE)

阶段分为三种:

  • CHECKING (审核中)
  • EXECUTING (执行中)
  • BACKUP (备份中)

####KILL操作执行位置

  • 远端数据库,即执行实际sql的数据库
  • goInception
  • goInception配置的备份库

# goInception KILL

当前阶段 kill后的结果
CHECKING 当前语句 审核完成 后中止审核,此时仅返回从开始到当前语句的审核结果,后续SQL不再审核
EXECUTING 当前语句 执行完成 后中止执行,如果开启了备份,会执行备份操作,未开启则直接返回
BACKUP 当前binlog事件 解析完成后中止备份,但已生成的回滚语句会继续写入备份库,待写入完成后返回

# 远端数据库KILL(不建议)

当前阶段 kill后的结果
CHECKING kill操作不会影响审核,连接被kill后会自动重连(原因是审核失败**不会中止审核**,所以需要重连,并恢复断开的数据库,以避免后续SQL访问错数据库)
EXECUTING (语句kill后执行失败) 语句用时过长时,此时kill会直接停止goInception语句的执行,如果开启了备份,会执行备份操作,未开启则直接返回
EXECUTING (语句kill后执行成功,连接断开) 语句执行比较快时,可能已经执行成功,此时需要根据binlog备份做进一步校验,所以依赖备份功能
BACKUP <无>

# goInception备份库KILL (完全不建议)

当前阶段 kill后的结果
CHECKING 在开始备份前会自动检测连接并重连,所以该操作无效
EXECUTING 在开始备份前会自动检测连接并重连,所以该操作无效
BACKUP 执行可能成功也可能失败,会导致备份结果不确定,因此完全不建议在备份库执行KILL操作