转自:http://blog.csdn.net/linghe301/article/details/9291273
今天在进行Oracle相关测试,因为Windows自动更新,自己重启机器了,结果重启完毕之后,我的oracle就无法正常启动了
报ora-03113错误。
- ORA-03113: 通信通道的文件结尾
- 进程 ID: 8636
- 会话 ID: 192 序列号: 9
去D:\app\Administrator\diag\rdbms\orcl\orcl\trace\alert_orcl.log里面查看报错信息,发现以下相关信息
- Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_9532.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 d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_9532.trc:
- ORA-19809: 超出了恢复文件数的限制
- ORA-19804: 无法回收 47112704 字节磁盘空间 (从 4102029312 限制中)
- ARCH: Error 19809 Creating archive log file to 'D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_171_%U_.ARC'
- Errors in file d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_9532.trc:
- ORA-16038: 日志 3 sequence# 171 无法归档
- ORA-19809: 超出了恢复文件数的限制
- ORA-00312: 联机日志 3 线程 1: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG'
这个信息以及很清楚了,说明我的归档日志满了
那么怎么才能验证我的归档日志满了呢?
首先我看一下我的DB_RECOVERY_FILE_DEST_SIZE值有多大
- C:\Users\Administrator>sqlplus /nolog
- SQL*Plus: Release 11.2.0.1.0 Production on 星期三 7月 10 15:33:36 2013
- Copyright (c) 1982, 2010, Oracle. All rights reserved.
- SQL> conn / as sysdba
- 已连接。
- SQL> startup mount;
- ORACLE 例程已经启动。
- Total System Global Area 5110898688 bytes
- Fixed Size 2184592 bytes
- Variable Size 3355445872 bytes
- Database Buffers 1744830464 bytes
- Redo Buffers 8437760 bytes
- 数据库装载完毕。
- SQL> show parameter db_recovery_file_dest_size;
- NAME TYPE VALUE
- ------------------------------------ ----------- -----
- db_recovery_file_dest_size big integer 3912M
但是我实际的归档日志文件
db_recovery_file_dest = "D:\app\Administrator\flash_recovery_area"
db_recovery_file_dest_size= 3912M
D:\app\Administrator\flash_recovery_area\orcl\ARCHIVELOG路径下有3.8GB已经达到临界值,也就是错误上面所述。
问题已经找到,我怎么才能进行修复呢。其实报错日志里面的信息以及写的很清楚了使用RMAN登录
因为归档日志很多,我紧紧截取了少部分
- C:\Users\Administrator>rman target /
- 恢复管理器: Release 11.2.0.1.0 - Production on 星期三 7月 10 14:58:42 2013
- Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
- 连接到目标数据库: ORCL (DBID=1336354077)
- RMAN> delete archivelog all;
- 使用目标数据库控制文件替代恢复目录
- 分配的通道: ORA_DISK_1
- 通道 ORA_DISK_1: SID=222 设备类型=DISK
- db_unique_name 为 ORCL 的数据库的归档日志副本列表
- =====================================================================
- 关键字 线程序列 S 时间下限
- ------- ---- ------- - ----------
- 96 1 167 A 10-7月 -13
- 名称: D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_167_8XSOXYGH_.ARC
- 97 1 168 A 10-7月 -13
- 名称: D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_168_8XSOY383_.ARC
- 98 1 169 A 10-7月 -13
- 名称: D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_169_8XSOY9R0_.ARC
- 99 1 170 A 10-7月 -13
- 名称: D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_170_8XSOYH2F_.ARC
- 100 1 171 A 10-7月 -13
- 名称: D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_171_8XT08TB7_.ARC
- 101 1 172 A 10-7月 -13
- 名称: D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_172_8XT08TGG_.ARC
- 102 1 173 A 10-7月 -13
- 名称: D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_173_8XT0900C_.ARC
- 是否确定要删除以上对象 (输入 YES 或 NO)?
- 是否确定要删除以上对象 (输入 YES 或 NO)? yes
- 已删除的归档日志
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_167_8XSOXYGH_.ARC RECID=96 ST
- AMP=820410050
- 已删除的归档日志
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_168_8XSOY383_.ARC RECID=97 ST
- AMP=820410057
- 已删除的归档日志
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_169_8XSOY9R0_.ARC RECID=98 ST
- AMP=820410062
- 已删除的归档日志
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_170_8XSOYH2F_.ARC RECID=99 ST
- AMP=820410067
- 已删除的归档日志
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_171_8XT08TB7_.ARC RECID=100 S
- TAMP=820420638
- 已删除的归档日志
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_172_8XT08TGG_.ARC RECID=101 S
- TAMP=820420638
- 已删除的归档日志
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_173_8XT0900C_.ARC RECID=102 S
- TAMP=820420643
- 7 对象已删除
其实方法还有很多
1:增大db_recovery_file_dest_size值
2:更换归档日志路径
3:检查失效的归档日志文件,然后删除
- C:\Users\Administrator>rman target /
- 恢复管理器: Release 11.2.0.1.0 - Production on 星期三 7月 10 15:41:53 2013
- Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
- 已连接到目标数据库: ORCL (DBID=1336354077, 未打开)
- RMAN> crosscheck archivelog all;
- 使用目标数据库控制文件替代恢复目录
- 分配的通道: ORA_DISK_1
- 通道 ORA_DISK_1: SID=189 设备类型=DISK
- 对归档日志的验证成功
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_174_8XT1VGG9_.ARC RECID=103 S
- TAMP=820422255
- 对归档日志的验证成功
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_175_8XT1WOMS_.ARC RECID=104 S
- TAMP=820422294
- 对归档日志的验证成功
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_176_8XT1Y02X_.ARC RECID=105 S
- TAMP=820422338
- 对归档日志的验证成功
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_177_8XT1Z783_.ARC RECID=106 S
- TAMP=820422377
- 对归档日志的验证成功
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_178_8XT20GWL_.ARC RECID=107 S
- TAMP=820422416
- 对归档日志的验证成功
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_179_8XT21P6K_.ARC RECID=108 S
- TAMP=820422458
- 对归档日志的验证成功
- 归档日志文件名=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2013_07_10\O1_MF_1_180_8XT231SN_.ARC RECID=109 S
- TAMP=820422499
- 已交叉检验的 7 对象
如何删除参考:http://www.blogjava.net/decode360/archive/2009/06/25/287747.html
其实本身我的Oracle是非归档模式,前一段时间进行了测试切换成归档模式了,所以导致今天的问题,那么这次就直接切换成非归档模式
- SQL> conn / as sysdba
- 已连接。
- SQL> archive log list
- 数据库日志模式 存档模式
- 自动存档 启用
- 存档终点 USE_DB_RECOVERY_FILE_DEST
- 最早的联机日志序列 178
- 下一个存档日志序列 180
- 当前日志序列 180
- SQL> shutdown immediate;
- 数据库已经关闭。
- 已经卸载数据库。
- ORACLE 例程已经关闭。
- SQL> startup mount;
- ORACLE 例程已经启动。
- Total System Global Area 5110898688 bytes
- Fixed Size 2184592 bytes
- Variable Size 3355445872 bytes
- Database Buffers 1744830464 bytes
- Redo Buffers 8437760 bytes
- 数据库装载完毕。
- SQL> alter database noarchivelog;
- 数据库已更改。
- SQL> alter database open;
- 数据库已更改。
- SQL> archive log list;
- 数据库日志模式 非存档模式
- 自动存档 禁用
- 存档终点 USE_DB_RECOVERY_FILE_DEST
- 最早的联机日志序列 179
- 当前日志序列 181
收获:以前Oracle出现问题,基本上就不去理会,要么重装,要么重装,那Oracle根本学不到什么东西
以后出现问题,要多思考多研究,每一个事例都是一个学习的机会,这样才能有进步啊
相关推荐
### 如何正确删除Oracle归档日志 #### 一、问题背景 在Oracle数据库的日常运维工作中,归档日志的管理和清理是一项重要的任务。随着业务的发展和数据的增长,归档日志会不断累积,占据大量的磁盘空间。如果不及时...
ORACLE归档日志设置 ORACLE数据库的归档日志设置是一种重要的机制,旨在保障数据库的安全性和灾难恢复能力。通过设置数据库的日志模式和自动归档模式,可以确保数据库的可靠性和可恢复性。 数据库日志模式的设置是...
#功能:自动删除ORACLE归档日志文件 #删除方式:rman ,deletearchivelog #调用方式:可单独调用,或在job_clean_archivlog.sh脚本中根据需要调用见另外的附件) ##############################################
#### 一、Oracle归档日志简介 Oracle数据库中的归档日志包含了所有事务处理的更改记录,用于数据库恢复操作。归档日志是在数据库处于归档模式下,当重做日志文件填满并进行切换时生成的。归档日志存储在指定的位置...
Oracle数据库归档日志挖掘是数据库管理中一项重要的任务,特别是在数据恢复、审计或问题排查时。本操作手册提供了一套详细的步骤,适用于对Oracle不太熟悉的用户,旨在帮助他们理解和执行归档日志的分析。 首先,...
Oracle 归档日志详解(运行模式、分类) Oracle 归档日志是 Oracle 数据库中的一种日志机制,用于记录数据库的所有变化,以便在出现问题时进行恢复。归档日志可分为在线重做日志和归档重做日志两大类。 在线重做...
#功能:当空间占用率高于60%时自动删除ORACLE归档日志文件 # #删除方式:高于60%时使用rman+deletearchivelog,高于79%时使用武力删除 #调用方式:可单独调用,或配置定时任务自动执行脚本(会调用clean_archivelog....
Oracle归档日志的开启、关闭和删除 Oracle数据库中的归档日志(Archive Log)是一种重要的日志机制,用于记录数据库中的所有操作,以便在数据库崩溃或系统故障时能够快速恢复数据。然而,打开归档日志模式后,会...
在 Oracle 中,归档日志的删除是非常重要的,因为归档日志满可能会导致数据库启动不起来或数据库不能正常使用。以下是关于 Oracle 归档日志删除的知识点: 查看 Oracle 归档日志大小 查看 Oracle 归档日志大小可以...
Oracle归档日志非常重要,对归档日志的管理更加重要,本文主要讲解Oracle归档日志方面的各种管理,值得收藏。
综上所述,了解和管理Oracle归档日志对于确保数据库的稳定运行至关重要。通过对归档日志的监控、适时的删除策略和合理的空间规划,可以有效避免因归档日志空间不足引发的问题,保障数据库的高效运行。
### Oracle归档日志知识点详解 #### 一、Oracle在线重做日志(Online Redo Log)概述 **在线重做日志(Online Redo Log)**是Oracle数据库的重要组成部分,用于记录所有对数据库所做的更改操作。这些更改包括数据...
Oracle数据库归档日志满问题解决方案 Oracle数据库的归档日志满问题是一个常见的问题,当归档日志满时,数据库将无法写入新的日志,从而影响数据库的正常运行。下面是一个解决方案,旨在帮助用户解决 Oracle ...
在归档模式下,每当一个重做日志文件组被填满并且提交时,Oracle会自动将其内容复制到归档日志中,并将该重做日志文件组标记为可重用。 #### 清理归档日志的步骤 ##### 1. 删除归档日志物理文件 归档日志通常存储...
本文将介绍如何调整ORACLE数据库的归档日志空间大小,并解决归档日志满的问题。 一、 ORACLE数据库归档日志的重要性 ORACLE数据库的归档日志是一种灾难恢复机制,它可以帮助数据库管理员在发生灾难时恢复数据库。...
Oracle归档日志是数据库运行过程中产生的事务日志的备份,用于在发生故障时进行数据恢复。当数据库在归档模式下运行时,每次检查点都会生成新的归档日志,以便在系统崩溃或介质故障后能够恢复到一致的状态。然而,...
本文将详细解释如何在Windows和Linux系统上使用脚本删除Oracle归档日志,并讨论相关知识点。 首先,删除Oracle归档日志前,我们需要理解以下几个关键概念: 1. **归档模式**:当Oracle数据库运行在归档模式下,...
### Oracle归档日志空间不足引发的问题及解决方法 #### 一、问题概述 在Oracle数据库的日常管理和维护过程中,可能会遇到归档日志空间不足的情况。这种情况一旦发生,不仅会影响到数据库的正常运行,还可能导致...