Oracle数据库降低水位线
一.问题现在product01.ora数据文件总大小为320003.2万MB但是实际只用了800MB。这种情况下我缩小这个数据文件却报错如下。分析原因井确实有100米水只在10米处但是历史最高水位线却停留在了90米卡住了我们要把这个最高水位线降下来才能缩小该数据文件。二.解决步骤1.查看该文件的file_id数据文件id-- 1.查看表空间和对应物理文件名 select b.file_id 物理文件号, b.file_name 物理文件名, b.tablespace_name 表空间, b.bytes/1024/1024 大小MB, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用MB, substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率 from dba_free_space a,dba_data_files b where a.file_idb.file_id group by b.tablespace_name,b.file_id,b.file_name,b.bytes order by b.tablespace_name执行效果可见此时file_id 312.查看占用最后面一部分的一些对象SELECT * FROM ( SELECT segment_name, segment_type, owner, block_id, blocks FROM dba_extents WHERE file_id 31 ORDER BY block_id DESC ) WHERE ROWNUM 20 -- 查看占用最后部的一些对象3.移动索引-- 移动索引这些索引在文件尾部 ALTER INDEX PRODUCT.REPORT_BENEFT_STATIS REBUILD;4.移动临时表-- 移动临时表如果这张表是普通表的话 ALTER TABLE PRODUCT.REPORT_BENEFT_STATIS_TMP MOVE;5.处理LOB大对象段关键-- 首先查找这个LOB属于哪个表 SELECT table_name, column_name FROM dba_lobs WHERE segment_name SYS_LOB0002291802C00008$$ AND owner PRODUCT;6.移动表并重新指定LOB存储-- ALTER TABLE PRODUCT.XXX MOVE LOB(YYY) STORE AS (TABLESPACE 原来的表空间名);7.重建所有相关索引移动表后该表上的所有索引都会失效需要重建/
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2417099.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!