Oracle 释放flash recovery area的四种方法

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

早上收到一台Linux服务器磁盘告警邮件以及监控告警日志程序发来的邮件。检查过后,发现Linux服务器中一个分区没有空间了。主要原因是由于昨晚程序员做升级时,产生了大量的归档日志,导致联机重做日志无法归档,出现下面错误:

363 | Wed Mar 19 02:33:16 2014 | ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/mes/redo02.log'

369 | Wed Mar 19 02:34:16 2014 | ORA-16014: log 2 sequence# 75999 not archived, no available destinations

370 | Wed Mar 19 02:34:16 2014 | ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/mes/redo02.log'

373 | Wed Mar 19 02:34:16 2014 | ORA-16014: log 2 sequence# 75999 not archived, no available destinations

374 | Wed Mar 19 02:34:16 2014 | ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/mes/redo02.log'

383 | Wed Mar 19 02:39:16 2014 | ORA-19502: write error on file "/u03/flash_recovery_area/mes/archivelog/2014_03_19/o1_mf_1_75999_9lk4pngn_.arc", blockno 108545 (blocksize=512)

384 | Wed Mar 19 02:39:16 2014 | ORA-27072: File I/O error

由于当时比较急,于是手工删除了昨天的归档日志,释放了大量空间,结果发现告警日志出现了如下错误:

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

Wed Mar 19 08:48:48 2014

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

You have following choices to free up space from flash 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.

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

Wed Mar 19 08:48:54 2014

Thread 1 advanced to log sequence 76076 (LGWR switch)

clip_image001

出现这个错误时因为:当手工删除了归档日志以后,Rman备份会检测到日志缺失,从而无法进一步继续执行。所以此时需要手工执行crosscheck过程,之后Rman备份可以恢复正常。

如上所示,Oracle 提供了4中方法解决这个问题:

You have following choices to free up space from flash 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.

翻译如下:

你可以采用下面选项释放闪回恢复区的空间:

1:考虑修改RMAN备份保留策略,如果你使用的Data Guard,应该考虑修改RMAN归档日志删除策略。

2:使用RMAN BACKUP RECOVERY AREA命令将备份至于第三方设备(例如磁带)

3:增加磁盘空间并增加db_recovery_file_dest_size大小。

   1: SQL> show parameter db_recovery_file_dest
   2:  
   3: NAME TYPE VALUE
   4:  
   5: ------------------------------------ ----------- ------------------------------
   6:  
   7: db_recovery_file_dest                string      /u03/flash_recovery_area
   8:  
   9: db_recovery_file_dest_size          big integer  40G
  10:  
  11: SQL>alter system set db_recovery_file_dest_size=48G scope=both;
  12:  

4: 使用RMAN DELETE命令删除不需要的文件,如果使用如果操作系统命令来删除文件,则必须使用RMAN CROSSCHECK和

DELETE EXPIRED 的命令

$ rman target /

Recovery Manager: Release 10.2.0.4.0 - Production on Wed Mar 19 14:51:09 2014

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

connected to target database: EPPS (DBID=2179379665)

RMAN> crosscheck archivelog all;

RMAN> delete expired archivelog all;

RMAN> delete obsolete;

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
Oracle 关系型数据库
Oracle新建数据表的两种方法
Oracle新建数据表的两种方法
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
47 7
|
3月前
|
Oracle 安全 关系型数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法探讨
删除Oracle数据库数据一般有以下2种方式:delete、drop或truncate。下面针对这2种删除oracle数据库数据的方式探讨一下oracle数据库数据恢复方法(不考虑全库备份和利用归档日志)。
|
5月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库误删除的数据恢复方法
相信有很多oracle数据库用户都遇到过在操作Oracle数据库时误删除某些重要数据的情况,这个时候如果数据库没有备份且数据十分重要的,怎么才能恢复误删除的数据呢?北亚企安数据恢复工程师下面简单介绍几个误删除Oracle数据库数据的恢复方法。
|
5月前
|
SQL 存储 Oracle
Oracle数据库中游标的工作原理与优化方法
Oracle数据库中游标的工作原理与优化方法
|
6月前
|
Oracle 关系型数据库 数据库
oracle误删除数据的恢复方法
oracle误删除数据的恢复方法
55 0
|
7月前
|
SQL Oracle 安全
Oracle的PL/SQL异常处理方法:守护数据之旅的“魔法盾”
【4月更文挑战第19天】Oracle PL/SQL的异常处理机制是保障数据安全的关键。通过预定义异常(如`NO_DATA_FOUND`)和自定义异常,开发者能优雅地管理错误。异常在子程序中抛出后会向上传播,直到被捕获,提供了一种集中处理错误的方式。理解和善用异常处理,如同手持“魔法盾”,确保程序在面对如除数为零、违反约束等挑战时,能有效保护数据的完整性和程序的稳定性。
|
7月前
|
Oracle 关系型数据库
oracle 修改表空间文件路径方法
oracle 修改表空间文件路径方法
|
7月前
|
SQL Oracle 关系型数据库
Oracle之替代OR的另一种方法
Oracle之替代OR的另一种方法
296 0
|
存储 Oracle Java
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法
[亲测可用]hibernate调用Oracle存储过程|Spring Data JPA调用Oracle存储过程方法