既存のOracleスキーマを別のマシンからエクスポートし、ローカルマシンにインポートしました。インポートは成功しましたが、エクスポートダンプファイルに存在するいくつかのテーブルはインポートされません。
これが私が使ったエクスポートとインポートのコマンドです。
Export Command:
---------------
exp sreeni/sreeni@agentrics1:1524/ezmodc full=n file=SreeniTrunkDump.dmp log=SreeniTrunkDump_Export.log
Import Command:
---------------
imp badri/badri@localhost:1521/xe file=SreeniTrunkDump.dmp log=BadriSchemaImport_Import.log full=y
私たちが使用しているOracleは10g EEです。
何がうまくいかないのでしょうか?この問題の解決策を提案していただけませんか。
次のステートメントを使用して、エクスポートファイルの内容を正確に確認します。
imp sreeni/sreeni@agentrics1:1524/ezmodc file=SreeniTrunkDump.dmp indexfile=SreeniTrunkDump.sql full=y
このステートメントはデータをインポートしようとせず、DDLをindexfileにダンプするだけです。生成されたファイルをチェックして、テーブルがエクスポートされているかどうかを確認します。
または、UNIXを使用している場合
strings SreeniTrunkDump.dmp|grep <missingtable>
テーブルがエクスポートファイルにある場合、インポート中に問題が発生します。たとえば、テーブルスペースがありません。インポートステートメントのログファイル(BadriSchemaImport_Import.log)を確認してください。
トリガーの場合、IMPが参照するテーブルを作成する前にトリガーを作成しようとするため、失敗し(テーブルがまだ存在しないため)、テーブルは作成されません。
それがあなたの場合であるかどうかはわかりませんが、私は私でした、そしてすべてのテーブルのddlをエクスポートし、IMPを起動する前にすべてのテーブルを作成することになりました。
また、不足しているテーブルのみをインポートして、何が問題なのかを確認することもできます。
imp badri/badri@localhost:1521/xe file=SreeniTrunkDump.dmp tables=TABLE_NAME