导入oracle数据库,出现数据库未打开ORA-01033,找不到表空间ORA-00959等错误

从其他人那拷来一个DMP文件,使用数据泵导入时,报错,显示数据库未打开,查看服务,oracle的两项服务已打开。而后去网上找错误,应该是之前删除无用的数据库或者表空间文件夹造成的。
解决办法:参考https://www.linuxidc.com/Linux/2017-05/143799.htm
基本思想是:
1.先连上数据库,sqlplus ‘sys/sys as sysdba’
2.shutdown normal
提示:
数据库已经关闭
已经卸载数据库
ORACLE 例程已经关闭
3.startup mount
提示:
数据库装载完毕。
4.alter database open(这一步出错)
提示:
ORA-01157: 无法标识/锁定数据文件11 - 请参阅DBWR 跟踪文件
ORA-01110: 数据文件11: ‘’’‘I:\tablesapce\APP0104_DEFAULT.dbf’’
5.alter database datafile 11 offline drop
6.重复第4第5步,直到所有无法连接的的表空间都已经drop为止
7.重新连接oracle数据库即可。

数据库未打开问题解决了,但是在导入数据库时出现了找不到表空间问题,造成数据库表、视图等数据均缺失。
原因:在建用户时未指定表空间,因为拷过来的dmp文件可能规定了表空间名称。
解决办法:若已导入,未导入成功,需要先将该用户删除,重新添加。
参考https://www.cnblogs.com/codecat/p/10796100.html
使用该文章中的命令,先创建表空间,在添加用户同时规定对应的表空间等信息,再次导入即可。

创建表空间:

CREATE TABLESPACE 表空间名称 LOGGING DATAFILE 'H:\app\oradata\orcl\TBS_NAME.dbf' SIZE 256M AUTOEXTEND ON NEXT 32M MAXSIZE 10240M EXTENT MANAGEMENT LOCAL;

创建用户同时赋予表空间

CREATE USER 用户名 IDENTIFIED BY 密码 DEFAULT TABLESPACE 表空间名称;

赋权限给用户

Grant connect,dba,resource to 用户名

创建路径(把从数据库上拷下来的文件放到这个路径)

create directory impdp_dir as 'e:\data';

赋权限给路径

grant read,write on directory impdp_dir to 用户名;

退出再执行下步操作

exit

导入

impdp 用户名/密码 directory= impdp_dir dumpfile=xxxx.DMP FULL=y;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值