首页 / 数据库 / MySQL / 升级不正确导致ORA-27468错误 及闪回区满(ORA-16014)
Oracle 10.2.0.5环境告警日志出现ORA-27468错误。查看预警日志:Errors in file /u01/app/oracle/admin/crab/bdump/crab_j001_23669.trc: ORA-12012: 自动执行作业 5329 出错 ORA-27468: "SYS.PURGE_LOG" 被另一进程锁定 Fri Jun 27 23:14:22 CST 2014 Errors in file /u01/app/oracle/admin/crab/bdump/crab_j000_23667.trc: ORA-12012: 自动执行作业 42568 出错 ORA-27468: "EXFSYS.RLM$SCHDNEGACTION" 被另一进程锁定 Fri Jun 27 23:14:22 CST 2014 Errors in file /u01/app/oracle/admin/crab/bdump/crab_j002_23671.trc: ORA-12012: 自动执行作业 8886 出错 ORA-27468: "SYS.GATHER_STATS_JOB" 被另一进程锁定 Fri Jun 27 23:14:22 CST 2014 Errors in file /u01/app/oracle/admin/crab/bdump/crab_j001_23669.trc: ORA-12012: 自动执行作业 42567 出错 ORA-27468: "EXFSYS.RLM$EVTCLEANUP" 被另一进程锁定 Fri Jun 27 23:14:22 CST 2014 Errors in file /u01/app/oracle/admin/crab/bdump/crab_j000_23667.trc: ORA-12012: 自动执行作业 8887 出错 ORA-27468: "SYS.AUTO_SPACE_ADVISOR_JOB" 被另一进程锁定 [oracle@RedHat4 bdump]$ tail -20 /u01/app/oracle/admin/crab/bdump/alert_crab.log Fri Jun 27 23:14:22 CST 2014 Errors in file /u01/app/oracle/admin/crab/bdump/crab_j001_23669.trc: ORA-12012: 自动执行作业 5329 出错 ORA-27468: "SYS.PURGE_LOG" 被另一进程锁定 Fri Jun 27 23:14:22 CST 2014 Errors in file /u01/app/oracle/admin/crab/bdump/crab_j000_23667.trc: ORA-12012: 自动执行作业 42568 出错 ORA-27468: "EXFSYS.RLM$SCHDNEGACTION" 被另一进程锁定 Fri Jun 27 23:14:22 CST 2014 Errors in file /u01/app/oracle/admin/crab/bdump/crab_j002_23671.trc: ORA-12012: 自动执行作业 8886 出错 ORA-27468: "SYS.GATHER_STATS_JOB" 被另一进程锁定 Fri Jun 27 23:14:22 CST 2014 Errors in file /u01/app/oracle/admin/crab/bdump/crab_j001_23669.trc: ORA-12012: 自动执行作业 42567 出错 ORA-27468: "EXFSYS.RLM$EVTCLEANUP" 被另一进程锁定 Fri Jun 27 23:14:22 CST 2014 Errors in file /u01/app/oracle/admin/crab/bdump/crab_j000_23667.trc: ORA-12012: 自动执行作业 8887 出错 ORA-27468: "SYS.AUTO_SPACE_ADVISOR_JOB" 被另一进程锁定导致这个错误的原因在于升级时没有执行catupgrd.sql,而是执行了建库的部分脚本如catalog.sql和catproc.sql,这导致只有CATALOG视图和系统的PACKAGE以及TYPE的版本更新到10.2.0.5,而其他数据库中组件的版本并没有升级,仍然是10.2.0.1。在MOS文档ORA-12012 ORA-27468: "SYS.PURGE_LOG" is Locked by Another Process [ID 751884.1]中介绍了这个错误,这个问题可能发生在10.2.0.2到10.2.0.5之间,解决问题的方法很简单,在闲时执行catupgrd.sql,完成升级组件的后续操作既可。在执行catupgrd.sql期间还遇到Oracle闪回区满(ORA-16014)Sat Jun 28 16:30:31 CST 2014 ORA-16038: 日志 3 sequence# 52 无法归档 ORA-19809: 超出了恢复文件数的限制 ORA-00312: 联机日志 3 线程 1: "/u01/app/oracle/oradata/crab/redo03.log" Sat Jun 28 16:30:31 CST 2014 Errors in file /u01/app/oracle/admin/crab/bdump/crab_arc1_1250.trc: ORA-16038: 日志 3 sequence# 52 无法归档 ORA-19809: 超出了恢复文件数的限制 ORA-00312: 联机日志 3 线程 1: "/u01/app/oracle/oradata/crab/redo03.log" Sat Jun 28 16:31:31 CST 2014 ARCH: Archival stopped, error occurred. Will continue retrying Sat Jun 28 16:31:31 CST 2014 ORACLE Instance crab - Archival Error Sat Jun 28 16:31:31 CST 2014 ORA-16014: 日志 3 sequence# 52 未归档, 没有可用的目的地--查看归档模式 SQL> archive log list;
--归档空间使用率 SQL>select * from v$flash_recovery_area_usage;
--闪回区所占用的空间 SQL>select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage;解决办法: -- 扩大闪回区空间 SQL>alter system set db_recovery_file_dest_size=3g scope=both;