5

Oracle 11g でテーブルスペースを縮小する必要があります。これは一時テーブルスペースではありません。そのテーブルスペースのデータを失うことはありません。他のテーブルスペースの 1 つでスペースが不足しているため、このテーブルスペースの残りのサイズを再割り当てする必要があります。縮小は永続表領域では機能しません。データファイルの現在のサイズは 1150MB で、256MB にしたい

4

1 に答える 1

10

次のように、ファイルのサイズを変更できます。

ALTER DATABASE DATAFILE '/your/path/your_file01.dbf' RESIZE 256M;

もちろん、すでに 256M を超えるスペースを使用している場合は、エラーが発生します。

ORA-03297: file contains used data beyond requested RESIZE value

次に、このクエリを使用して、データファイルのサイズを変更できる最小サイズを確認できます。

SELECT  CEIL((NVL(e.hwm, 1) * 8192)/1024/1024) as "Mb"
FROM
    dba_data_files f
LEFT
JOIN    (SELECT file_id, max(block_id + blocks - 1) hwm FROM dba_extents GROUP BY file_id) e ON f.file_id = e.file_id
WHERE
    f.file_name = '/your/path/your_file01.dbf'
/

*テーブルスペースのブロック サイズが 8192 でない場合は、まずその値を変更してください。また、クエリの実行には時間がかかることに注意してください。これは正常な動作です。代わりに、多くの人が好む試行錯誤の手法を使用して、エラーが発生するまで少しずつサイズを変更することもできます。

于 2013-03-22T10:36:54.690 に答える