欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-02 16:38:27
...

从其他人那拷来一个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;
相关标签: oracel报错