使用Oracle“创建用户”命令不会自动创建关联的架构

时间:2016-12-30 20:41:01

标签: oracle oracle11g

我刚刚开始使用Oracle数据导出和导入,第一次工作完全正常。但后来我在第二天回来时在同一系统上重复了相同的步骤,但得到ORA-01435:用户不存在错误。

所有计算机的系统规格:

-OS:Windows 2012 R2 x64

-Oracle服务器:Oracle 11G Express x64

目的: 我正在从Oracle服务器1导出数据并导入到Oracle服务器2。

步骤: 从Oracle服务器1成功导出数据转储。

但是在Oracle服务器2上导入数据转储时,我遵循以下过程:

- 停止IIS服务

net stop WAS

在导入前创建架构/用户帐户和授予权限

net stop WAS

sqlplus / as sysdba;

CREATE user PIE1 identified by PASS1;

GRANT ALL PRIVILEGES TO PIE1;

GRANT IMP_FULL_DATABASE TO PIE1;

据oracle说,一切顺利,但请看下面的第一张图片。在DBeaver中,我可以看到只创建了用户帐户PIE1,但没有模式。 Oracle issue 1. User account created, but not the Schema

问题1:根据Oracle,“创建用户”命令也应该创建一个关联的架构。任何人都知道为什么这不再适合我?它在前一天晚上工作过。

然后我按如下方式继续导入程序:

imp PIE1/PASS1@xe file=c:\Backups\AVUSER2_6_7.dmp log=c:\Backups\import.log fromuser=AVUSER2_6_7 touser=PIE1;

但是得到以下错误: Oracle claims the User doesn't exist even though it does

Oracle声称用户即使存在也不存在。我重复了整个过程,甚至创建了一个相同的导入/导出用户帐户和凭据,这个错误仍然出现。

问题2:任何想法为什么Oracle“无法找到”显然位于数据库中的用户帐户?

其他信息:

  1. 检查我的Windows帐户是否在管理员组

  2. 检查我的Windows帐户是否在ORA_DBA组

  3. 以管理员

  4. 打开所有CMD提示

1 个答案:

答案 0 :(得分:0)

正如您所暗示的那样,Oracle中的用户和架构相同,您不能拥有没有架构的用户。不知道DBeaver,但是因为其他用户没有列在'schemas'下(根据你的第二张图片 - ANONYMOUS,DIP,......)似乎是无关的。

(纯粹是猜测,但也许你在DBeaver中连接的用户只是没有这些用户拥有的任何对象的可见性 - 也许它只列出它可以在all_objects中看到的用户,比如说。纯粹的推测,但是您可以通过查看数据字典来查看数据字典,同时通过SQL * Plus作为同一用户进行连接。According to this old forum post,可以选择隐藏空模式...)

导入 成功连接为PIE1 - 你会得到一个不同的错误,ORA-01017,如果不是,你就不会看到'已连接到。 ..'横幅或之后的任何东西。

您的import命令有一个不应该存在的尾随分号。 “导入...对象到”消息显示它正在尝试导入PIE1;用户而不是您实际创建的用户PIE1。删除该分号,然后重试。

顺便提一下,您可以删除@xe TNS别名并坚持使用本地连接,假设环境配置与您运行SQL * Plus时的配置相同。您还应该考虑使用datapump expdp / impdp而不是旧版exp / imp。