Oracle DUMPファイル(v10.2)をOracle Express 11.2.0.2.0にインポートしようとしています。私はいくつかのスキーマエラーを受け取り、ここの他の投稿をフォローすることでそれらを解決しました。現在、このエラーが発生しており、トラブルシューティングを行うのに十分に理解できません。
C:\>imp system/pass FROMUSER=DWH TOUSER=IMPORT_MAN file=e:\LRT_ARCHIVE_170911.dmp
Import: Release 11.2.0.2.0 - Production on Wed Sep 20 11:01:48 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
Export file created by EXPORT:V10.02.01 via conventional path
Warning: the objects were exported by DWH, not by you
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
import server uses AL32UTF8 character set (possible charset conversion)
. importing DWH's objects into IMPORT_MAN
IMP-00017: following statement failed with Oracle error 1659:
"CREATE TABLE "LRT_ARCHIVE_170911" ("EVENTTIME" TIMESTAMP (6) WITH LOCAL TIM"
"E ZONE, "TTR_ID" NUMBER(10, 0), "STATUS" VARCHAR2(3), "ISEMPTY" VARCHAR2(1)"
", "TDP_IDCURR" NUMBER(6, 0), "TNP_IDLASTPOS" NUMBER(6, 0), "STORINGREASON" "
"VARCHAR2(20), "ISPROCESSED" VARCHAR2(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 "
"MAXTRANS 255 STORAGE(INITIAL 1824522240 FREELISTS 1 FREELIST GROUPS 1 BUFFE"
"R_POOL DEFAULT) LOGGING NOCOMPRESS"
IMP-00003: Oracle error 1659 encountered
ORA-01659: unable to allocate MINEXTENTS beyond 3 in tablespace SYSTEM
Import terminated successfully with warnings.
誰かがこれがなぜ起こっているのか、そしてそれを解決する方法を指摘できるなら、本当に感謝します。
また、full = yes command-argを指定してコマンドを実行していましたが、まったく実行されておらず、FROMUSERでfullを使用できないと報告されました
背景:これは、新しくインストールされたOracle Expressのインスタンスです。私はダンプを得て、それを復元するように命じられました。最初に試したとき、実際にダンプを作成/エクスポートしたスキーマ/ユーザーに関する警告に従って、同じ名前DWH
の新しいユーザーを作成しました。それは問題ではなかったと思います。それを除けば、これに費やした2時間はあまり行っていません。
01659, 00000, "unable to allocate MINEXTENTS beyond %s in tablespace %s" // *Cause: Failed to find sufficient contiguous space to allocate MINEXTENTS // for the segment being created. // *Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the // tablespace or retry with smaller value for MINEXTENTS, NEXT or // PCTINCREASE
上記のように、2つのオプションがあります。SYSTEM
テーブルスペースのサイズを増やすか、簡単にするか、最初にテーブルDDL(CONTENT=METADATA_ONLY
)ダンプファイルからDDLスクリプトを変更してMINEXTENT
を低い値に変更し、スクリプトを実行してテーブルを作成してからデータ(CONTENT=DATA_ONLY
)。
コメントから...
私はそうではありません。私のクリップボード履歴にこのクエリがあります:ALTER TABLESPACE ADD DATAFILEが実際にそれを使用する方法がわからない、またはIMPORT_MANユーザー/スキーマを作成したときにここでSYSTEMスキーマが使用されている理由
エラーで言及されている[〜#〜] system [〜#〜]はスキーマではなくテーブルスペースです。 SYSTEM
テーブルスペースは、SYS
スキーマの下のテーブルなど、システムおよびユーザーオブジェクトのメタデータを格納するために使用されます。したがって、テーブルをインポートするときは、SYSTEM
テーブルスペースと、行を格納するユーザーのデフォルトのテーブルスペースにスペースが必要です。データファイルを追加するには、このリンクを参照してください ALTER TABLESPACE