問(wèn)題描述
某日接到某銀行的故障請(qǐng)求,Linux系統(tǒng)根目錄使用率100%,而當(dāng)前服務(wù)器上只運(yùn)行了一個(gè)db2數(shù)據(jù)庫(kù),因此希望我們遠(yuǎn)程幫助釋放一部分空間(至少釋放到不會(huì)觸發(fā)告警的使用率),并且為當(dāng)前服務(wù)器已經(jīng)新申請(qǐng)了磁盤(pán)(存儲(chǔ))。
首先排查操作系統(tǒng)根文件系統(tǒng)使用率,確認(rèn)當(dāng)前根文件系統(tǒng)可用總?cè)萘坎蛔?T,數(shù)據(jù)庫(kù)表空間合計(jì)占用超過(guò)900G。因此,排出掉操作系統(tǒng)本身占用及db2軟件(實(shí)例為循環(huán)日志模式,事務(wù)日志以及診斷日志合計(jì)不足12G),若要解決問(wèn)題,只能表空間容器上下手。
解決方案
思路1:
首先排查根文件系統(tǒng)是否為卷組。若為邏輯卷組,只需要將新申請(qǐng)的磁盤(pán)做成pv分配給VG,然后在線擴(kuò)容lv即可。
實(shí)際情況為,當(dāng)前系統(tǒng)搭建的較早,當(dāng)初直接將sda的某個(gè)分區(qū)給了根,無(wú)法實(shí)現(xiàn)擴(kuò)容。
思路2:
db2數(shù)據(jù)庫(kù)的DMS表空間容器(類似于Oracle數(shù)據(jù)庫(kù)表空間的datafile)可以實(shí)現(xiàn)縮容,語(yǔ)法:
db2 “alter tablespace tablespace_name resize (file file_name size )”
經(jīng)過(guò)查詢表空間的使用率,用戶自定義的表空間有兩個(gè),分別為DMS_DATA和DMS_IDX,使用率都較高,而且數(shù)據(jù)下發(fā)庫(kù)的表不允許清理,再考慮碎片的影響,因此容器縮容方案預(yù)估只能釋放極少數(shù)空間。
思路3:
基于db2數(shù)據(jù)庫(kù)表空間的容器無(wú)法像Oracle數(shù)據(jù)庫(kù)那樣實(shí)現(xiàn)數(shù)據(jù)文件移動(dòng)(甚至是12C可以在線rename),按照IBM正規(guī)的解決表空間移動(dòng)的方式為備份再恢復(fù),需要先將數(shù)據(jù)庫(kù)全量備份,然后restore redirect generate script,通過(guò)手動(dòng)修改恢復(fù)腳本,將表空間容器重新指定,然后執(zhí)行腳本恢復(fù)即可。
理論上可行,實(shí)際驗(yàn)證時(shí)發(fā)現(xiàn)時(shí)間過(guò)長(zhǎng),允許的停機(jī)窗口遠(yuǎn)遠(yuǎn)不夠。經(jīng)過(guò)最簡(jiǎn)單的cp測(cè)試,發(fā)現(xiàn)當(dāng)前機(jī)器連接的存儲(chǔ)每秒讀寫(xiě)速度低于70MB/s,而數(shù)據(jù)庫(kù)大小超過(guò)900G,且沒(méi)有開(kāi)啟歸檔(循環(huán)日志模式),備份時(shí)只能選擇離線備份(離線備份期間數(shù)據(jù)庫(kù)無(wú)法連接使用),再包含恢復(fù)時(shí)間,總時(shí)長(zhǎng)計(jì)算下來(lái)超過(guò)了7.5小時(shí)。
思路4:
經(jīng)過(guò)多方驗(yàn)證之后,既然無(wú)法在數(shù)據(jù)庫(kù)側(cè)解決掉此問(wèn)題,那么便選擇欺騙數(shù)據(jù)庫(kù),通過(guò)軟連接的方式解決,即關(guān)閉數(shù)據(jù)庫(kù)將表空間DMS_IDX的容器mv到新的文件系統(tǒng),掉釋放空間,然后創(chuàng)建軟連接到原來(lái)的位置,此方案有以下優(yōu)勢(shì):
1、DMS_IDX表空間只有100G,按當(dāng)前的磁盤(pán)速度只需要大約25分鐘左右,滿足停機(jī)時(shí)間窗。并且如果數(shù)據(jù)庫(kù)出現(xiàn)異常,可以通過(guò)mv回去的方式回退。
2、DMS_IDX為存放索引的表空間,萬(wàn)一發(fā)生極端情況出現(xiàn)損壞,可以通過(guò)rebulid index的方式恢復(fù),最起碼能保證數(shù)據(jù)不丟失。
執(zhí)行:
首先將新申請(qǐng)的磁盤(pán)創(chuàng)建為pv,組成新的vg,劃新的lv掛載成新的文件系統(tǒng)(做成vg的目的是若干年后可以直接在線擴(kuò)容)。
(截圖為測(cè)試環(huán)境問(wèn)題復(fù)現(xiàn))
關(guān)閉數(shù)據(jù)庫(kù),mv容器,并且創(chuàng)建軟連接。
db2stop force
mv /home/db2inst1/others/dms_idx01 /new_datafile/sample/
ln -s /new_datafile/sample/dms_idx01 /home/db2inst1/others/dms_idx01
db2start
重新啟動(dòng)數(shù)據(jù)庫(kù),檢查表空間狀態(tài)一切正常,走索引查詢部分表數(shù)據(jù)測(cè)試正常。
此處檢查容器位置,依然為mv之前的位置,對(duì)數(shù)據(jù)庫(kù)無(wú)感知。
檢查文件系統(tǒng)使用率已釋放。
Perfect!完成!
END
更多精彩干貨分享
點(diǎn)擊下方名片關(guān)注
IT那活兒
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129734.html
摘要:新晉技術(shù)專家下面是墨天輪部分新晉的技術(shù)專家。大家可以點(diǎn)擊往期閱讀墨天輪技術(shù)專家邀請(qǐng)函了解詳情,申請(qǐng)成為我們的技術(shù)專家,加入專家團(tuán)隊(duì),與我們一起創(chuàng)建一個(gè)開(kāi)放互助的數(shù)據(jù)庫(kù)技術(shù)社區(qū)。新關(guān)聯(lián)公眾號(hào)墨天輪是一個(gè)開(kāi)放互助的數(shù)據(jù)庫(kù)技術(shù)社區(qū)。 引言 近期我們?cè)贒BASK小程序增加了數(shù)據(jù)庫(kù) MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的專題欄目和一些新的技術(shù)...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20