前段時(shí)間某數(shù)據(jù)庫存儲(chǔ)空間不足,領(lǐng)導(dǎo)讓我把舊表空間刪掉,用以回收存儲(chǔ)空間給當(dāng)前在用的表空間使用,所以有了寫一個(gè)腳本快速生成move表相關(guān)操作并且move方式對(duì)生產(chǎn)的影響能做到盡可能小的想法。時(shí)間緊迫,這里用了較為熟悉的shell方式。
舊表空間數(shù)據(jù)文件有一個(gè)多T,但實(shí)際使用空間只有300多G,很多表已經(jīng)清空了,表結(jié)構(gòu)還在。查詢了表的類型和索引類型,可以說是各種類型都有,部分表還帶LOB字段,總之就是表很多,種類很雜,簡(jiǎn)單的SQL語句拼接肯定是不行了。
總結(jié)可能會(huì)碰到的情況,實(shí)際上有以下幾種:
表為普通表,有普通索引和分區(qū)索引
表為普通表,僅有普通索引
表為普通表,僅有分區(qū)索引
表為普通表,無索引
表為分區(qū)表,有全局索引和本地索引
表為分區(qū)表,僅有全局索引
表為分區(qū)表,僅有本地索引
表為分區(qū)表,無索引
*表含有LOB字段的情況,可以后續(xù)多帶帶處理,因?yàn)榍闆r相對(duì)較少,僅普通LOB字段和分區(qū)LOB字段
我的處理思路是:
1、編輯好參數(shù)文件,包含屬主、表名、move并行度、表move目標(biāo)表空間、索引move目標(biāo)表空間。讀取一行后,將表的情況輸出至表臨時(shí)文件,將索引的情況輸出至索引臨時(shí)文件,內(nèi)容如下圖:
2.將得出的表和索引臨時(shí)文件根據(jù)是否分區(qū)的標(biāo)志位“YES”“NO”做處理。如下圖所示:
3.根據(jù)相應(yīng)的文件是否存在,從而根據(jù)不同的情況輸出不同情況下的SQL操作語句。
如果是普通表,則直接先move表,若表既有普通索引又有分區(qū)索引,則先rebuild普通索引,再將分區(qū)索引按分區(qū)rebuild(無法整個(gè)rebuild);若只有一種索引,則在move表后rebuild即可。如下圖所示:
4.如果是分區(qū)表,則要復(fù)雜一些。如果分區(qū)表既有全局索引又有分區(qū)索引,那么先rebuild全局索引,然后逐個(gè)move分區(qū)(加updateglobalindexes參數(shù)防止全局索引失效),當(dāng)move一個(gè)分區(qū)后,隨即rebuild這個(gè)分區(qū)上的所有分區(qū)索引的對(duì)應(yīng)分區(qū),再循環(huán)操作下一個(gè)表分區(qū)。如果分區(qū)表僅有一種索引,則也是根據(jù)索引類型,輸出對(duì)應(yīng)的SQL操作語句即可。
執(zhí)行腳本后,就將所有的move相關(guān)操作都輸出到了統(tǒng)一的SQL文件中,并將處理過的表按普通和分區(qū)表分區(qū)做了跟蹤列表。只需找個(gè)空閑的窗口后臺(tái)調(diào)用此SQL文件即可。如下圖所示:
當(dāng)然,腳本只是個(gè)工具,是輔助我們提高工作效率的,在move過程中,應(yīng)當(dāng)做好監(jiān)控,防止有異常產(chǎn)生,并寫好應(yīng)對(duì)異常的預(yù)案,比如失效索引批量重建啥的。而對(duì)于LOB字段,更應(yīng)當(dāng)根據(jù)實(shí)際情況來處理,需要考慮數(shù)據(jù)庫本身配置、性能以及LOB字段大小等。在真正刪除表空間及數(shù)據(jù)文件前,也應(yīng)當(dāng)最后確認(rèn)一下是否還有對(duì)象,并做自包含檢查。在刪除表空間之后,為防止特殊情況,可以再建一個(gè)同名的表空間,給一個(gè)很小的數(shù)據(jù)文件即可。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/130005.html
摘要:新晉技術(shù)專家下面是墨天輪部分新晉的技術(shù)專家。大家可以點(diǎn)擊往期閱讀墨天輪技術(shù)專家邀請(qǐng)函了解詳情,申請(qǐng)成為我們的技術(shù)專家,加入專家團(tuán)隊(duì),與我們一起創(chuàng)建一個(gè)開放互助的數(shù)據(jù)庫技術(shù)社區(qū)。新關(guān)聯(lián)公眾號(hào)墨天輪是一個(gè)開放互助的數(shù)據(jù)庫技術(shù)社區(qū)。 引言 近期我們?cè)贒BASK小程序增加了數(shù)據(jù)庫 MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的專題欄目和一些新的技術(shù)...
摘要:需求實(shí)現(xiàn)一個(gè)函數(shù),把源鏈表的頭結(jié)點(diǎn)移到目標(biāo)鏈表的開頭。要求是不能修改兩個(gè)鏈表的引用。跟前一個(gè)不同的是,這個(gè)是在不改變引用的情況下修改兩個(gè)鏈表自身。最優(yōu)的方案這個(gè)算法考的是對(duì)鏈表節(jié)點(diǎn)的插入和刪除。大致思路為對(duì)做刪除一個(gè)節(jié)點(diǎn)的操作。 TL;DR 用 in-place 的方式把一個(gè)鏈表的首節(jié)點(diǎn)移到另一個(gè)鏈表(不改變鏈表的引用),系列目錄見 前言和目錄 。 需求 實(shí)現(xiàn)一個(gè) moveNode()...
摘要:文和,創(chuàng)意實(shí)驗(yàn)室創(chuàng)意技術(shù)專家在機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺領(lǐng)域,姿勢(shì)預(yù)測(cè)或根據(jù)圖像數(shù)據(jù)探測(cè)人體及其姿勢(shì)的能力,堪稱最令人興奮而又最棘手的一個(gè)話題。使用,用戶可以直接在瀏覽器中運(yùn)行機(jī)器學(xué)習(xí)模型,無需服務(wù)器。 文 / ?Jane Friedhoff 和 Irene Alvarado,Google 創(chuàng)意實(shí)驗(yàn)室創(chuàng)意技術(shù)專家在機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺領(lǐng)域,姿勢(shì)預(yù)測(cè)或根據(jù)圖像數(shù)據(jù)探測(cè)人體及其姿勢(shì)的能力,堪稱最令人興...
摘要:需求實(shí)現(xiàn)一個(gè)函數(shù),把源鏈表的頭節(jié)點(diǎn)移到目標(biāo)鏈表。當(dāng)源鏈表為空時(shí)函數(shù)應(yīng)拋出異常。為了簡(jiǎn)化起見,我們會(huì)用一個(gè)對(duì)象來存儲(chǔ)改變后的源鏈表和目標(biāo)鏈表的引用。它也是函數(shù)的返回值。解法配合,這個(gè)非常簡(jiǎn)單,注意這個(gè)函數(shù)沒有改變兩個(gè)鏈表本身。 TL;DR 把一個(gè)鏈表的首節(jié)點(diǎn)移到另一個(gè)鏈表。系列目錄見 前言和目錄 。 需求 實(shí)現(xiàn)一個(gè) moveNode() 函數(shù),把源鏈表的頭節(jié)點(diǎn)移到目標(biāo)鏈表。當(dāng)源鏈表為空時(shí)...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20