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

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

用于产生从某个数到另外一个数之间的所有整数
  例一:
  # seq
  结果是1
  例二:
  #!/bin/bash
  for i in `seq `; 步长为1 终值:10 起始值:1
  do
  echo $i;
  done
  或者用
  for i in $(seq )
  也可以
seq
-f, --format=FORMAT use printf style floating-point FORMAT (default: %g)
-s, --separator=STRING use STRING to separate numbers (default: /n)
-w, --equal-width equalize width by padding with leading zeroes
[root@localhost ~]#  seq  - 13    

14

产生大于等于13的序列 起始值:20 步长为:-3      
20 >13
20-3=17 >13
17-3=14 >13
14-3=11 <13 11不在[20,13]之间 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. Python Standard Library 学习(一) -- Built-in Functions 内建函数

    内建函数列表 Built-in Functions abs() divmod() input() open() staticmethod() all() enumerate() int() ord() ...

  2. NorFlash

    一.NorFlash概述 1.NorFlash Intel于1988年首先开发出NOR Flash 技术,彻底改变了原先由EPROM(Erasable Programmable Read-Only-M ...

  3. C语言怎么计算程序所花时间

    在函数之前和之后取得系统的时间,然后相减就是函数执行时间,不过在取得系统时间的时候,最小单位是微秒 具体代码如下: #include<stdio.h> #include<iostre ...

  4. 从UI Automation看Windows平台自动化测试原理

    前言 楼主在2013年初研究Android自动化测试的时候,就分享了几篇文章 Android ViewTree and DecorView Android自动化追本溯源系列(1): 获取页面元素 An ...

  5. 关于64位Win7/Win 8 下怎么学习汇编语言

    我看有许多同学用Win 7/Win 8 学习汇编,现在好多人的内存升级了都用64位系统了,但是64位W7没有自带的DEBUG和MASM. 1.首先下载DOSBOX,(下面附带地址)它的作用就是让你在6 ...

  6. 如何用 React Native 创建一个iOS APP?(三)

    前两部分,<如何用 React Native 创建一个iOS APP?>,<如何用 React Native 创建一个iOS APP (二)?>中,我们分别讲了用 React ...

  7. 【HDU3247】 Resource Archiver(DP+AC自动机+最短路)

    Resource Archiver Time Limit: 10000MS   Memory Limit: 100000KB   64bit IO Format: %I64d & %I64u ...

  8. asp.net 类库中获取session c#类中获取session

    asp.net  类库中获取session c#类中获取session 1. 先引入命名空间 using System.Web; using System.Web.SessionState; 在使用H ...

  9. Redis监控

    首先判断客户端和服务器连接是否正常 # 客户端和服务器连接正常,返回PONG redis> PING PONG # 客户端和服务器连接不正常(网络不正常或服务器未能正常运行),返回连接异常 re ...

  10. ECC内存

    ECC内存,即应用了能够实现错误检查和纠正技术(ECC)的内存条.一般多应用在服务器及图形工作站上,这将使整个电脑系统在工作时更趋于安全稳定.ECC是“Error Checking and Corre ...