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

解決済みの質問

表領域の作成について

表領域を作成してインポートしたら下記のエラーが出力されて困っています。
表領域の作成の仕方が駄目でエラーが出力されてしまったのでしょうか。

下記のCREATE TABLESPACE文で表領域を作成しています。
----------------------------------------------------------------------
CREATE TABLESPACE "T_DAT" BLOCKSIZE 8192
DATAFILE 'D:\oracle\oradata\ora92\DAT_01.DBF' SIZE 32767M,
'D:\oracle\oradata\ora92\DAT_02.DBF' SIZE 32767M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M SEGMENT SPACE MANAGEMENT AUTO;
----------------------------------------------------------------------

コマンドプロンプトでimpコマンドを実行したら、下記のエラーなどが出力されました。
----------------------------------------------------------------------
IMP-00003: Oracleエラー1659が発生しました。
ORA-01659: nを超えるMINEXTENTSを表領域T_DATに割当てできません。

IMP-00003: Oracleエラー1658が発生しました。
ORA-01658: 表領域T_DATにセグメント用のINITIALエクステントを作成できません。
----------------------------------------------------------------------

何がいけないのかが正直わかりません。
申し訳ありませんがアドバイスいただけませんでしょうか。
宜しくお願いします。

投稿日時 - 2009-09-16 15:08:14

QNo.5294870

すぐに回答ほしいです

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

ものはためしでcompress=nを指定して実行してみてください。

投稿日時 - 2009-09-16 16:53:34

補足

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

インポートで使用しているダンプファイルはお客さんのサーバーから取得したものなので...
試したいんですが試す事ができません。

ただ「compress」を指定してエクスポートしたらどうなるのでしょうか。
ネットで検索したら「1エクステントにインポート」や「1つのエクステントにまとめる」とか説明していました...
エクスポートのオプションの「compress」がいまいちわかりません。

申し訳ありませんが「compress」を指定するとどのようなメリットがあるのでしょうか。

宜しくお願いします。

投稿日時 - 2009-09-16 17:20:03

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

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

回答(4)

ANo.4

>> ○対象表のNextExtentsおよびMIN_EXTENTS、PCT_INCREASEの現在の値は?
>エクスポートしてきたダンプファイルから取得したCREATE文から抜き出しました。

>INITIAL 524288
>NEXT 524288
>MINEXTENTS 8
>MAXEXTENTS 2147483645
>PCTINCREASE 50

その対象表を事前にCREATE出来ますか?
できるなら表を作成しておいてIGNORE=YでIMPを実行できますが。

投稿日時 - 2009-09-17 11:33:53

補足

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

> その対象表を事前にCREATE出来ますか?
> できるなら表を作成しておいてIGNORE=YでIMPを実行できますが。
できませんでしたので今は下記のように表領域を作成しています。

CREATE TABLESPACE "T_DAT" BLOCKSIZE 8192
DATAFILE 'C:\oracle\oradata\ora92\DAT01.DBF' SIZE 32767M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED,
'C:\oracle\oradata\ora92\DAT02.DBF' SIZE 32767M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED,
'C:\oracle\oradata\ora92\DAT03.DBF' SIZE 32767M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED,
'C:\oracle\oradata\ora92\DAT04.DBF' SIZE 32767M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED,
'C:\oracle\oradata\ora92\DAT05.DBF' SIZE 32767M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M SEGMENT SPACE MANAGEMENT AUTO;
※データファイルのサイズは試しに32Gにしています。

pon2pon2さんの指摘していただいたようにデータファイルを追加したらインポートする事ができましたが...
「Enterprise Manager Console」で表領域を確認したらデータファイルの使用量が膨大になっていました。

対象の表領域に2つのデータファイルで作成されています。
それぞれのサイズは5Gと6Gです。
今回、その対象の情報が含まれているダンプファイルをインポートしています。

膨大になった理由がよくわかりません。
また膨大にならないようにするにはどうしたらいいのでしょうか。

ご存知だったらアドバイス宜しくお願いします。

投稿日時 - 2009-09-17 12:53:11

ANo.3

エラー発生した場合は、マニュアルを見ると良いかと。
http://otndnld.oracle.co.jp/document/products/oracle10g/101/doc_v12/server.101/B12448-02/e1500.htm
また、使用しているOSやDBのバージョンも書きましょう。
ま、データファイルが、ora92となっているようなので、9iのようですが。

まず、マニュアルのとおり、
「ORA-01659」の出力原因と対応は以下のとおりです。
-------------------------------------------------------------------------
「原因: 作成中のセグメントにMINEXTENTSを割当てできる
    十分な連続領域を見つけられませんでした。」
「処置:
 ALTER TABLESPACE ADD DATAFILEを使用して表領域にさらに領域を追加するか、
 MINEXTENTS、NEXTまたはPCTINCREASEの値を小さくして再試行してください。」
-------------------------------------------------------------------------
単に、領域の不足の問題です。

ま、多分問題起きないようにするには、
単純にデータファイルを追加してあらかじめ領域を大きくしておくか、
自動拡張ONにしておけば、いいのではないかと。


ただ、現状どうなっているのか、まずは確認したほうがいいですね。
○インポート失敗したセグメントのインポート先の表領域は、
 ローカル管理表領域それとも、ディクショナリー管理表領域?

○対象表のNextExtentsおよびMIN_EXTENTS、PCT_INCREASEの現在の値は?

なんとなく、個人的には、対象表領域が実は、ディクショナリー管理の表領域で、
PCT_INCREASEが50%とかになってて、インポート時のセグメント拡張の際に、
Next_Extentが大きくなったために、空き領域があっても、
でかくなったサイズのNEXT_EXTENTに該当するだけの連続空き領域がなくて、
失敗したように思ったりして。

もし、ローカル管理なら、本当に、割り当てるだけのExtentが無いんだろうな。
きっと。そうなったら、やはりデータファイル追加しないと駄目かな。

投稿日時 - 2009-09-16 17:27:58

補足

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

説明不足で大変申し訳ありません。

オラクルのバージョンは「9.2.0.1.0」です。

> ○インポート失敗したセグメントのインポート先の表領域は、
>  ローカル管理表領域それとも、ディクショナリー管理表領域?
エクスポートしてきたダンプファイルから表領域を作成しているCREATE文を取得して実行したら下記のエラーメッセージが出力され作成できませんでした。

「ORA-12913: ディクショナリ管理表領域を作成できません。」

今はCREATE文で「EXTENT MANAGEMENT LOCAL」で作成しています。
ローカル表領域かな?

> ○対象表のNextExtentsおよびMIN_EXTENTS、PCT_INCREASEの現在の値は?
エクスポートしてきたダンプファイルから取得したCREATE文から抜き出しました。

INITIAL 524288
NEXT 524288
MINEXTENTS 8
MAXEXTENTS 2147483645
PCTINCREASE 50

今回、オラクルを使うのが初めてなので何がなんだかわからないので、お手数をお掛けしますが
もう少し私にお付き合い下さい。
申し訳ありませんが宜しくお願いします。

投稿日時 - 2009-09-16 17:51:36

ANo.2

#1です。export時にcompress=nという意味です。

投稿日時 - 2009-09-16 16:58:13

あなたにオススメの質問