您好,登錄后才能下訂單哦!
本篇內容介紹了“數據庫表、索引、表空間的回收方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
說明:數據庫運行一段時間后,需要對數據庫進行歸檔的操作;
數據庫歸檔完成后,需要對表和索引進行收縮才能真正的提高整個系統的運行效率。
如果需要對數據庫的表空間進行回收,還需要對數據文件進行rsize的操作;
詳細操作步驟:
一、表和索引的收縮
1、查看需要進行收縮的對象(查看某個表空間下面,可回收空間超過100M的表)
腳本:
SELECT NUM_ROWS,AVG_ROW_LEN*NUM_ROWS/1024/1024/0.9 pinggu, BLOCKS*8/1024shiji,(BLOCKS*8/1024-AVG_ROW_LEN*NUM_ROWS/1024/1024/0.9) MB,TABLE_NAME
FROM dba_tables
WHERE tablespace_name='<tablespace_name>' AND
BLOCKS*8/1024-AVG_ROW_LEN*NUM_ROWS/1024/1024/0.9>100 AND rownum<11 order by mb desc;
2、進行表的收縮
1)打開表的行遷移
腳本: alter table <table_name> enable row movement ;
2)進行表的收縮
腳本:alter table <table_name> shrink space compcat;
3)進行高水位線的回收
alter table <table_name> shrink space;
3、進行索引的回收(REBUILD和SHRINK都可以實現這個目的)
1)重建索引的腳本:
ALTER INDEX <INDEX_name>
REBUILD
NOCOMPRESS
NOPARALLEL
TABLESPACE <tablespace_name>
STORAGE (
INITIAL 1M
NEXT 1M
PCTINCREASE 0
)
ONLINE;
2)進行索引的收縮:
alter index <INDEX_name> shrink space;
4、運行重新編譯腳本utlrp.sql,(因為開啟行遷移后,可能有些對象會失效)
cd $ORACLE_HOME
@/rdbms/admin/utlrp.sql
二、表空間的回收
表空間的回收歸根到底是數據文件大小的回收;
1、表空間回收大小的腳本和查看
select a.file#,a.name,a.bytes/1024/1024 CurrentMB,
ceil(HWM * a.block_size)/1024/1024 ResizeTo,
(a.bytes - HWM * a.block_size)/1024/1024 ReleaseMB,
'alter database datafile '''||a.name||''' resize '||
ceil(HWM * a.block_size/1024/1024) || 'M;' ResizeCMD
from v$datafile a,
(select file_id,max(block_id+blocks-1) HWM
from dba_extents where file_id in
(select b.file# From v$tablespace a ,v$datafile b
where a.ts#=b.ts# and a.name='<tablespace_name>')
group by file_id) b
where a.file# = b.file_id(+)
and (a.bytes - HWM *block_size)>0
order by 5
2、某些數據文件的使用率很小,但是進行數據文件的Resize時候卻回收不了多少空間,可以通過以下語句查看相應
文件的段分配情況
select * from dba_extents where tablespace_name='<tablespace_name> ' AND FILE_ID='<FILE_ID>' ORDER BY BLOCK_ID DESC;
說明:數據文件的可以resize的大小是由最大的BLOCK_ID所決定的,因此可以通過上面的shrink或者move命令進行操作;
3、進行數據文件的RESIZE操作
ALTER DATABASE DATAFILE '/oracle/ID1/112_64/dbs/oradataccdata.dbf'(數據文件的位置)
RESIZE 10000M。
“數據庫表、索引、表空間的回收方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。