所以,我需要检查.dmp文件并列出其中的所有模式,我该怎么做?
更新(2008-09-18 13:02) - 更多详细信息:
我目前使用的impdp命令是:
impdp user/password@database directory=DPUMP_DIR
dumpfile=EXPORT.DMP logfile=IMPORT.LOG
Run Code Online (Sandbox Code Playgroud)
并且DPUMP_DIR已正确配置.
SQL> SELECT directory_path
2 FROM dba_directories
3 WHERE directory_name = 'DPUMP_DIR';
DIRECTORY_PATH
-------------------------
D:\directory_path\dpump_dir\
Run Code Online (Sandbox Code Playgroud)
是的,EXPORT.DMP文件实际上在该文件夹中.
我运行impdp命令时收到的错误消息是:
Connected to: Oracle Database 10g Enterprise Edition ...
ORA-31655: no data or metadata objects selected for job
ORA-39154: Objects from foreign schemas have been removed from import
Run Code Online (Sandbox Code Playgroud)
此错误消息通常是预期的.我需要impdp命令:
impdp user/password@database directory=DPUMP_DIR dumpfile=EXPORT.DMP
SCHEMAS=SOURCE_SCHEMA REMAP_SCHEMA=SOURCE_SCHEMA:MY_SCHEMA
Run Code Online (Sandbox Code Playgroud)
但要做到这一点,我需要源模式.
Fac*_*tic 82
impdp
dmp
如果使用该SQLFILE
参数,则将备份的DDL导出到文件.例如,将其放入文本文件中
impdp '/ as sysdba' dumpfile=<your .dmp file> logfile=import_log.txt sqlfile=ddl_dump.txt
Run Code Online (Sandbox Code Playgroud)
然后检查ddl_dump.txt
备份中的表空间,用户和模式.
根据文档,这实际上并没有修改数据库:
SQL实际上并未执行,目标系统保持不变.
Kyl*_*ser 10
更新(2008-09-19 10:05) - 解决方案:
我的解决方案:社交工程,我努力挖掘并找到了解模式名称的人.
技术解决方案:搜索.dmp文件确实产生了模式名称.
一旦我知道模式名称,我搜索了转储文件并了解了在哪里找到它.
在.dmp文件中看到了模式名称的位置:
<OWNER_NAME>SOURCE_SCHEMA</OWNER_NAME>
这是在每个表名/定义之前看到的.
SCHEMA_LIST 'SOURCE_SCHEMA'
这是在.dmp结尾附近看到的.
有趣的是,在该SCHEMA_LIST 'SOURCE_SCHEMA'
部分周围,它还有用于创建转储的命令行,使用的目录,使用的par文件,运行的Windows版本以及导出会话设置(语言,日期格式).
所以,问题解决了:)