在大表执行DDL的过程中,若临时中断,会发生什么状况,需要特别处理吗?

Posted zhouwanchun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在大表执行DDL的过程中,若临时中断,会发生什么状况,需要特别处理吗?相关的知识,希望对你有一定的参考价值。

在大表执行DDL的过程中,若临时中断,会发生什么状况,需要特别处理吗?


前提说明:mysql5.7.23、innodb表、“双1”。

1、添加/删除列,采用copy的方式。
    ctrl+c。在当前session中,手动执行ctrl+c。无影响,并且会自动删除产生的临时文件。
    kill -9。在执行DDL的时候,服务器发生意外宕机或者手动执行kill -9。待MySQL启动后,则会自动执行InnoDB Recovered流程。并且不会删除产生的临时文件,需要手工处理。 


2、添加/删除索引,采用INPLACE方式。
    ctrl+c。在当前session中,手动执行ctrl+c。无影响,并且会自动删除产生的临时文件。
    kill -9。不会删除临时文件,也不会执行InnoDB Recovered流程并且报错Operating system error number 2 in a file operation ....OS error: 71.

在开始执行alter table的过程中,在没有结束的时候,并不会写入到binglog文件中。

 

以上是关于在大表执行DDL的过程中,若临时中断,会发生什么状况,需要特别处理吗?的主要内容,如果未能解决你的问题,请参考以下文章

微机原理中8086中啥是硬中断,啥是软中断,二者区别在哪

蟒蛇:MYSQLdb。如何在不执行 select * 在大表中获取列名?

MySQL查询在大表上很慢

TIDB海量数据新增索引

TIDB海量数据新增索引

全套异常捕获与处理