こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

お世話になります。

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

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

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

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

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


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

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

投稿日時 - 2010-04-23 14:53:53

QNo.5846011

すぐに回答ほしいです

質問者が選んだベストアンサー

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

投稿日時 - 2010-04-25 22:45:59

お礼

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

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

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

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

投稿日時 - 2010-04-26 16:27:40

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問