zoukankan      html  css  js  c++  java
  • 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 重命名的表

    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
    
     
     
  • 相关阅读:
    创建FLASK,同步docker
    FLASK Buleprint
    restful api
    Angular JS
    线程日志
    将项目部署到linux下的docker容器中
    安装和卸载docker
    学习目录总编
    Ansible
    装饰器
  • 原文地址:https://www.cnblogs.com/imdba/p/13161799.html
Copyright © 2011-2022 走看看