使用plsql连接Oracle数据库报这个错
然后在cmd窗口中执行以下命令:
C:\Users\86135>sqlplus/nolog #使用SQLplus连接
SQL*Plus: Release 11.2.0.1.0 Production on Sun Sep 27 13:50:13 2020
Copyright (c) 1982, 2010, Oracle. All rights reserved.
SQL> connect sys/change_on_install as sysdba #连接
Connected.
SQL> startup mount #启动,下面提示无法启动已运行的Oracle。
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL> shutdown immediate #首先关闭
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL> startup mount #启动
ORACLE instance started.
Total System Global Area 1653518336 bytes
Fixed Size 2176288 bytes
Variable Size 1241516768 bytes
Database Buffers 402653184 bytes
Redo Buffers 7172096 bytes
Database mounted.
SQL> alter database open; #打开
alter database open
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 9 - see DBWR trace file
ORA-01110: data file 9: 'D:\CESHI.DBF'
到这一步我大概能知道是什么原因了,因为我之前新建过一个CESHI的用户,并指定了表空间CESHI。然后我去本地看了看,看来是把本地的CESHI.DBF表空间文件误删了,然后Oracle找不到本地存储文件。
解决办法:
因为我这个是已经没用的用户,所以可以直接删除处理。
如果不是,请去回收站复原文件。
SQL> alter database datafile 'D:\CESHI.DBF' offline drop;
Database altered.
SQL> alter database open;
Database altered.
SQL> drop tablespace CESHI including contents;
Tablespace dropped.
重新去登录就可以了。
参考了大佬的文档,解决了我的问题。