Oracle

Oracle 模式導入未導入模式轉儲文件中存在的所有表

  • January 1, 2018

我從另一台機器導出了現有的 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

引用自:https://dba.stackexchange.com/questions/39576