我正在为即将到来的项目播放如何在距离测试环境两个级别的播放环境中执行expdp
和impdp
。所以我用scott/tigger做了expdp
,并导出了scott模式。然而,出于好奇,我从数据库中删除了Scott模式(希望在同一个数据库中执行impdp
),然后我出现了很多错误,并从数据库中丢失了Scott模式。
我能从垃圾文件中恢复Scott架构吗?
这就是我所做的:
-
expdp scott/tiger schemas=scott directory=test_dir dumpfile=scott.dmp logfile=expdpscott.log
-
impdp scott/tiger schemas=scott directory=test_dir dumpfile=scott.dmp logfile=impdpscott.log
。。。然后我得到了这个:作业"SCOTT"。"SYS_IMPORT_SCHEMA_01"在19:13:31完成,有4个错误">
。。。然后我做了:
-
drop user Scott cascade;
然后
-
impdp scott/tiger schemas=scott directory=test_dir dumpfile=scott.dmp logfile=impdpscott.log
然后我得到了这个错误:
UDI-01017:操作生成ORACLE错误1017 ORA-0017:无效用户名/密码;拒绝登录
。。。现在我意识到我做了一件愚蠢的事(这对学习者来说是好事)。
如何取回或恢复已删除的scott
架构?
如果您公布在步骤#2中出现的错误,那就太好了;也许它们无关紧要。
现在,当您放弃Scott时,请以特权用户(如SYS)身份连接,并创建用户Scott。这里有一个例子:
- 检查数据库中表空间的列表
- 创建用户
- 授予它一些特权
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USER_DATA
APEX
APEX_9695076087226093
7 rows selected.
SQL> create user littlefoot identified by lion
2 default tablespace user_data
3 temporary tablespace temp
4 profile default
5 quota unlimited on user_data;
User created.
SQL>
SQL> grant create session to littlefoot;
Grant succeeded.
SQL> grant create table to littlefoot;
Grant succeeded.
SQL> grant create procedure to littlefoot;
Grant succeeded.
SQL> grant create sequence to littlefoot;
Grant succeeded.
SQL> grant create view to littlefoot;
Grant succeeded.
SQL> grant create trigger to littlefoot;
Grant succeeded.
SQL>
完成此操作后,请再次运行IMPDP
。