我刚刚开始使用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“无法找到”显然位于数据库中的用户帐户?
其他信息:
检查我的Windows帐户是否在管理员组
检查我的Windows帐户是否在ORA_DBA组
以管理员
答案 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。