大表DROP刪除小技巧

2021-09-05 04:52:59 字數 771 閱讀 4912

在日常工作中,經常會遇到歷史大表從主庫上遷移到備份機,以便騰出主庫空間,那麼如果你直接drop table 後,可能會引起資料庫抖動,連線數公升高等問題,從而影響業務。

那麼用乙個小技巧,即可輕鬆平滑的從主庫上刪除歷史大表。

1、建立乙個硬鏈結,在drop table 表時,"欺騙"mysql已經刪除完畢。

ln test.ibd test.ibd.hdlk

2、這個時候不要直接rm test.ibd.hdlk,這樣會引起磁碟io轉速上公升,mysql會發生效能抖動。

我們這裡寫乙個指令碼,每次迴圈1g,休眠2秒,直至刪除完。

1)先移動test.ibd.hdlk到/data/bak/目錄下

mv test.ibd.hdlk /data/bak/

2)執行下面的指令碼即可:

#!/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

注:先ll -h test.ibd.hdlk看一下該檔案有多少g,然後輸入seq後面,上述例子為100g。

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...