Oracle
如何找到數據泵 dmp 文件的模式名稱?
我獲得了一個 DMP 數據泵導出文件,可以導入到我的本地 Oracle 實例中。我試過執行這個命令行:
impdp full=Y 目錄=DATA_PUMP_DIR dumpfile=MyDumpFile.dmp logfile=import.log
我得到錯誤:
ORA-31655: 沒有為作業選擇數據或元數據對象
ORA-39154: 來自外部模式的對像已從導入中刪除
並且沒有數據被導入。
根據我的Google搜尋,一個可能的原因是我需要指定
remap_schama
. 但我不知道 dmp 文件中架構的名稱是什麼。有什麼簡單的方法可以查出來嗎?**編輯:**我沒有找到這個問題的解決方案,但我確實找到了解決方法……我找到了製作 DMP 的人,並從他
那裡得到了模式名稱。remap_schema
根據他的定義指定,Hey Presto!
使用
sqlfile=
參數 ofimpdp
生成包含轉儲中所有 DDL/DML 的文件。例如:
[oracle@oel61 ~]$ impdp phil/phil directory=oracledmp dumpfile=phil.dmp logfile=phil.log sqlfile=philddl.txt Import: Release 11.2.0.2.0 - Production on Wed Mar 13 15:15:03 2013 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options Master table "PHIL"."SYS_SQL_FILE_FULL_01" successfully loaded/unloaded Starting "PHIL"."SYS_SQL_FILE_FULL_01": phil/******** directory=oracledmp dumpfile=phil.dmp logfile=phil.log sqlfile=philddl.txt Processing object type SCHEMA_EXPORT/USER Processing object type SCHEMA_EXPORT/SYSTEM_GRANT Processing object type SCHEMA_EXPORT/ROLE_GRANT Processing object type SCHEMA_EXPORT/DEFAULT_ROLE Processing object type SCHEMA_EXPORT/TABLESPACE_QUOTA Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/SEQUENCE/SEQUENCE Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Job "PHIL"."SYS_SQL_FILE_FULL_01" successfully completed at 15:15:05 [oracle@oel61 ~]$
在文件中查找
CREATE USER
DDL 語句應該會告訴您執行導入需要哪些模式。例如,從我的測試轉儲中:
-- new object type path: SCHEMA_EXPORT/USER -- CONNECT SYSTEM CREATE USER "PHIL" IDENTIFIED BY VALUES 'S:924B2E756404611021428644B4DF06A4A7BAB886837FCCFA510151E0FC44;181446AE258EE2F6' DEFAULT TABLESPACE "PHILDATA" TEMPORARY TABLESPACE "TEMP"; -- new object type path: SCHEMA_EXPORT/SYSTEM_GRANT GRANT UNLIMITED TABLESPACE TO "PHIL"; GRANT CREATE SESSION TO "PHIL"; -- new object type path: SCHEMA_EXPORT/ROLE_GRANT GRANT "DBA" TO "PHIL"; -- new object type path: SCHEMA_EXPORT/DEFAULT_ROLE ALTER USER "PHIL" DEFAULT ROLE ALL;
唯一的缺點是,如果 .dmp 文件很大,則生成的 SQL 轉儲會很大。