zoukankan      html  css  js  c++  java
  • MySQL 使用硬链接配合truncate 删除2.2T的表

    1 创建tmp 表并 rename 表
    mysql> rename table ep to ep_bak;
    Query OK, 0 rows affected (0.07 sec)
    mysql> rename table ep_tmp to ep;
    Query OK, 0 rows affected (0.01 sec)
    2 对bak表创建硬链接
    ln ep_bak.ibd ep_bak.ibd.hdlk
    root@rac1 # ll ep_bak.*
    -rw-rw---- 1 mysql mysql          9023 Jul 28  2011 ep_bak.frm
    -rw-rw---- 2 mysql mysql 2356792000512 Nov 30 18:05 ep_bak.ibd
    -rw-rw---- 2 mysql mysql 2356792000512 Nov 30 18:05 ep_bak.ibd.hdlk
    3 删除表 ep_bak
       drop table ep_bak;
    注意  表的大小为2194G,直接rm 必然会对数据库服务器的IO性能造成压力,因此我们使用coreutils 工具集中的truncate 对大文件进行shrink,脚本内容如下: 
     
    #!/bin/bash
    TRUNCATE=/usr/local/bin/truncate
    for i in `seq 2194 -10 10 `; #从2194 开始每次递减10 ,输出结果见下面
    do 
      sleep 2
      echo "$TRUNCATE -s ${i}G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk "
      $TRUNCATE -s ${i}G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
    done
     
    如何使用 coreutils ?
    #wget http://ftp.gnu.org/gnu/coreutils/coreutils-8.9.tar.gz
    #tar -zxvf coreutils-8.9.tar.gz 
    #cd coreutils-8.9
    #./configure
    #make
  • 相关阅读:
    刚开始用springboot踩的好多坑!!!
    AngularJS学习(一)
    linux上的第一个c语言程序
    设计模式——6大设计原则
    C# List的深复制
    C# XML 操作
    C#多线程学习
    实现树形结构
    观察者模式
    python3.3 MD5
  • 原文地址:https://www.cnblogs.com/lmaster/p/6373208.html
Copyright © 2011-2022 走看看