0

更新:

我尝试了 impdp 命令,它告诉我它无法创建用户。我也尝试创建用户

这就是我的 .par 文件的样子

这是 .sh 文件的片段

在此处输入图像描述

我以前从未使用过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

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

4

2 回答 2

2

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/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
于 2018-02-15T19:19:37.040 回答
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'

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

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

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

impdp 用户名/密码@connect_identifier directory=DATA_PUMP_DIR dumpfile=filename.dmp logfile=filename.log

如果操作成功,您可能必须手动更新用户定义的数据类型,因为它们没有正确导入。

于 2018-02-17T01:51:15.637 回答