Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误

前言:

放假回来,服务端突然跑不起来了,明明放假前还能跑,放个假也没做改动,突然就不行了,给我吓得半死,两天的时间终于解决了,写下来记录一下。

一开始以为是代码的问题,用sourceTree回退版本后,也是不行,一步步排查,怀疑跑不起来是因为服务端的数据库连接出现了问题(服务端连接的是实验室服务器的oracle数据库),用navicat连果然没有连接成功,然后就用xshell连接到服务器,用命令行的方式连接oracle数据库,想看看具体报错

linux连接oracle数据库

(第0步是切换到oracle用户,命令为 su - oracle,因为我使用的是oracle用户登录,所以就没有切换)(注意su oracle 和su - oracle的区别,第二种方式会帮你自动切换到oracle用户的环境变量,用第一种方式切换可能会报命令找不到的错误,需要source一下配置文件)
1.sqlplus / as sysdba 使用dba权限登录到sqlplus
2.conn 数据库用户名/密码 使用conn连接我们具体想要操作的数据库用户
这时候报错
ORA-09817: Write to audit file failed.
Linux-x86_64 Error: 28: No space left on device
Additional information: 12
ORA-09945: Unable to initialize the audit trail file
Linux-x86_64 Error: 28: No space left on device

ORA-09817: Write to audit file failed.

Linux-x86_64 Error: 28: No space left on device

Additional information: 12

ORA-09945: Unable to initialize the audit trail file

Linux-x86_64 Error: 28: No space left on device

错误解决:

根据报错内容,感觉应该是服务器磁盘已经满了,使用df-h查看一下系统的磁盘,果然,根节点的使用率已经达到了100%,没有剩余了,于是就删除了tomcat的一些日志,按照https://community.oracle.com/thread/981177这个帖子说的做了(这个帖子的大概意思是说,oracle运行时会自动写入一些auditfile,如果你不知道它给你写到哪里了,可以用less $ORACLE_HOME/dbs/spfile$ORACLE_SID.ora命令,找到里边的AUDIT_FILE_DEST选项,这个路径就是写入auditfile的路径,将这些文件移走即可),又报错:Oracle ORA-01033: ORACLE initialization or shutdown in progress

Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决

又是一顿百度,发现网上的意思差不多,都是重新启动一下oracle数据库即可,于是,我又按照https://www.cnblogs.com/niwotaxuexiba/p/9873058.html这个帖子的步骤执行了一下
Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误
发现还是不行,仔细看发现他最后一步startup mount是以mount模式启动的数据库,查了一下,发现这只是启动实例加载数据库,但没有打开数据库,于是执行alter database open;(注意结尾的分号)命令打开数据库,大功告成!
Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误