“如何在没有执行impdp的情况下恢复在EXPDP之后删除的架构?

时间:2019-02-01 05:24:43

标签: oracle schema recovery datapump

这是我的问题, 我正在练习如何在虚拟盒子上执行expdp和impdp。因此,我使用scott / tiger进行了expdp并导出了scott模式。但是,出于好奇,我从数据库中删除了Scott模式(希望在同一个数据库中执行impdp),然后遇到很多错误,并且从数据库中丢失了Scott模式。我可以从转储文件中恢复Scott模式吗? 更确切地说,这是我的步骤;

  1. expdp scott/tiger schemas=scott directory=test_dir dumpfile=scott.dmp logfile=expdpscott.log

  2. impdp scott/tiger schemas=scott directory=test_dir dumpfile=scott.dmp logfile=impdpscott.log 。 。 。 然后我得到了:

      

    “ SCOTT”作业。“ SYS_IMPORT_SCHEMA_01”在19:13:31出现4个错误”

    ...然后我做了:

  3. drop user Scott cascade;

    然后

  4. impdp scott/tiger schemas=scott directory=test_dir dumpfile=scott.dmp logfile=impdpscott.log

然后我收到此错误:

  

UDI-01017:操作生成了ORACLE错误1017 ORA-01017:无效   用户名密码;登录被拒绝

...现在,我意识到我做了一件愚蠢的事情(作为学习者,这很好)。 如何获得或恢复已删除的scott模式? 谢谢

1 个答案:

答案 0 :(得分:0)

如果您发布了在步骤2中遇到的错误,那就太好了;也许它们无关紧要。

现在,当您放下Scott时,以特权用户(例如SYS)和 create 用户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