アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在動いているOracleサーバーのディスクが少なくなってきたので、
2年前以前のデータをDELETEして、EXPORT&IMPORTを行いデータファイルのRESIZEをかけたのですが、使用中の領域というメッセージがでてうまくいきません。
なぜでしょう??
方法は別でもいいのですが、データファイルのサイズを縮小するいい方法はないでしょうか?
ちなみにOracleはVer8.1.6でD:はデータファイル、テンポラリファイル、ロールバックファイルのみにしてあります。
トランケートするには、一時的にテーブル退避する領域もなく、かなり困っています。

知ってる方がいたら、情報を下さい。よろしくお願いします。

A 回答 (2件)

ちなみになぜRESIZEをかけても縮小できないかですが


DELETEしたとしてもOracle的には完全に開放していないからです。手順としては
DELETE→EXPORT→TRUNCATE→IMPORTという手順を踏む
必要があります。
テーブルを存在させたままOracleに「もう消していいよ」と伝えるためにはTRUNCATEをする必要があります。
DELETEは単純に使っていない(上書きしていい)フラグが立つだけでRESIZEや他のテーブルのための領域として使われることはありません。
    • good
    • 0
この回答へのお礼

お礼がおくれてすみません。
いろいろ勉強致しましたが、結局EXPORTして、一回DROPして、IMPORTすることにしました。
ありがとうございました。
また、よろしくお願い致します。

お礼日時:2006/03/20 21:13

一番確実なのは縮小したいデータファイルが属している表領域に入っているテーブルを全てEXPORTしていったんdmpファイルにしておいてから表領域を削除(もちろんデータファイルも削除)


それから改めて小さなサイズのデータファイルで表領域を作ってからIMPORTするのが良いかと思います。
    • good
    • 0
この回答へのお礼

大変遅くなってすみません。
いろいろ試しましたが、結局EXPORT⇒DROP⇒IMPORTで行うことにしました。
ありがとうございました。

お礼日時:2006/03/20 21:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す