数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

做了archive后如何收缩Oracle的数据文件


发布日期:2023年10月13日
 
做了archive后如何收缩Oracle的数据文件

在日常的工作和学习中很多人在对数据库中的数据做了archive后数据量会出现减少的情况在这种前提下原来定义的数据文件假如不进行收缩就会浪费很多的空间在下文中我们将详细介绍一种解决此问题的方法

首先停止listener避免在rebuild时有dml操作

利用Toad的tools>rebuild multiple objects对欲收缩的表空间所涉及的表及索引进行rebuild(就是alter table table_name move tablespace 命令)

例子

AltertableSICS_HISTORYCOD_AMOUNTmove

TABLESPACETBSP

Parallel(Degree);

AlterTableSICS_HISTORYCOD_AMOUNTnoparallel;

AlterindexSICS_HISTORYIX_COD_AMOUNTrebuild

TABLESPACETBSP

Parallel(Degree)Nologging

online;

AlterindexSICS_HISTORYIX_COD_AMOUNTnoparallel;

选择项中我们可以选择rebuild associated indexes with tables这样在产生脚本时可以同时对index做rebuild(注意table如果move了表空间必须对index做rebuild)

Rebuild结束后对数据文件的实际大小做评估

()找出表空间所涉及的所有数据文件

sql>select * from dba_data_files; 》可以获得file_id

()找到最大的block_id

SQL>select max(block_id)*db_block_size// from dba_extents where file_id=;

收缩数据文件的空间

SQL> alter database datafile path/data_file resize xxxM; 此值来自于()

上一篇:ORACLE Developer/2000 编程技巧

下一篇:可预见的Oracle应用程序性能调优