Oracle Resize

chenoracle發表於2016-05-05
Oracle Resize


datafile,tempfile,undo空間使用過大時可以透過 resize將空間回收到 高水位線附近(不低於高水位);
其中表段,索引段存在高水位線,表空間的高水位線就是所有表段,索引段等高水位線的最大值;

---檢視所有資料檔案,undo檔案
佔用空間大小(filesize),
空閒空間大小(freesize),
使用空間大小(usedsize),
高水位線(hwmsize),
可以回收的空間(canshirnksize),
回收resize語句(cmd)

select a.file_id,
       a.file_name,
       a.filesize,
       b.freesize,
       (a.filesize - b.freesize) usedsize,
       c.hwmsize,
       c.hwmsize - (a.filesize - b.freesize) unsedsize_belowhwm,
       a.filesize - c.hwmsize canshrinksize,
       'alter database datafile ' || a.file_name || ' resize ' || c.hwmsize || 'M;' cmd
  from (select file_id, file_name, round(bytes / 1024 / 1024) filesize
          from dba_data_files) a,
       (select file_id, round(sum(dfs.bytes) / 1024 / 1024) freesize
          from dba_free_space dfs
         group by file_id) b,
       (select file_id, round(max(block_id) * 8 / 1024) HWMsize
          from dba_extents
         group by file_id) c
 where a.file_id = b.file_id
   and a.file_id = c.file_id
 order by unsedsize_belowhwm desc;

---執行此SQL前需要確保資料庫統計資訊是最新的;

查出來高水位線後,就可以透過cmd列 把資料檔案或者undo縮小到高水位線附近了,
alter database datafile 'datafilename' resize xxM;
alter database datafile 'undodatafilename' resize xxM;
查詢當前資料庫沒有使用臨時表空間時,也可以透過Resize回收臨時表空間;
alter database tempfile 'tempfilename' resize xxM;
---檢視資料檔案,undo,temp檔案大小
select *
  from (select bytes / 1024 / 1024 / 1024, file_name, tablespace_name
          from dba_data_files
        union all
        select bytes / 1024 / 1024 / 1024, file_name, tablespace_name
          from dba_temp_files)
 order by 1 desc;


除此以外,臨時表空間和UNDO表空間可以透過重建回收空間;
如果報錯ORA-03297,說明Resize的尺寸過小,需要適當調大reisze的值;

---檢視10號資料檔案中高水位線較高的區屬於哪些使用者以及段名,段型別
select *
  from (select owner, segment_name, segment_type, block_id
          from dba_extents
         where file_id =
               (select file_id from dba_data_files where file_id = 10)
         order by block_id desc)
 where rownum <= 5;

參考:
http://blog.chinaunix.net/uid-10218589-id-349050.html
http://blog.chinaunix.net/uid-42518-id-2404799.html

http://blog.itpub.net/6517/viewspace-536246

歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!

Oracle Resize

Oracle Resize



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2094469/,如需轉載,請註明出處,否則將追究法律責任。

相關文章