使用硬連結和coreutils的truncate工具shrink大檔案方法一例
一般直接rm大檔案必然會對資料庫伺服器的IO效能造成壓力,因此可以使用coreutils的truncate工具對大檔案進行shrink
該工具安裝方法如下:
#wget
#tar -zxvf coreutils-8.9.tar.gz
#cd coreutils-8.9
#./configure
#make
實驗如下:
[root@test /data]#du -hs S82.test.sql
907M S82.test.sql
對目標檔案建立硬連結:
#ln S82.test.sql S82.test.sql.hdlk
[root@test /data]#l *S82*
-rw-r--r-- 2 root root 950988446 Apr 28 17:09 S82.test.sql
-rw-r--r-- 2 root root 950988446 Apr 28 17:09 S82.test.sql.hdlk
注意 大小為900M左右,因此我們使用coreutils工具集中的truncate命令對大檔案進行shrink,可以寫個指令碼,
內容如下:
#cat truncate.sh
#!/bin/bash
TRUNCATE=/usr/local/bin/truncate
for i in `seq 900 -10 10 `; #從900 開始每次遞減10 ,輸出結果見下面
do
sleep 2
echo "$TRUNCATE -s ${i}M /data/S82.test.sql.hdlk"
$TRUNCATE -s ${i}M /data/S82.test.sql.hdlk
done
開始執行:
./truncate.sh
/usr/local/bin/truncate -s 900M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 890M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 880M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 870M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 860M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 850M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 840M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 830M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 820M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 810M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 800M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 790M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 780M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 770M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 760M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 750M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 740M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 730M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 720M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 710M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 700M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 690M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 680M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 670M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 660M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 650M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 640M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 630M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 620M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 610M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 600M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 590M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 580M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 570M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 560M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 550M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 540M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 530M /data/S82.test.sql.hdlk
........................................................
........................................................
/usr/local/bin/truncate -s 30M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 20M /data/S82.test.sql.hdlk
/usr/local/bin/truncate -s 10M /data/S82.test.sql.hdlk
shrink收縮後檔案大小為10M左右:
[root@alpha-mongo-140-51 /data]#ll S82*
-rw-r--r-- 2 root root 10485760 Jul 25 13:43 S82.sq_comment.sql
-rw-r--r-- 2 root root 10485760 Jul 25 13:43 S82.sq_comment.sql.hdlk
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2158661/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux---檔案、軟連結於硬連結檔案Linux
- Linux下的軟連結和硬連結,檔案拷貝的區別Linux
- 連結檔案 (硬連線 與 符號連線)符號
- linux檔案型別和軟硬連結祥析Linux型別
- 硬連結和軟連結
- “軟連結”和“硬連結”的區別
- 硬連結和軟連結的區別
- 大資料表的truncate,列刪除,shrink回收高水位大資料
- Linux軟連結和硬連結Linux
- 軟連結和硬連結詳解
- linux硬連結和軟連結Linux
- Linux(8) —— 硬連結和軟連結Linux
- sql server日誌不能shrink或truncateSQLServer
- Linux 軟連結和硬連結簡介Linux
- Linux精講——軟連結和硬連結Linux
- 深入理解硬連結和軟連結 (轉)
- Linux軟連線和硬連結Linux
- 檔案連結
- linux目錄和硬連結Linux
- SQL Server如何截斷(Truncate)和收縮(Shrink)事務日誌SQLServer
- 簡談linux中軟連結和硬連結的區別Linux
- shrink收縮檔案空間
- 軟連結與硬連結的區別
- 軟連線、硬連結 和 i節點(inode)
- 5分鐘讓你明白“軟連結”和“硬連結”的區別
- 5 分鐘讓你明白 “軟連結” 和“硬連結”的區別
- 使用awk和sed獲取檔案奇偶數行的方法總結
- 在Linux中,什麼是硬連結和軟連結?Linux
- 4種大檔案傳輸工具和軟體,用於共享大檔案
- 理解 Linux 的硬連結與軟連結Linux
- 硬連結與軟連結詳解
- 【linux命令之ln命令詳解(軟連結和硬連結)】Linux
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案
- 使用sed 命令查詢和替換檔案中的字串的方法總結字串
- windows生成硬連結Windows
- 使用者指南:Linux 檔案系統的連結Linux
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案(續)
- linux下軟連結與硬連結Linux