将 Oracle DMP 文件导入到全新安装的 oracle

32 oracle import

一位客户向我们发送了一个我们需要对其进行测试的 Oracle 数据库。我们不使用 Oracle 或拥有任何内部 Oracle 专业知识。

我们需要设置数据库,以便我们可以连接到它并调试问题。

我全新安装了 Oracle 9(客户端运行的版本)和管理工具。

对于我的一生,我无法让它导入数据。不应该这么复杂。我一定是弄错了。

我试过了:

imp 'sys/password AS SYSDBA' file=c:\database.dmp full=yes log=implog.txt
Run Code Online (Sandbox Code Playgroud)

并得到:

Connected to: Personal Oracle9i Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production

Export file created by EXPORT:V09.02.00 via conventional path

Warning: the objects were exported by SYSTEM, not by you

import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
. importing SYSTEM's objects into SYS
. importing ABCDE's objects into ABCDE
IMP-00003: ORACLE error 1435 encountered
ORA-01435: user does not exist
Import terminated successfully with warnings.
Run Code Online (Sandbox Code Playgroud)

但是就任何模式中的表而言,管理器中没有任何显示,我不知所措。

小智 31

您需要先创建一个用户(或架构)

C:\>sqlplus system/password

SQL> create user CLIENT_TEST identified by client_test_password;
SQL> grant connect, unlimited tablespace, resource to CLIENT_TEST;
SQL> exit
Run Code Online (Sandbox Code Playgroud)

然后您可以使用fromuser=touser= IMP 开关将数据导入新用户/模式:

C:\>imp system/password FROMUSER=ABCDE TOUSER=client_test file=c:\database.dmp full=yes
Run Code Online (Sandbox Code Playgroud)

希望有帮助!


小智 12

在 Oracle 中以 SYS 或 SYSTEM 身份创建表并不常见,因为这两个帐户是管理员。

错误意味着您的客户以 user 身份创建了表ABCDE

您应该在导入之前创建该用户,然后您应该以该用户身份导入数据,

这应该消除错误,因为导出的文件包含与ABCDE数据库中不存在的用户相关的权限和其他信息。

检查此问题以获取其他提示:如何确定 Oracle 数据泵导出文件中的模式。


Nic*_*int 7

您首先需要创建用户“ABCDE”

就像是

在 SQL*PLUS 中:

create user ABCDE identified by password;
grant connect, resource to ABCDE;
Run Code Online (Sandbox Code Playgroud)

“创建用户”有一个squillion 选项,但这将使用默认值。


Jus*_*ave 3

客户是否提供了他们如何生成转储文件的详细信息?特别是,您确定这是完整导出,而不是架构级导出、表空间级导出或表级导出?