Oracle导入.dmp文件表空间不存在
-
背景:在自己的本地库导入leader发来的.dmp文件。
-
问题:导入时遇到“表newdc空间不存在” 部分数据导入失败
-
解决方式:数据库清空后创建表空间再重新导入
-
记录错误日志中不存在的表空间,清空导入失败的有损用户表数据,两钟方式。
-
删除用户再重建执行法
SQL drop user XXX cascade;
或者在Users表中删除新建,注意删除用户时关闭其占用进程。(可能需要登陆system/sys用户才有删除用户的权限)
-
如下查询出当前用户的所有表后将结果执行法
select 'drop table '||table_name||';' from all_tables where owner='用户名';
-
-
登录系统用户system/sys创建记录的不存在的表空间,下面以“newdc”为例。
create tablespace newdc datafile 'F:\environment\oracle\newdc.dbf' size 500M--修改为oracle安装路径,表空间.dbf文件不在oracle安装路径下可能会报错 autoextend on next 100M maxsize unlimited logging extent management local autoallocate segment space management auto;
-
新建用户,分配表空间与权限。
create user admin --创建用户名 identified by "admin" --创建密码 default tablespace newdc--默认表空间 temporary tablespace TEMP; --临时表空间(默认的) grant connect, resource to admin; grant dba to admin
或者采用PL/SQL等工具的新建用户Oracle数据库建库和分用户流程-CSDN博客
其中的Default tablespace 默认表空间 Temporary tablespace临时表空间。
上一步未删除用户则更改其默认表空间即可: admin用户 newdc新默认表空间
alter user admin default tablespace newdc;
-
执行导入Impdp命令,此命令需要在cmd中执行。
-
命令行执行Impdp命令方式:
Impdp admin/admin@192.168.x.x:1521/ORCL DIRECTORY=DATA_PUMP_DIR DUMPFILE=xxx.DMP SCHEMAS=admin
-
PL/SQL工具导入的Oracle Import方式
选择dmp文件导入即可。
-
-
本文部分参考如下Oracle使用Impdp导入dmp文件的详细过程 - 悠悠南山下 - 博客园 (cnblogs.com)