在日常工作中,經常會遇到歷史大表從主庫上遷移到備份機,以便騰出主庫空間,那麼如果你直接drop table 後,可能會引起資料庫抖動,連線數公升高等問題,從而影響業務。
那麼用乙個小技巧,即可輕鬆平滑的從主庫上刪除歷史大表。
1、建立乙個硬鏈結,在drop table 表時,"欺騙"mysql已經刪除完畢。
ln test.ibd test.ibd.hdlk2、這個時候不要直接rm test.ibd.hdlk,這樣會引起磁碟io轉速上公升,mysql會發生效能抖動。
我們這裡寫乙個指令碼,每次迴圈1g,休眠2秒,直至刪除完。
1)先移動test.ibd.hdlk到/data/bak/目錄下
mv test.ibd.hdlk /data/bak/
2)執行下面的指令碼即可:
注:先ll -h test.ibd.hdlk看一下該檔案有多少g,然後輸入seq後面,上述例子為100g。#!/bin/bash
truncate=/usr/bin/truncate
for i in `seq 100 -1 0 `
#從100g 開始每次遞減1g,最終讓檔案變成0
do sleep 2
echo "$truncate -s $g /data/bak/test.ibd.hdlk"
$truncate -s $g /data/bak/test.ibd.hdlk
done
Oracle恢復誤操作drop刪除的表
1.刪除表中資料兩種方法 a.delete from my table b.truncate table my table 2.刪除整個表 drop table my table 如何恢復不小心 drop 掉的表呢,其實 oracle 中也有類似的 站 比如不小心刪除了表 my table drop...
Oracle恢復誤操作drop刪除的表
1.刪除表中資料兩種方法 a.delete from my table b.truncate table my table 2.刪除整個表 drop table my table 3.如何恢復不小心 drop 掉的表呢,其實 oracle 中也有類似的 站 比如不小心刪除了表 my table.dr...
tableView 刪除小技巧
滑動刪除 void tableview uitableview tableviewcommiteditingstyle uitableviewcelleditingstyle editingstyleforrowatindexpath nsindexpath indexpath 此時刪除按鈕為del...