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

Oracle移行 exp/imp ブロックサイズ相違 容量オーバー

お世話になります。

OracleのDBを9iから10gへ、インポート・エクスポートユーティリティを使用して
移行しようとしているのですが、

9i環境のブロックサイズが4KB、10g環境では8KBであるせいか、
同じ表領域サイズにもかかわらず、容量が全く足らずにインポートできません。

dba_tablesでインポートできた表のブロック数を確認すると9i、10gとも同じサイズとなっております。
ブロック構成はそのままの状態でインポートされるということでしょうか?

ブロックサイズが異なるので、PCTFREEで指定した空き領域分はサイズが大きくなる
と思いますが、同じブロック数になるということは、4KB単位でインポートされ、
残りの4KB分は空きができているということでしょうか。

表領域管理は9iではディクショナリ管理、10gはAUTOALLOCATEのローカル管理です。


ご教授いただけると幸いです。

以上、よろしくお願いいたします。

A 回答 (1件)

9iの時はエクステントの単位が小さく、10gになるとローカル管理となって


エクステントが大きくなっているため容量が小さな表がたくさん表領域に存在すると
領域の利用効率が悪くなっているのではないかと思います。
なお、export/importはブロック単位の情報を取り出しているわけではなく
表の定義や生データを取っているので4KB単位でimportしているわけではありません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

根本的な原因は全く別のところにありました。
移行元と先で表領域名がことなり、また、表とINDEXを別表領域で管理しているため、
INDEXも同じ表領域に入ってしまったためでした。

また、expで出力されたダンプファイルが発行するCREATE文のINITIAL句の指定が
若干移行元環境よりも大きめに指定されていたのも一因と思われます。

ブロックの仕様については勉強になりました。
ありがとうございました。

お礼日時:2010/04/26 16:27

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

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