登陆PL/SQL,确登陆失败,出现一个错误“ORA-01034”和“ORA-27101”如图:
然后分别查看路径文件:
文件1:"D:\app\Administrator\product\11.2.0\dbhome_1\database\oradim.log"找到最近第一次报错
继而查询文件2-->
文件2:"D:\app\Administrator\diag\rdbms\orcl\orcl\trace\alert_orcl.log"
ORA-19815 警告:解决提示为:
************************************************************************
You have followingchoices to free up space from recovery area:
1. Consider changingRMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOGDELETION POLICY.
2. Back up files totertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space andincrease db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessaryfiles using RMAN DELETE command. If an operating
system command was used to delete files,then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
************************************************************************
从以上判断问题根源:
ORA-19815导致ORA-03113;
ORA-03113导致ORA-12560!
解决途径:
db_recovery_file_dest_size空间小,根据ORA-19815 警告处理提示:选择一是将空间设置大点,选择二是将多余的文件删除掉,这两个办法都使用一下!
通过命令窗口:
###设置归档日志空间的大小
sqlplus / as sysdba
shutdown abort /*关闭进程
startup mount /*装载数据库
select * from v$recovery_file_dest; /*查询归档日志
db_recovery_file_dest_size=10737418240; /*设置归档日志空间为10G
Exit /*到这里空间大小已经设置完成
###删除归档日志
rmantarget / /*进入rman工具窗口
RMAN>crosscheckarchivelog all; /*运行这个命令可以把无效的expired的archivelog标出来。
RMAN>deletenoprompt archivelog until time "sysdate -3"; /*即删除3天前的归档日志
###在删除归档文件中有一点要注意
通过命令窗口显示显示归档文件都在X:\app\***\flash_recovery_area\oracle\ARCHIVELOG下,我们不能手工在操作系统中直接把这些文件删除掉,这是因为在controlfile中记录着每一个archivelog的相关信息,当我们在OS中删除这些文件后,我们的controlfile中仍然记录着这些archivelog的信息,因此在Oracle的OEM管理器中还会存在这些日志。因为当我们手工清除archive目录下的文件后,这些记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了。所以还是要通过命令窗口去执行删除这些文件的命令。
到这里就彻底ok了。接下来重新打开数据库:正常使用。
虽然办法有了,但ORA-12560 问题不允许进入CMD进行数据库管理:
参考原文链接:https://blog.csdn.net/zwk626542417/article/details/39667999