1、重命名表
create table test_tmp like test; rename table test to test_bak20200619,test_tmp to test;
2、备份重命名表
mysqldump test_bak20200619
3、设置硬链接
ln /home/data/my3306/data/db1/test_bak20200619.ibd /home/data/my3306/data/db1/test_bak20200619.ibd.hdlk
4、mysql里执行drop 重命名的表
drop table db1.test_bak20200619;
5、os命令truncate分批删除硬链接对应的文件
bakdate=$(date "+%Y%m%d") file_size=$(du -sm /home/data/my3306/data/db1/table_bak${bakdate}.ibd.hdlk | awk '{print $1}') TRUNCATE=/usr/bin/truncate for i in `seq $file_size -2048 1024` do sleep 1 $TRUNCATE -s ${i}M /home/data/my3306/data/db1/table_bak${bakdate}.ibd.hdlk done