第一步:
sqlplus / as sysdba
shutdown abort
startup mount
SQL> show parameter background_dump_dest;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest string d:\app\baoshengzhu\diag\rdbms\
oracle\oracle\trace
进入该路径,查看alert_oracle.log,可见文件记录错误如下:
####################错误信息以及建议解决的方法##########################################################
Errors in file d:\app\baoshengzhu\diag\rdbms\oracle\oracle\trace\oracle_ora_6988.trc:
ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使用 100.00%, 尚有 0 字节可用。
************************************************************************
You have following choices to free up space from recovery area:
1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard,
then consider changing RMAN ARCHIVELOG DELETION POLICY.
2. Back up files to tertiary device such as tape using RMAN
BACKUP RECOVERY AREA command.
3. Add disk space and increase db_recovery_file_dest_size parameter to
reflect the new space.
4. Delete unnecessary files using RMAN DELETE command. If an operating
system command was used to delete files, then use RMAN CROSSCHECK and
DELETE EXPIRED commands.
###################################################################################
第二步:
select * from v$recovery_file_dest;
alter system set db_recovery_file_dest_size=10737418240 ---这里是改为10G。
alter database open
exit
第三步:
rman target /
进入rman工具窗口
rman target /
RMAN>crosscheck archivelog all; -- 运行这个命令可以把无效的expired的archivelog标出来。
RMAN>delete expired archivelog all; -- 直接全部删除过期的归档日志。
RMAN>delete noprompt archivelog until time "sysdate -3"; -- 也可以直接用一个指定的日期来删除。
重新打开数据库:正常使用