下面小编就为大家分享一篇基于ORA-19815闪回空间爆满问题的处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

闪回区爆满问题也是经常会遇到的问题,最关键的是闪回设置大小以及归档被默认存放在了闪回目录,恰巧今天又遇到了这个问题,就记录下处理步骤,仅供遇到这类问题的人参考。

一、错误现象描述

1)应用端错误信息

Error: 2016-11-26 11:45:25 ORA-00257: Archiver error. Connect AS SYSDBA only until resolved.

Error: 2016-11-26 11:45:25 ORA-00257: Archiver error. Connect AS SYSDBA only until resolved.

Error: 2016-11-26 11:45:25 init connpool:one or more conn open error.

2)数据库端错误信息

Sat Nov 26 12:13:14 2016

Errors in file /home/U01/app/oracle/diag/rdbms/testdb/testdb/trace/testdb_arc2_929.trc:

ORA-19815: WARNING: db_recovery_file_dest_size of 42949672960 bytes is 100.00% used, and has 0 remaining bytes available.

Sat Nov 26 12:13:14 2016

************************************************************************

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.

************************************************************************

Sat Nov 26 12:13:14 2016

Errors in file /home/U01/app/oracle/diag/rdbms/testdb/testdb/trace/testdb_arc2_929.trc:

ORA-19809: limit exceeded for recovery files

ORA-19804: cannot reclaim 524288000 bytes disk space from 42949672960 limit

二、错误分析

从应用日志看,是由于不能归档导致的DB连接池不能被初始化打开,基本可以判断是由于数据库的归档文件所在磁盘空间满导致。

从数据库日志查看发现确实是由于闪回空间已经爆满,通过查看服务器磁盘空间以及闪回空间大小即可再次验证。

三、详细处理过程

1)登陆数据库服务器,查看磁盘空间使用信息

[oracle@teststd trace]$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda5 9.9G 2.6G 6.9G 28% /

tmpfs 32G 18M 32G 1% /dev/shm

/dev/sda1 388M 62M 307M 17% /boot

/dev/sda6 1.6T 506G 1017G 34% /home

/dev/sda2 20G 508M 19G 3% /var

2)查看数据库错误日志,发现闪回空间爆满

cd /home/U01/app/oracle/diag/rdbms/testdb/testdb/trace

tail -n 35 alert_testdb.log

ORA-19815: WARNING: db_recovery_file_dest_size of 42949672960 bytes is 100.00% used, and has 0 remaining bytes available.

3)登陆数据库,查看闪回路径以及闪回空间使用情况

查看闪回空间设置大小

SQL> show parameter recover;

NAME TYPE VALUE

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

db_recovery_file_dest string /home/U01/app/oracle/fast_recovery_area

db_recovery_file_dest_size big integer 40G

db_unrecoverable_scn_tracking boolean TRUE

recovery_parallelism integer 0

或者利用SQL查看闪回路径

Col name for a60;

Set line 200;

SQL> select * from v$recovery_file_dest ;

NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES CON_ID

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

/home/U01/app/oracle/fast_recovery_area 4.2950E+10 2.1538E+10 0 89 0

查看闪回空间所在磁盘大小

SQL> !df -h /home/U01/app/oracle/fast_recovery_area

Filesystem Size Used Avail Use% Mounted on

/dev/sda6 1.6T 504G 1019G 34% /home

查看闪回目录使用大小

SQL> !du -hs /home/U01/app/oracle/fast_recovery_area

40G /home/U01/app/oracle/fast_recovery_area

查看闪回空间使用情况

SQL> select * from V$RECOVERY_AREA_USAGE;

FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES CON_ID

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

CONTROL FILE 0 0 0 0

REDO LOG 7.45 0 7 0

ARCHIVED LOG 100 0 76 0

BACKUP PIECE 0 0 0 0

IMAGE COPY 0 0 0 0

FLASHBACK LOG 0 0 0 0

FOREIGN ARCHIVED LOG 0 0 0 0

AUXILIARY DATAFILE COPY 0 0 0 0

4)删除归档、调整闪回区大小

从上面看确实是闪回空间满了,而占用闪回区满的罪魁祸首就是归档日志。要解决的方法有两个:

方案1:删除多余的归档

最佳删除归档的途径是通过rman工具做,如果直接删除文件数据库是识别不到闪回区释放的。

[oracle@teststd trace]$ rman target /

Recovery Manager: Release 12.1.0.2.0 - Production on Sat Nov 26 13:00:28 2016

Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

connected to target database: TESTDB (DBID=2708971821)

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;

RMAN> DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7' ;

或者利用下面的语句删除七天前的归档日志

RMAN> DELETE NOPROMPT ARCHIVELOG UNTIL TIME 'SYSDATE-7' ;

注意:(一般删除归档腾出足够的闪回区后,建议调整归档路径或者调整足够闪回区大小)

方案2:调整闪回区大小

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

alter system set db_recovery_file_dest_size=100G scope=both

*

ERROR at line 1:

ORA-65040: operation not allowed from within a pluggable database

###数据库为12c,不允许在pdb下操作,需要切换到sys下操作

SQL> conn /as sysdba;

Connected.

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

System altered.

5)查看闪回区使用情况和其大小

[oracle@teststd trace]$ du -hs /home/U01/app/oracle/fast_recovery_area

27G /home/U01/app/oracle/fast_recovery_area

SQL> select * from V$RECOVERY_AREA_USAGE;

FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES CON_ID

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

CONTROL FILE 0 0 0 0

REDO LOG 2.98 0 7 0

ARCHIVED LOG 17.08 0 82 0

