mysql大表归档后清理数据

 

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 table db1.test_bak20200619;
5、执行以下脚本
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

mysql大表归档后清理数据

上一篇:MySQL的备份策略


下一篇:adb---常用命令