oracle 归档空间满的解决办法

问题现象:

通过命令提示符登陆数据库,一般提示“ora-03113:通信通道的文件结尾”错误,查看trace日志,可以看到详细信息。部分摘录如下(橙色部分给出了建议方案):

Errors in file g:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_1368.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.
************************************************************************
Errors in file g:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_1368.trc:
ORA-19809: 超出了恢复文件数的限制
ORA-19804: 无法回收 17847808 字节磁盘空间 (从 4102029312 限制中)
ARCH: Error 19809 Creating archive log file to ‘G:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2017_08_26\O1_MF_1_561_%U_.ARC‘
Errors in file g:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_1368.trc:
ORA-16038: 日志 3 sequence# 561 无法归档
ORA-19809: 超出了恢复文件数的限制
ORA-00312: 联机日志 3 线程 1: ‘G:\ORADATA\ORCL\REDO03.LOG‘
USER (ospid: 1368): terminating the instance due to error 16038
ARC1: Archival started
Errors in file g:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_arc0_4836.trc:
ORA-01092: ORACLE instance terminated. Disconnection forced

解决方法(两种):

  • 增加归档空间,设置db_recovery_file_dest参数
sqlplus / as sysdbashutdown abort   -- 关闭进程startup mount    -- 启动数据库到mount模式alter system set db_recovery_file_dest=10G;     -- 设置归档空间大小shutdown immediate   -- 关闭数据库startup     -- 启动数据库
  • 删除多余归档,只保留需要的(根据业务保留恢复数据库所需要的最近归档),这种办法同样有两种方式,一种直接rman方式删除归档,一种在操作系统层次删除,但是因为每个归档在数据库中都有记录,仍需再进入rman删除失效归档文件,否则报错。

第一种方式:

rman target /    -- 进入rman模式
list archivelog all;    --列出全部归档文件
delete archivelog all complited before ‘SYSDATA-7‘;  --删除7天前的所有归档

ps:SYSDATA-7,表明当前的系统时间7天前,before关键字表示在7天前的归档日志

第二种方式:

如果不小心在操作系统层次提前删除了归档日志,需进入rman清楚过期归档日志信息。执行如下操作:
rman target /
crosscheck archivelog all;    -- 检查归档信息
delete expired archivelog all;    -- 删除过期归档list archivelog all;

执行完毕后,退出rman,重启数据库。

附(部分rman命令):

  • backup database    对数据库做全备
  • delete obsolete    根据备份策略删除陈旧备份
  • delete expired backup     删除失效备份
  • delete expired copy     删除失效备份副本
  • delete backup    删除所有备份,慎用。如需使用,建议使用后立即备份一次


传送门:关于rman完整的备份策略请参考:http://www.cnblogs.com/benbenduo/p/4939738.html

问题现象

通过命令提示符登陆数据库,一般提示“ora-03113:通信通道的文件结尾 ”错误,查看trace日志,可以看到详细信息。部分摘录如下(粗体给出了建议方案):

Errors in file g:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_1368.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.

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

Errors in file g:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_1368.trc:

ORA-19809: 超出了恢复文件数的限制

ORA-19804: 无法回收 17847808 字节磁盘空间 (从 4102029312 限制中)

ARCH: Error 19809 Creating archive log file to ‘G:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2017_08_26\O1_MF_1_561_%U_.ARC‘

Errors in file g:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_1368.trc:

ORA-16038: 日志 3 sequence# 561 无法归档

ORA-19809: 超出了恢复文件数的限制

ORA-00312: 联机日志 3 线程 1: ‘G:\ORADATA\ORCL\REDO03.LOG‘

USER (ospid: 1368): terminating the instance due to error 16038

ARC1: Archival started

Errors in file g:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_arc0_4836.trc:

ORA-01092: ORACLE instance terminated. Disconnection forced

解决方法

l  增加归档空间,设置db_recovery_file_dest参数。

1.         Sqlplus / as sysdba

删除多余归档,只保留需要的(根据业务保留恢复数据库所需要的最近归档)。

时间: 2024-08-02 10:58:39

oracle 归档空间满的解决办法的相关文章

Oracle归档已满的处理办法

SqlPlus: / as sysdba select * from V$FLASH_RECOVERY_AREA_USAGE; show parameter log_archive_dest; show parameter recover; Rman: connect target / delete archivelog until time 'sysdate-7';

sqlserver 出现 因为文件组 'PRIMARY' 已满 的解决办法 有可能是磁盘剩余空间不足 导致的

