如何导入或打开 .dmp 文件?

How Can I import or open a .dmp file?

更新:

I tried the impdp command and it's giving me that it cannot create a user. I tried creating the user as well

This is how my .par file looks like

This is a snip of .sh file

我以前从来没有用过oracle数据库。我有一个 50 GB 的 .dmp 文件。我不知道它是如何导出的,也不知道它是从哪个版本导出的。我下载了 Oracle 12c 第 2 版并尝试导入,但出现错误“.dmp 可能是数据泵导出转储文件”。我需要做什么才能最终 运行 SQL 查询它?请看附图。

更新: 我试过命令: IMP SYSTEM/Password SHOW=Y FILE=DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.dmp fromuser=SYSTEM touser=SYSTEM

它给了我一条消息,说导入已成功终止,但有警告。这是做什么的?另外,如果导入了数据,现在在哪里可以查看?

sqlplus 中作为 SYSTEM:

CREATE DIRECTORY IMPDIR as 'C:\Users\negink\Documents\databasewrigley';

回到命令行:

impdp SYSTEM/Password DUMPFILE=IMPDIR:DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.dmp logfile=IMPDIR:DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.log FULL=Y

完成后,您可以删除 DIRECTORY 对象

in a CDB database (which is your case), this will not work, unless you pre-create all the users and roles in SQLPLUS, after running this command:

alter session set "_ORACLE_SCRIPT"=true;
create user x identified by pwdx;
create user y identified by pwdy;
create role r1;
create role r2;
...

否则,您可以在 CDB 中创建一个 PDB,并将 DMP 文件导入到 PDB 中。在这种情况下,您需要按如下方式修改 IMPDP 命令中的连接(将 SYSTEM/Password 更改为 SYSTEM/Password@//localhost/pdb_name) :

impdp SYSTEM/Password@//localhost/pdb_name DUMPFILE=IMPDIR:DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.dmp logfile=IMPDIR:DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.log FULL=Y

首先,你应该使用impdp而不是imp。并且不要忘记在做任何事情之前进行备份。此外,您应该将 dmp 文件放在服务器的本地目录中。我见过有人试图导入位于他们计算机硬盘上的 dmp 文件。事情不是这样的。

如果您要导入现有模式以获得更好的结果,我建议您删除该模式。

要删除现有模式,请使用管理员帐户登录到 sqlplus

sqlplus username/password@connect_identifier

然后您可以使用此命令删除模式:

DROP USER <SCHEMA_NAME> CASCADE;

查询您的数据库以查看是否定义了数据泵目录

SELECT directory_name, directory_path FROM dba_directories WHERE directory_name='DATA_PUMP_DIR'

如果目录没有定义使用这个命令来定义(顺便说一下"D:\orcl12"是我的oracle实例路径,你应该使用你自己的路径)

CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS 'D:\orcl12c/admin/<ORA_INSTANCE_NAME>/dpdump/';

退出 sqlplus 到命令提示符和 运行 使用管理员凭据的 impdp(确保源目录中没有其他同名日志文件 - 如果是这样,操作将中止)

impdp username/password@connect_identifier directory=DATA_PUMP_DIR dumpfile=filename.dmp logfile=filename.log

如果操作成功,您可能需要手动更新 User-Defined 数据类型,因为它们没有正确导入。