BACKUP PIECE 0 0 0 0

IMAGE COPY 0 0 0 0

FLASHBACK LOG 0 0 0 0

FOREIGN ARCHIVED LOG 0 0 0 0

AUXILIARY DATAFILE COPY 0 0 0 0

8 rows selected.

6)通知系统管理员启动应用,正常启动

至此问题得以彻底解决

以上这篇基于ORA-19815闪回空间爆满问题的处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

相关文章

oracle 闪回空间爆满,基于ORA-19815闪回空间爆满问题的处理方法相关推荐

  1. 基于nginx-rtmp实现电视回看业务

    阿里云  >  教程中心   >  android教程  >  基于nginx-rtmp实现电视回看业务 基于nginx-rtmp实现电视回看业务 发布时间:2018-01-18 来 ...

  2. oracle时间戳找回数据库,【备份恢复】 闪回数据库(三) 基于时间戳闪回数据库...

    1.创建测试表,并插入测试数据 SCOTT@PROD1>create table fbdb_time as select * from fbdb_scn where 1=2; Table cre ...

  3. oracle 一个实例创建多个数据库_Oracle闪回,为你的数据库上一个安全防线

    概述 Oracle 9i 开始支持闪回,Oracle10g开始全面支持闪回功能,Oracle11g有所完善,为我们快速的恢复数据,查询历史数据提供了很大的便捷方法. 今天主要对Oracle常用闪回使用 ...

  4. oracle闪回区满了,一次快速闪回区满导致数据库不能启动的解决过程

    一.事件背景描述:一个测试系统的数据库由于磁盘空间满了,清理了磁盘空间的,等待很久系统没有相应,因此通过shutdown immediate命令重新启动数据库,但是数据库一直关闭不了,所以通过shut ...

  5. oracle闪回区和归档的关系,闪回与归档参数的设置

    Oracle闪回技术提供了一组功能用来查看数据的过去状态并且支持数据按时间返回到之前的状态不用对数据库从备份中执行大量的还原操作或者执行按时间点恢复.在大部分情况下闪回功能非常有效破坏性比介质恢复小. ...

  6. oracle 增加ora容量_oracle数据库报错:ORA-01653无法在表空间扩展解决办法 ,增加表空间或表空间增加数据文件...

    当Oracle数据库的数据量越来越大,表空间的大小不够用的时候,会报错:"ORA-01653 ", 即表空间满了,无法在表空间扩展解决办法 ,增加表空间或表空间增加数据文件.在这里 ...

  7. spring声明式事务管理方式( 基于tx和aop名字空间的xml配置+@Transactional注解)

    1. 声明式事务管理分类 声明式事务管理也有两种常用的方式, 一种是基于tx和aop名字空间的xml配置文件,另一种就是基于@Transactional注解. 显然基于注解的方式更简单易用,更清爽. ...

  8. FPGA入门实验-基于状态机实现串口回环收发

    任务目标 基于状态机实现串口回环收发.最近生产实习的FPGA培训课程内容,还是挺简单的.具体原理其他文章应该都烂大街了,重点是状态机的写法,还是很少博主写,没怎么看到,基本上都是时序机写的模块功能. ...

  9. oracle11g闪回默认路径,ORACLE11G开启数据库闪回

    准备: 首先必须按照完毕Oracle11g数据库产品及数据库:其次当前数据库的闪回是关闭的. 开始实验: 检查数据库的闪回状态(我这是关闭的) SQL> select FLASHBACK_ON ...

最新文章

  1. 暴力优化解法+哈希解法——2016年第七届蓝桥杯省赛b组第八题 四平方和
  2. 从测试角度对测试驱动开发的思考【转】
  3. 埋石图根点lisp代码_GPS测量作业流程.doc
  4. 资深黑客谈:安全趋势正在向应用层发展
  5. 阿里巴巴代码扫描插件
  6. html2canvas加上canvas2image保存网页为图片
  7. ❤️ 6个Python办公黑科技,工作效率提升100倍!HR小姐姐都馋哭了(附代码)❤️
  8. 前端做微信好友分享_前端-微信分享
  9. 量化模型每一层的细节参数
  10. 【云贝学院】大师操刀倾心打造:数据之颠Oracle 12c OCM认证课程
  11. 删除数据库表中重复的记录
  12. 如何使用浏览器对网络请求编辑重发(Edit and Resent) 以及: fetch API 中 ReadablleStream 的打印方法
  13. 自己的神明——你只能成为自己
  14. 计算机连接打印机用户数量修改,使用注册表修改对打印机进行设置的方法
  15. 五脏有问题,该怎么调理?
  16. openstack创建实例报Build of instance d401db9e-xxxx-97c5d7685592 aborted: Unknown auth type: None
  17. 揭秘:网赚圈很红的“小说项目”!月入十万的裂变套路
  18. linux网络安装pxe及无人值守安装
  19. RDO(Remote Desktop Organizer)远程桌面工具分享
  20. 游北海公园遇到一个特别有活力的大爷,感觉他才是年轻人

热门文章

  1. HackTheBox::Grandpa
  2. 微服务之如何从零搭建(吹牛逼篇)
  3. 海思3559开发常识储备:相关名词全解
  4. 20230221 git设置upstream
  5. DDCTF-2019-writeup(7web+5misc)
  6. 课件(Part 1, PJ)
  7. 1102: 火车票退票费计算(函数专题)C语言
  8. 电脑内存过大,如何处理
  9. 郝健: Linux内存管理学习笔记-第6节课
  10. Linuxer-Linux开发者自己的媒体第6月稿件和赠书名单