一般虚拟主机提供商是通过限制数据库文件的大小来实现提供定制的数据库空间的.当你把从虚拟数据库空间备份下来的文件恢复到自己的服务器上时,这个限制还是存在的.找到数据库文件 给增加个数据文件就好了 解决办法: 1.检查你的磁盘剩余空间是否足够,如果没有磁盘剩余空间,则清理磁盘,腾出空间. 2.检查你的磁盘分区格式:如果是FAT16,则数据文件最大只能是2G,如果是FAT32,则数据文件最大只能是4G,改为NTFS分区则没有这种限制. 3.检查一下你有没有限制数据库文件的大小: 企业管理器--右键你的

不同类型的数据跨表空间迁移的解决办法

http://blog.csdn.net/passion_wang/article/details/6541369 Oracle10g数据跨表空间迁移 因某些开发人员由于对oracle数据库理解的不够深入,往往在建表的时候指定了当前用户非默认的表空间,这样就导致了在exp及imp等操作时候问题很多,因此需要将这些表及相关的数据迁移回当前用户的默认表空间里.Oracle10g数据数据库提供了一个Move命令可以把这样的数据对象进行跨表空间的迁移,也可以对含有BLOB.CLOB这样的二进制大字段的表

ORA-01653 无法在表空间扩展的解决办法 -- 增加表空间大小或给表空间增加数据文件

转自原文 ORA-01653 无法在表空间扩展的解决办法 -- 增加表空间大小或给表空间增加数据文件 当前系统的数据量越来越大的,昨天还运行正常的数据库,突然无法使用了.经过定位发现是"ORA-01653 " 即表空间满了,在这里简单记录下处理办法,长期来看Oracle是顶不住了,需要尽快切到Hadoop的Hbase里存储数据 参考如下SQL ----查询表空间使用情况--- SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT

ORACLE_11G归档空间满,由于数据库装完后使用的是默认空间是闪回区---根据真实故事改编

1.首先根据alert跟踪日志发现归档空间满,路径大致如下:cd $ORACLE_BASE/diag/rdbms/jsswgsjk/jsswgsjk1/tracetail -f alert_jsswgsjk1.log 2.sqlplus 执行命令结果:--可以看出没有正确使用归档盘:+ARCH 3.修改归档文件路径:--如果数据库当前是归档状态修改归档路径不用重启数据库alter system set log_archive_dest_1='location=+ARCH';4.查看归档路径正确性

常见Oracle数据库问题总结及解决办法(一)

开发中常使用Oralce数据库,使用中也许会碰到形形色色的各类错误提示,如:ORA-00933:SQL命令未正确结束.ORA-009242等等,为此记录积累对于自己来说还是很有帮助的,今天就记录以前出现过的一些问题,后面会慢慢补充完善. 错误提示:ORA-00942:表或视图不存在 图1-1 图1-2 开发过程中使用PowerDesigner设计数据库并导出脚本,在执行脚本是出现上图出现的问题,为此打开PowerDesigner查看设计的表,发现表名被""引了起来(图1-2),果不其然

Oracle 临时表空间满的清理

正常来说,在完成所送select语句.createindex等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段的.但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题.这个问题在论坛中也常被网友问到,下面我总结一下,给出几种处理方法. 方法一.重启库 库重启时,smon进程会完成临时段释放,TEMP表空间的清理操作,不过很多的时侯我们的库是不允许down的,所以这种方法缺少了一点的应用机会,不过这种方法还是很好用的. 方法二

Oracle的常见错误及解决办法

ORA-12528: TNS:listener: all appropriate instances are blocking new connections ORA-12528问题是因为监听中的服务使用了动态服务,实例虽然启动,但没有注册到监听.实例是通过PMON进程注册到监听上的,而PMON进程需要在MOUNT状态下才会启动.所以造成了上面的错误. 解决这个问题,有三种方法:1.把监听设置为静态:2.在tnsnames.ora中追加(UR=A):3.重新启动服务: 方法1.通过修改liste

解决归档空间满一例

---解决归档日志空间满的问题 今天在检查一个测试库的时候,发现一个平常都起着的一个测试库竟然都没有打开,处在mount状态 SQL> select open_mode from v$database; OPEN_MODE ---------- MOUNTED --执行打开的语句报错,从错误里看到这是一个典型的没有归档空间的问题 SQL> alter database open; alter database open * 第 1 行出现错误: ORA-16014: 日志 1 的序列号 890