溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

【TABLESPACE】怎么去降低數(shù)據(jù)文件的高水位呢(BLOCK_ID)

發(fā)布時(shí)間:2020-08-08 05:58:21 來(lái)源:ITPUB博客 閱讀:196 作者:xysoul_云龍 欄目:關(guān)系型數(shù)據(jù)庫(kù)

http://blog.itpub.net/29487349/viewspace-2143418/ 這邊文章說(shuō)了怎么收縮表空間,那么有的時(shí)候會(huì)出現(xiàn)以下情況,也就是我們查詢表空間空間空閑很多,但執(zhí)行該文章中查詢可以resize的空間卻很小,這是為什么呢? 好,下面我們來(lái)看一看。

實(shí)例,Oracle11.2.0.4 for redhat6.7 x64

查詢表空間使用狀況


點(diǎn)擊(此處)折疊或打開(kāi)

  1. TABLESPACE_NAME TOTAL FREE % Free
  2. ------------------------- ---------- ---------- ----------
  3. SYSAUX 520 27 5
  4. SYSTEM 750 9 1
  5. TEST 200 111 56 --- TEST表空間剩余111M(測(cè)試,使用數(shù)據(jù)較小)
  6. UNDOTBS1 75 1 1
  7. USERS 76.25 3 4

執(zhí)行 查詢可以resize的大小


點(diǎn)擊(此處)折疊或打開(kāi)

  1. Smallest
  2.                                                        Size Current Poss.
  3. FILE_NAME Poss. Size Savings
  4. -------------------------------------------------- -------- -------- --------
  5. /backup/oradata/mytest/test01.dbf 161 200 39
  6.                                                                      --------
  7. sum 39  也就是該數(shù)據(jù)文件可以釋放39M,那么這什么怎么回事呢

我們通過(guò)以下語(yǔ)句看看:


點(diǎn)擊(此處)折疊或打開(kāi)

  1. SQL> select owner ownr, segment_name name,PARTITION_NAME, segment_type type, extent_id exid, file_id fiid, block_id blid, blocks blks
  2.   2 from dba_extents
  3.   3 where tablespace_name ='TEST'
  4.   4 order by block_id
  5.   5 /
  6. ………………………………

  7. SCOTT OBJPART_ID INDEX 21 5 4352 128
  8. SCOTT OBJPART_ID INDEX 22 5 4480 128
  9. SCOTT OBJPART_ID INDEX 23 5 4608 128
  10. SCOTT OBJPART_ID INDEX 24 5 4736 128
  11. SCOTT OBJPART_ID INDEX 25 5 4864 128
  12. SCOTT OBJPART_ID INDEX 26 5 5120 128
  13. SCOTT OBJ_PART P20141231 TABLE PA 0 5 9600 1,024
  14. SCOTT OBJ_PART P20141231 TABLE PA 1 5 10624 1,024
  15. SCOTT OBJ_PART P20141231 TABLE PA 2 5 19584 432      --查出 該分區(qū)表block_id比較大,也就是占據(jù)數(shù)據(jù)文件的位置最尾端(相對(duì)其他數(shù)據(jù)塊))

那么我們可以通過(guò)move table方式降低該分區(qū)表的位置,也就移動(dòng)到考前點(diǎn)的位置,此處請(qǐng)注意關(guān)于分區(qū)表相關(guān)的表、索引情況,請(qǐng)根據(jù)業(yè)務(wù)、數(shù)據(jù)庫(kù)來(lái)做判斷

執(zhí)行下面命令:

點(diǎn)擊(此處)折疊或打開(kāi)

  1. SQL> alter table scott.obj_part MODIFY PARTITION p20141231 shrink space;  該命令并沒(méi)有降低數(shù)據(jù)文件中block_id大小,字面來(lái)理解,它只是負(fù)責(zé)收縮,降低該分區(qū)表的高水位。  該命令無(wú)需重建索引

  2. Table altered.



  3. SQL> alter table scott.obj_part move partition p20141231 tablespace test;  --move 移至,移到表空間最前面的空閑block中,需要重建索引

  4. Table altered.

再次查看表空間resize情況

點(diǎn)擊(此處)折疊或打開(kāi)

  1. SCOTT OBJPART_ID INDEX 23 5 4608 128
  2. SCOTT OBJPART_ID INDEX 24 5 4736 128
  3. SCOTT OBJPART_ID INDEX 25 5 4864 128
  4. SCOTT OBJPART_ID INDEX 26 5 5120 128
  5. SCOTT OBJ_PART P20141231 TABLE PA 0 5 5248 1,024
  6. SCOTT OBJ_PART P20141231 TABLE PA 1 5 6272 1,024
  7. SCOTT OBJ_PART P20141231 TABLE PA 2 5 7296 1,024  --位置已前移


  8. SQL> select file_name,
  9.   2 ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) smallest,
  10.   3 ceil( blocks*&&blksize/1024/1024) currsize,
  11.   4 ceil( blocks*&&blksize/1024/1024) -
  12.   5 ceil( (nvl(hwm,1)*&&blksize)/1024/1024 ) savings
  13.   6 from dba_data_files a,
  14.   7 ( select file_id, max(block_id+blocks-1) hwm
  15.   8 from dba_extents where tablespace_name='TEST'
  16.   9 group by file_id ) b
  17.  10 where a.file_id = b.file_id(+) and tablespace_name='TEST';

  18.                                                    Smallest
  19.                                                        Size Current Poss.
  20. FILE_NAME Poss. Size Savings
  21. -------------------------------------------------- -------- -------- --------
  22. /backup/oradata/mytest/test01.dbf 65 200 135
  23.                                                                      --------
  24. sum 135  --剩余空間變大

再次執(zhí)行相關(guān)alter …… resize操作即可。  當(dāng)執(zhí)行表、索引相關(guān)move、rebuild時(shí),請(qǐng)了解業(yè)務(wù)及相關(guān)結(jié)構(gòu),任何操作都有風(fēng)險(xiǎn),注意備份及操作規(guī)范。



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI