Oracle【ORA-00257错误】强制删除Linux文件导致启动失败总结

Oracle【ORA-00257错误】强制删除Linux文件导致启动失败总结

Oracle【ORA-00257错误】强制删除Linux文件导致启动失败总结

起因:在备用机安装11g数据库后,创建用户并把生产环境的大表数据导入至备用机,时隔一月/oracle/app/flash_recovery_area/archivelog/中日志文件太大,导致数据库使用PLSQL登录不上

解决方法:
1、在网上搜索看使用RMAN来删除archivelog文件
RMAN使用步骤
rman target sys/pass
检查archivelog
RMAN> crosscheck archivelog all;
删除所有过期的归档
RMAN> delete expired archivelog all;
删除昨天的所有归档日志
RMAN> delete archivelog until time ‘sysdate-1’;
注:RMAN指令是在Linux系统中使用,并不能在PLSQL中使用
当时无法使用RMAN和sqlplus指令,看配置文件中ORACLE_HOME和SID都有配置
Oracle【ORA-00257错误】强制删除Linux文件导致启动失败总结
需要登录Oracle账户并进入默认目录source .bash_profile文件后可以正常使用sqlplus和RMAN指令

2、无法使用RMAN指令后,看网上可以直接删除archivelog文件(坑,不推荐强制删除,导致我后续服务报错。。。。)
强制删除:于是我使用locate指令查看archivelog文件所在位置,并强制删除
Oracle【ORA-00257错误】强制删除Linux文件导致启动失败总结
3、强制删除完archivelog文件之后使用PLSQL登录还是报错,于是我登录SQLPLUS
sqlplus / as sysdba
将数据库重启
关闭指令
shutdown immediate
启动指令
startup

因为删除archivelog文件后,启动数据库报错ORA-01102 cannot mout database in EXCLUSIVE mode
可能是重启数据库之前的进程还在占用内存资源报错,于是我再次进入sqlplus将数据库shutdown,并查看服务器oracle有哪些进程还在占用,全部kill

执行ps -ef | grep ora 查看oracle占用进程
使用 kill -9 PID
再次登录sqlplus启动startup数据库后正常
Oracle【ORA-00257错误】强制删除Linux文件导致启动失败总结

4、启动监听
因为把所有ORACLE进程全部kill,会将监听也kill掉,如果不重启监听会导致PLSQL因无监听无法登录
Oracle【ORA-00257错误】强制删除Linux文件导致启动失败总结

到此恢复正常!!

总结:无法使用SQLPLUS和RMAN指令,导致我强制删除archivelog归档日之后绕了好几个坑。就是因为/usr/bin下无sqlplus指令。
以后碰到无法使用sqlplus和rman指令时,在服务器上切换至oracle用户,cd进默认目录,source一下.bash_profile文件。(都是安装惹得祸,以后安装还是需要把这些指令加入/usr/bin下,以后登录不用每次都source了)