故障案例--DDL中断后,再次执行失败

现象

第一次执行ddl操作时由于oom导致中断,再次执行这个ddl报错

ALTER TABLE `Db_Order4` ADD `trackNumber1` VARCHAR(45) DEFAULT NULL COMMENT '内部单号' AFTER `trackNumber`;

ERROR 1050 (42S01): Table 'mabang_order/#sql-ib9302' already exists

处理方法

1 create table tmp like table_name;
2 alter table tmp ADD `trackNumber1` VARCHAR(45) DEFAULT NULL COMMENT '内部单号' AFTER `trackNumber`;
3 cp tmp.frm "#sql-ib9302.frm"
4 改权限为mysql chown mysql:mysql "#sql-ib8665.frm"
5 drop table `#mysql50##sql-ib9302`
6 检查下主从状态,跳过错误

7 再次执行ALTER TABLE `Db_Order4`  ADD `trackNumber1` VARCHAR(45) DEFAULT NULL COMMENT '内部单号' AFTER `trackNumber`;


故障原因

应该是ddl时由于db宕机等非正常关闭导致无法全部回滚,残留了一些临时文件,具体是个什么流程未知

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值