Oracle 日志报错导致的 “没有登录” 问题
2017-08-08 16:43 迷 阅读(805) 评论(0) 编辑 收藏 举报遇到的问题是日志空间满了,导致Oracle无法登陆,但用PL/SQL登录仅会提示“没有登录”
# 首先检查日志空间是否满了,并删除过期日志
rman target sysdba/password@orcl
RMAN> list archivelog all;
RMAN> crosscheck archivelog all;
RMAN> delete expired archivelog all;
# 也可以删除 7 天之前的日志
RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
# 如果还不行,使用SQLPlus先登录本地 sys 账号
sqlplus /nolog
SQL> conn /as sysdba
# 查看日志分配的空间,以及空间占比,我查询出来占比已达到99.92%说明日志满了
SQL> show parameter db_recovery_file_dest;
SQL> select * from v$flash_recovery_area_usage;
# 如果太小可以重新分配,我这里分配了16G
SQL> alter system set db_recovery_file_dest_size=16g;
# 尝试下数据库状态是否正常,如果报错可以看错误码
SQL> alter database open;
SQL> select * from all_users;
# 看看日志是否正常,不正常的话状态一般都是 NO
SQL> select group#,sequence#,archived,status from v$log;
# 尝试清理并重建日志
SQL> alter database clear logfile group 3;
# 如果是该日志组还没有归档,则需要用
SQL> alter database clear unarchived logfile group 3;