转自: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根本学不到什么东西
以后出现问题,要多思考多研究,每一个事例都是一个学习的机会,这样才能有进步啊