更新
This is how my .par file looks like
之前我从未使用过oracle数据库。我的.dmp文件是50 GB。我不知道它是如何导出的,或者是从哪个版本导出的。我下载了oracle 12c realease 2并尝试进行导入,但是我收到错误“.dmp可能是数据泵导出转储文件”。我需要做什么才能最终运行sql查询。请参阅附图。
更新: 我试过这个命令: IMP SYSTEM /密码SHOW = Y FILE = DBO_V7WRIGLEY_PROD_20180201_TECHOPS-5527.dmp fromuser = SYSTEM touser = SYSTEM
它给了我一条消息,说导入已成功终止并带有警告。这是做什么的?如果导入数据,我现在在哪里可以查看数据?
答案 0 :(得分:0)
在 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对象
在CDB数据库(这是你的情况)中,除非你这样做,否则这不起作用 运行此命令后,在SQLPLUS中预先创建所有用户和角色:
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 /密码更改为 SYSTEM / Password @ localhost / pdb_name ):< / p>
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
答案 1 :(得分:0)
首先,您应该使用 impdp 而不是 imp 。在做任何事情之前不要忘记备份。此外,您应该将dmp文件放在服务器的本地目录中。我见过有人试图导入位于计算机硬盘上的dmp文件。事情并非如此。
如果您要导入现有架构以获得更好的结果,我建议您删除架构。
要删除现有架构,请使用管理员帐户登录sqlplus
sqlplus用户名/密码@ connect_identifier
然后您可以使用此命令删除架构:
DROP USER <SCHEMA_NAME> CASCADE;
查询您的数据库以查看是否已定义数据泵目录
SELECT directory_name, directory_path FROM dba_directories WHERE directory_name='DATA_PUMP_DIR'
如果没有定义目录,请使用此命令来定义(顺便说一句&#34; D:\ orcl12&#34;是我的oracle实例路径,你应该使用自己的路径)
CREATE OR REPLACE DIRECTORY DATA_PUMP_DIR AS 'D:\orcl12c/admin/<ORA_INSTANCE_NAME>/dpdump/';
退出sqlplus命令提示符并使用管理员凭据运行impdp(确保源目录中没有其他具有相同名称的日志文件 - 如果这样操作将中止)
impdp用户名/密码@ connect_identifier目录= DATA_PUMP_DIR dumpfile = filename.dmp logfile = filename.log
如果操作成功,您可能必须手动更新用户定义的数据类型,因为它们未正确导入。