成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

如何快速生成表MOVE相關操作

IT那活兒 / 1430人閱讀
如何快速生成表MOVE相關操作
點擊上方藍字關注我們


事情來由


前段時間某數(shù)據(jù)庫存儲空間不足,領導讓我把舊表空間刪掉,用以回收存儲空間給當前在用的表空間使用,所以有了寫一個腳本快速生成move表相關操作并且move方式對生產(chǎn)的影響能做到盡可能小的想法。時間緊迫,這里用了較為熟悉的shell方式。


表空間情況描述


舊表空間數(shù)據(jù)文件有一個多T,但實際使用空間只有300多G,很多表已經(jīng)清空了,表結構還在。查詢了表的類型和索引類型,可以說是各種類型都有,部分表還帶LOB字段,總之就是表很多,種類很雜,簡單的SQL語句拼接肯定是不行了。


思路梳理及腳本


總結可能會碰到的情況,實際上有以下幾種:

  1. 表為普通表,有普通索引和分區(qū)索引

  2. 表為普通表,僅有普通索引

  3. 表為普通表,僅有分區(qū)索引

  4. 表為普通表,無索引

  5. 表為分區(qū)表,有全局索引和本地索引

  6. 表為分區(qū)表,僅有全局索引

  7. 表為分區(qū)表,僅有本地索引

  8. 表為分區(qū)表,無索引


*表含有LOB字段的情況,可以后續(xù)多帶帶處理,因為情況相對較少,僅普通LOB字段和分區(qū)LOB字段


我的處理思路是:

1、編輯好參數(shù)文件,包含屬主、表名、move并行度、表move目標表空間、索引move目標表空間。讀取一行后,將表的情況輸出至表臨時文件,將索引的情況輸出至索引臨時文件,內(nèi)容如下圖:

2.將得出的表和索引臨時文件根據(jù)是否分區(qū)的標志位“YES”“NO”做處理。如下圖所示:

3.根據(jù)相應的文件是否存在,從而根據(jù)不同的情況輸出不同情況下的SQL操作語句。

如果是普通表,則直接先move表,若表既有普通索引又有分區(qū)索引,則先rebuild普通索引,再將分區(qū)索引按分區(qū)rebuild(無法整個rebuild);若只有一種索引,則在move表后rebuild即可。如下圖所示:

4.如果是分區(qū)表,則要復雜一些。如果分區(qū)表既有全局索引又有分區(qū)索引,那么先rebuild全局索引,然后逐個move分區(qū)(加updateglobalindexes參數(shù)防止全局索引失效),當move一個分區(qū)后,隨即rebuild這個分區(qū)上的所有分區(qū)索引的對應分區(qū),再循環(huán)操作下一個表分區(qū)。如果分區(qū)表僅有一種索引,則也是根據(jù)索引類型,輸出對應的SQL操作語句即可。


后續(xù)操作


執(zhí)行腳本后,就將所有的move相關操作都輸出到了統(tǒng)一的SQL文件中,并將處理過的表按普通和分區(qū)表分區(qū)做了跟蹤列表。只需找個空閑的窗口后臺調(diào)用此SQL文件即可。如下圖所示:



問題處理及總結


當然,腳本只是個工具,是輔助我們提高工作效率的,在move過程中,應當做好監(jiān)控,防止有異常產(chǎn)生,并寫好應對異常的預案,比如失效索引批量重建啥的。而對于LOB字段,更應當根據(jù)實際情況來處理,需要考慮數(shù)據(jù)庫本身配置、性能以及LOB字段大小等。在真正刪除表空間及數(shù)據(jù)文件前,也應當最后確認一下是否還有對象,并做自包含檢查。在刪除表空間之后,為防止特殊情況,可以再建一個同名的表空間,給一個很小的數(shù)據(jù)文件即可。


END




文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/130005.html

相關文章

  • DBASK問答集萃(2)

    摘要:新晉技術專家下面是墨天輪部分新晉的技術專家。大家可以點擊往期閱讀墨天輪技術專家邀請函了解詳情,申請成為我們的技術專家,加入專家團隊,與我們一起創(chuàng)建一個開放互助的數(shù)據(jù)庫技術社區(qū)。新關聯(lián)公眾號墨天輪是一個開放互助的數(shù)據(jù)庫技術社區(qū)。 引言 近期我們在DBASK小程序增加了數(shù)據(jù)庫 MongoDB、Redis、 Elasticsearch、DB2、Weblogic 等新的的專題欄目和一些新的技術...

    liuchengxu 評論0 收藏0
  • 用 JavaScript 實現(xiàn)鏈操作 - 10 Move Node In-place

    摘要:需求實現(xiàn)一個函數(shù),把源鏈表的頭結點移到目標鏈表的開頭。要求是不能修改兩個鏈表的引用。跟前一個不同的是,這個是在不改變引用的情況下修改兩個鏈表自身。最優(yōu)的方案這個算法考的是對鏈表節(jié)點的插入和刪除。大致思路為對做刪除一個節(jié)點的操作。 TL;DR 用 in-place 的方式把一個鏈表的首節(jié)點移到另一個鏈表(不改變鏈表的引用),系列目錄見 前言和目錄 。 需求 實現(xiàn)一個 moveNode()...

    CNZPH 評論0 收藏0
  • Move Mirror:使用 TensorFlow.js 在瀏覽器中預測姿勢之 AI 實驗

    摘要:文和,創(chuàng)意實驗室創(chuàng)意技術專家在機器學習和計算機視覺領域,姿勢預測或根據(jù)圖像數(shù)據(jù)探測人體及其姿勢的能力,堪稱最令人興奮而又最棘手的一個話題。使用,用戶可以直接在瀏覽器中運行機器學習模型,無需服務器。 文 / ?Jane Friedhoff 和 Irene Alvarado,Google 創(chuàng)意實驗室創(chuàng)意技術專家在機器學習和計算機視覺領域,姿勢預測或根據(jù)圖像數(shù)據(jù)探測人體及其姿勢的能力,堪稱最令人興...

    MiracleWong 評論0 收藏0
  • 用 JavaScript 實現(xiàn)鏈操作 - 09 Move Node

    摘要:需求實現(xiàn)一個函數(shù),把源鏈表的頭節(jié)點移到目標鏈表。當源鏈表為空時函數(shù)應拋出異常。為了簡化起見,我們會用一個對象來存儲改變后的源鏈表和目標鏈表的引用。它也是函數(shù)的返回值。解法配合,這個非常簡單,注意這個函數(shù)沒有改變兩個鏈表本身。 TL;DR 把一個鏈表的首節(jié)點移到另一個鏈表。系列目錄見 前言和目錄 。 需求 實現(xiàn)一個 moveNode() 函數(shù),把源鏈表的頭節(jié)點移到目標鏈表。當源鏈表為空時...

    suosuopuo 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<