http://blog.csdn.net/wyzxg/article/details/8626814

http://blog.itpub.net/22664653/viewspace-750408/

  1. 用于产生从某个数到另外一个数之间的所有整数
  2.   例一:
  3.   # seq
  4.   结果是1
  5.   例二:
  6.   #!/bin/bash
  7.   for i in `seq `; 步长为1 终值:10 起始值:1
  8.   do
  9.   echo $i;
  10.   done
  11.   或者用
  12.   for i in $(seq )
  13.   也可以
  14. seq
  15. -f, --format=FORMAT use printf style floating-point FORMAT (default: %g)
  16. -s, --separator=STRING use STRING to separate numbers (default: /n)
  17. -w, --equal-width equalize width by padding with leading zeroes
  1. [root@localhost ~]# seq - 13
  2.  
  3. 14
  4.  
  5. 产生大于等于13的序列 起始值:20 步长为:-3
    20 >13
    20-3=17 >13
    17-3=14 >13
    14-3=11 <13 11不在[20,13]之间
  6.  
  7. sed a b c
    等价于
    while a > c
    print a
    a=a+b

因为一个收集集团机器的历史性能的数据库的一个表涨到2.2 T,而磁盘空间总共2.6 T,和开发讨论之后决定废弃该表,对数据进行清理。问题是如何在生产环境下删除2.2 T 的文件并不能影响数据库服务器的IO性能?

这里给大家介绍一个使用硬链接和truncate 工具处理删除大数据文件的方法:
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
 
使用truncate 工具删除数据时服务器IO负载,并未对服务器造成影响
 
 
root@rac1 # more truncate_ep.1130.log 
/usr/local/bin/truncate -s 2194G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
/usr/local/bin/truncate -s 2184G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
/usr/local/bin/truncate -s 2174G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
/usr/local/bin/truncate -s 2164G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
/usr/local/bin/truncate -s 2154G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
/usr/local/bin/truncate -s 2144G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
/usr/local/bin/truncate -s 2134G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
/usr/local/bin/truncate -s 2124G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
/usr/local/bin/truncate -s 2114G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
/usr/local/bin/truncate -s 2104G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
/usr/local/bin/truncate -s 2094G /home/mysql/data3306/mysql/monitor/ep_bak.ibd.hdlk
.......
 
如何使用 coreutils ?
#tar -zxvf coreutils-8.9.tar.gz 
#cd coreutils-8.9
#./configure
#make

mysql使用硬链接配合truncate 删除2.2T的表 --杨奇龙的更多相关文章

  1. MySQL 使用硬链接配合truncate 删除2.2T的表

    1 创建tmp 表并 rename 表 mysql> rename table ep to ep_bak; Query OK, 0 rows affected (0.07 sec) mysql& ...

  2. 利用硬链接和truncate降低drop table对线上环境的影响

    众所周知drop table会严重的消耗服务器IO性能,如果被drop的table容量较大,甚至会影响到线上的正常. 首先,我们看一下为什么drop容量大的table会影响线上服务 直接执行drop ...

  3. mysql数据库新增、修改、删除字段和修改表名

    Mysql 删除,添加或修改表字段 删除 ALTER TABLE testalter_tbl DROP i; 新增 ALTER TABLE testalter_tbl ADD i INT; 指定位置新 ...

  4. MetaData Lock 杨奇龙 ---MYSQL博客专家

    http://blog.itpub.net/22664653/viewspace-1791608/ http://blog.csdn.net/dba_waterbin/article/details/ ...

  5. Linux命令——ln命令创建和删除软、硬链接(6/29)

      ln命令用来为文件创建链接,连接类型分为硬链接和符号链接两种,默认的连接类型是硬连接.如果要创建符号连接必须使用"-s"选项.  用法:  ln  [options]  sou ...

  6. Linux系统硬链接和软链接介绍

    1.链接的概念 在Linux系统中链接分为硬链接和软连接两种,一种为硬链接,另一种为软连接或符号链接(symbolic Link).ln命令就是创建链接文件的,在默认不带参数的情况下,执行ln命令创建 ...

  7. linux 软连接和硬链接

    硬链接 ln sourceFile targetFile 硬链接只能给文件创建,不能为目录建立硬链接,硬链接不能跨分区创建,  硬链接会增加inode连接数, 硬链接的文件删除不影响其他文件 课外: ...

  8. Linux中的硬链接和软链接

    软链接和硬链接 命令ln ln是创建链接的命令: 创建硬链接:ln file link 创建软链接:ln -s file link 硬链接 硬链接(hard link)是Unix系统最早的创建链接的方 ...

  9. 软硬链接、文件删除原理、linux中的三种时间、chkconfig优化

    第1章 软硬链接 1.1 硬链接 1.1.1 含义 多个文件拥有相同的inode号码 硬链接即文件的多个入口 1.1.2 作用 防止你误删除文件 1.1.3 如何创建硬链接 ln 命令,前面是源文件  ...

随机推荐

  1. 结合使用 Oracle Database 11g 和 Python

    结合使用 Oracle Database 11g 和 Python 本教程介绍如何结合使用 Python 和 Oracle Database 11g. 所需时间 大约 1 个小时 概述 Python ...

  2. "The connection for the USB device '###' was unsuccessful. The device is currently in use"

    一.问题描述 1.情景描述 笔者的物理主机系统是“windows7 64位”,想使用“摄像头录像大师”.这个软件在录制视频的过程中,需要调用windows自带的"windows media ...

  3. 过滤器(Filter)

    day21 过滤器概述 1 什么是过滤器 过滤器JavaWeb三大组件之一,它与Servlet很相似!不它过滤器是用来拦截请求的,而不是处理请求的. 当用户请求某个Servlet时,会先执行部署在这个 ...

  4. RPC通信编程

    使用 RPC 编程是在客户机和服务器实体之间进行可靠通信的最强大.最高效的方法之一.它为在分布式计算环境中运行的几乎所有应用程序提供基础. RPC 是什么? RPC 的全称是 Remote Proce ...

  5. 【关于JavaScript】常见表单用户名、密码不能为空

    在论坛等系统的用户注册功能中,如果用户忘记填写必填信息,如用户名.密码等,浏览器会弹出警告框,提示用户当前有未填信息. 这个典型的应用就是通过JavaScript实现的.如图所示是一个简单的用户注册页 ...

  6. 【 UVALive - 2197】Paint the Roads(上下界费用流)

    Description In a country there are n cities connected by m one way roads. You can paint any of these ...

  7. 最好的JAVA IDE IntelliJ IDEA使用简介(一)—之界面元素

    打开IDEA,(当第一次打开的时候出现的是一个欢迎页面,随便创建一个project来进入到IDEA的主界面),主界面显示如下: 主界面由6个主要区域组成(图中红色数字标注的) 1.菜单和工具栏 2.导 ...

  8. 【HDOJ】1501 Zipper

    DFS.注意剪枝,0ms. #include <stdio.h> #include <string.h> #define False 0 #define True 1 #def ...

  9. MyEclipse Spring被删之后,如何在myeclipse里面重新导入

    1.找到项目文件 2.用记事本打开 .project 把里面涉及到spring的全部删除就可以了.

  10. MessageFormat.format处理单引号和大括号

    在MessageFormat.format方法中组装jason数据字符串:{code:"w1",des:"w2"},起止分别有左大括号和右大括号.方法是将单引号 ...