首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 认证考试 > ORACLE/CIW认证 >

ORA-16038、ORA-19809、ORA-00312问题及解决方案

2008-11-12 
ORA-16038、ORA-19809、ORA-00312问题

    今天在启动自己windowns下的oracle时,遇到如下的情况:
  Microsoft Windows XP [版本 5.1.2600]
  (C) 版权所有 1985-2001 Microsoft Corp.
  D:\Documents and Settings\Administrator>sqlplus /nolog
  SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 11月 9 20:59:04 2008
  Copyright (c) 1982, 2005, Oracle. All rights reserved.
  SQL> connect / as sysdba
  已连接。
  步骤1:
  SQL> shutdown immediate
  ORA-01109: 数据库未打开
  已经卸载数据库。
  ORACLE 例程已经关闭。
  SQL> startup mount;
  ORACLE 例程已经启动。
  Total System Global Area 1593835520 bytes
  Fixed Size 1251508 bytes
  Variable Size 536872780 bytes
  Database Buffers 1048576000 bytes
  Redo Buffers 7135232 bytes
  数据库装载完毕。
  步骤2:
  SQL> alter database open;
  alter database open
  *
  第 1 行出现错误:
  ORA-16038: 日志 1 序列号 74 无法归档
  ORA-19809: 超出了恢复文件数的限制
  ORA-00312: 联机日志 1 线程 1:
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'
  查了一下错误信息
  ORA-19809: limit exceeded for recovery files
  Cause: The limit for recovery files specified by the DB_RECOVERY_FILE_DEST_SIZE was exceeded.
  Action: The error is accompanied by 19804. See message 19804 for further details.
  解决方法:
  方法1、
  1)将归档设置到其他目录
  修改alter system set log_archive_dest = 其他路径
  2)转移或者删除闪回恢复区里的归档日志。
  方法2、
  也可以使用增大闪回恢复区的方法来解决
  SQL> show parameter db_recovery_file_dest_size
  NAME TYPE VALUE
  db_recovery_file_dest_size big integer 2G
  下面是我的解决该问题的全部过程:(使用方法1来解决的)
  首先试图只使用CLEAR LOGFILE命令来试图转移或者删除闪回恢复区里的归档日志,文档描述如下:
  Use the CLEAR LOGFILE clause to reinitialize an online redo log, optionally without archiving the redo log.
  CLEAR LOGFILE is similar to adding and dropping a redo log, except that the statement may be issued even if there
  are only two logs for the thread and may be issued for the current redo log of a closed thread.
  You must specify UNARCHIVED if you want to reuse a redo log that was not archived.
  首先,执行下面的语句看看group1是不是current日志组
  SQL> select group#,sequence#,archived,status from v$log;
  GROUP# SEQUENCE# ARC STATUS
  1 74 NO INACTIVE
  3 75 NO INACTIVE
  2 76 NO CURRENT
  SQL> alter database clear logfile group 1;
  alter database clear logfile group 1
  *
  第 1 行出现错误:
  ORA-00350: 日志 1 (实例 orcl 的日志, 线程 1) 需要归档
  ORA-00312: 联机日志 1 线程 1:
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'
  总结: 日志文件组的状态
  current: 当前正在使用的工作组
  inactive: 非活动组
  active : 归档还没有完成
  unused : 还没有使用,一般新建的工组组都是这个状态
  视图使用 clear unarchived logfile,使用UNARCHIVED会在重做日志不再需要归档的情况下可以定义UNARCHIVED。

 

3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.com/exam/

热点排行