ora-03297

16, Сентябрь, 2008

опять схватил ora-03297 при уменьшении файла данных после очистки mlog$_ таблиц.

alter table <table name> move tablespace <tablespace name>;

alter index <index name> rebuild;

не перемещаются таблицы с lob полями.

скрипт для определения минимального возможного уменьшения размера файла данных:

select
f.file#,
round(f.bytes/1024/1024,2)||’ Mb’ megabytes,
decode(trunc(e.maxextend*blocksize/1000/10),
0,round(e.maxextend*blocksize,2)||’ Mb’,
null,null,
‘Unlimited’) maxextend,
decode(e.inc,null,null,round(e.inc*blocksize,2)||’ Mb’) inc,
ceil(nvl(r.min_resize,0)*blocksize)||’ Mb’ min_resize,
f.name
from sys.filext$ e, v$datafile f,
( select
e.file_id file#,
max(e.block_id + e.blocks) as min_resize
from dba_extents e
group by e.file_id
) r,
(select to_number(value)/1024/1024 blocksize
from v$parameter where name=’db_block_size’)
where e.file#(+) = f.file#
and r.file#(+) = f.file#
order by 1

определяем, что находится в табличном пространстве:

select e.owner, e.segment_name, e.segment_type,  sum(e.bytes)/(1024*1024) from dba_extents e where e.tablespace_name=<tablespace name>
group by e.owner, e.segment_name, e.segment_type

Ответить