oracle如果开启了闪回,当闪回区的磁盘空间被占满了时数据库会挂掉,重启也会报错(not archived, no available destinations),下面我来介绍一下oracle闪回区满了解决方案。

一、把数据库启动到mount状态并把闪回空间改大

SQL > startup mount

SQL > alter system set db_recovery_file_dest_size=10G scope=both;--改大

sql>alter database open;

注意:要把闪回空间改大才能正常把数据库启动到open状态。

二、用RMAN命令删除老的日志文件

操作系统命令,删除物理文件(rm -vf )

进入rman

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;

SQL> select (space_used/space_limit)*100 from v$recovery_file_dest;--查看闪回空间使用率

查看alert告警,以及oracle给出的处理建议。

select reason,object_type,suggested_action  from dba_outstanding_alerts;

REASON                db_recovery_file_dest_size 字节 (共 2147483648 字节) 已使用 98.55%, 尚有 31102976 字节可用。

OBJECT_TYPE        RECOVERY AREA

SUGGESTED_ACTION "可以选择以下操作之一从快速恢复区释放空间:

1. 考虑更改 RMAN RETENTION POLICY。如果使用的是 Data Guard, 则考虑更改 RMAN ARCHIVELOG DELETION POLICY。

2. 使用 RMAN BACKUP RECOVERY AREA 命令将文件备份到磁带之类的三级存储。

3. 添加磁盘空间并增大 db_recovery_file_dest_size 参数以反映 这个新空间。

4. 使用 RMAN DELETE 命令删除不需要的文件。如果使用了操作系统  命令来删除文件, 则使用 RMAN CROSSCHECK 和 DELETE EXPIRED 命令。

这里我只试了第3、4种方法

第3种修改方法,扩展闪回区

SQL> show parameter db_recovery_file_dest_size;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest_size           big integer 2G

SQL> alter system set db_recovery_file_dest_size=4G scope=both;

系统已更改。

SQL> show parameter db_recovery_file_dest_size;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest_size           big integer 4G

现在已经将闪回区空间扩充到了4G,也就是新增了2G。

第4种修改方法,清空闪回区

注意,刚才直接将db_recovery_file_dest目录下的文件删除,SPACE_USED也不会释放。

oracle@linux-35:~> rman target /

Recovery Manager: Release 11.1.0.6.0 - Production on Wed Oct 12 12:35:09 2011

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: ORARPT (DBID=2356255833)

RMAN> crosscheck archivelog all;  (校验归档找出不可用的直接删除的)

RMAN> delete expired archivelog all; (删除失效的归档)

再查看闪回区的信息,SPACE_USED已经释放。

select * from v$recovery_file_dest;

NAME                /home/oracle/flash_recovery_area

SPACE_LIMIT    2147483648

SPACE_USED     0

SPACE_RECLAIMABLE      0

NUMBER_OF_FILES    0

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