1. Generate a trace file with the file header dump. This will generate 2 trace files
in the directory defined by the user_dump_dest parameter.
SQL> alter session set tracefile_identifier='file_hdr';
SQL> alter Session Set Events 'immediate trace name file_hdrs level 10';
SQL> alter session set tracefile_identifier='block';
SQL> alter system dump datafile '/u04/oradata/AUSADEV/psindex_05.dbf' block min 1 block max 10;
SQL> exit
2. The following fixes the problem:
alter database datafile '/u01/oradata/user_05.dbf' resize 1000M;
resize: 空数据文件时:报错:ORA-03297 :文件包含在请求的Resize 值以外使用的数据。
这个是oracle的一个bug,需要重建数据文件头之后,重新resize 数据文件。
SQL> exec dbms_space_admin.TABLESPACE_REBUILD_BITMAPS ('user01'); 指定表空间的名称
SQL> alter database datafile '/u01/oradata/user_05.dbf' resize 1000M;
既然实际数据很少resize却不能成功,就表明是某些数据块位于数据文件的末端,
那就先降降HWM高水位,对表空间的表进行操作
alter table test_table enable row movement;
alter table test_table shrink space; ---降低高水位,释放空间
alter table test_table disable row movement;