共计 1902 个字符,预计需要花费 5 分钟才能阅读完成。
本篇内容介绍了“数据库表、索引、表空间的回收方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
说明:数据库运行一段时间后,需要对数据库进行归档的操作;
数据库归档完成后,需要对表和索引进行收缩才能真正的提高整个系统的运行效率。
如果需要对数据库的表空间进行回收,还需要对数据文件进行 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) || 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。
“数据库表、索引、表空间的回收方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!