ORA-00392 ORA-00312 日志正在清除故障

最近在还原Oracle数据库后open的时候碰到了ORA-00392: log 3 of thread 1 is being cleared, operation not allowed,其字面含义则是日志文件正在被清除,不允许操作。通常情况下,当我们基于不完全恢复的时候,日志文件需要被清空,而此时是正在被清空。不是很好理解啊。下面是这个问题的解决方案。

一、故障现象

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00392: log 3 of thread 1 is being cleared, operation not allowed
ORA-00312: online log 3 thread 1: '/oradata/sincnet/redo03.log'

-- 查看故障描述信息
SQL> ho oerr ora 00392
00392, 00000, "log %s of thread %s is being cleared, operation not allowed"
// *Cause:  An operation encountered this online log in the middle of being
//          cleared.  The command that began the clearing may have terminated
//          without completing the clearing.
// *Action: If the clear command is still executing then wait for its
//          completion. If it terminated then reissue the clear command, or
//          drop the log.

--下面的SQL语句表名3个日志文件都处于clearing状态
SQL> select group#,bytes/1024/1024||'M',status from v$log;

    GROUP# BYTES/1024/1024||'M'                      STATUS
---------- ----------------------------------------- ----------------
         1 50M                                       CLEARING
         3 50M                                       CLEARING_CURRENT
         2 50M                                       CLEARING

二、故障处理

下面直接执行clear logfile 命令
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;

Database altered.

SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;

Database altered.

SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;

Database altered.

--再次查看状态,此时状态显示为常见的几种正常状态
SQL> select group#,bytes/1024/1024||'M',status from v$log;

    GROUP# BYTES/1024/1024||'M'                      STATUS
---------- ----------------------------------------- ----------------
         1 50M                                       UNUSED
         3 50M                                       CURRENT
         2 50M                                       UNUSED

--再次尝试open resetlog,依旧错误,实例终止,需要upgrade
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
Process ID: 30553
Session ID: 1217 Serial number: 3

--查看是否存在pmon进程
SQL> ho ps -ef|grep pmon
oracle   30589 30440  0 16:02 pts/1    00:00:00 /bin/bash -c ps -ef|grep pmon
oracle   30591 30589  0 16:02 pts/1    00:00:00 grep pmon

--Author : Leshami
--Blog   : http://blog.csdn.net/leshami
--下面尝试upgrade,因为当前基于一个11.2.0.1的备份恢复到11.2.0.4,所以需要upgrade
SQL> startup upgrade;
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
SQL>
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@10134569 DBSRV]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed Feb 24 16:03:15 2016

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup upgrade;
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2260088 bytes
Variable Size             704643976 bytes
Database Buffers          352321536 bytes
Redo Buffers                9711616 bytes
Database mounted.
Database opened.
SQL> @$ORACLE_HOME/rdbms/admin/catupgrd.sql; --执行升级脚本
时间: 2024-11-03 07:51:53

ORA-00392 ORA-00312 日志正在清除故障的相关文章

ORA-00392ORA-00312日志正在清除故障_oracle

最近在还原Oracle数据库后open的时候碰到了ORA-00392: log 3 of thread 1 is being cleared, operation not allowed,其字面含义则是日志文件正在被清除,不允许操作. 通常情况下,当我们基于不完全恢复的时候,日志文件需要被清空,而此时是正在被清空.不是很好理解啊.下面是这个问题的解决方案. 一.故障现象 <code class="hljs vhdl">SQL> alter database open

ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)

        不论是单实例还是RAC,对于非缺省端口下(1521)的监听器,pmon进程不会将service/instance注册到监听器,即不会实现动态注册.与单实例相同,RAC非缺省端口的监听器也是通过设置参数local_listener来达到目的.除此之外,还可以对实例进行远程注册,以达到负载均衡的目的.这是通过一个参数remote_listener来实现.   有关Oracle 网络配置相关基础以及概念性的问题请参考:      配置ORACLE 客户端连接到数据库   配置非默认端口

ORACLE RAC 监听配置 (listener.ora tnsnames.ora)

    Oracle RAC 监听器的配置与单实例稍有不同,但原理和实现方法基本上是相同的.在Oracle中 tns进程用于为指定网络地址上的一个或多个Oracle 实例提供服务注册,并响应来自客户端对该服务提出的连接请求.一旦连接请求到达,并派生出一个服务器进程建立服务器与用户端之间的连接(专有服务器dedicated server)或转发服务请求(共享服务器模式shared server).如果监听器知道多于一个实例提供所请求的服务,则可能会根据客户端与服务器端相关配置将请求定位到较低负载的

listener.ora,tnsnames.ora中一个空格的威力

最近几天被网络监听配置搞得焦头烂额,有时候配置没问题,有时候就出莫名其妙的问题,今天专门花时间总结了一下,希望对大家有所帮助. listener.ora,tnsnames.ora有时候没有netca,netmgr这样的图形工具来创建的时候,只能手工来做,手工做的时候会有一些格式的问题,多加一个空格,或者少一个空格,就会有不同的结果. 案例一 下面是一个监听的基本配置,我故意在前面多加了一个空格(黄色标记所示).  LISTE1=   (DESCRIPTION=     (ADDRESS_LIST

Linux系统的LOG日志文件及入侵后日志的清除

UNIX网管员主要是靠系统的LOG,来获得入侵的痕迹.当然也有第三方工具记录入侵系统的 痕迹,UNIX系统存放LOG文件,普通位置如下: /usr/adm - 早期版本的UNIX/var/adm - 新一点的版本使用这个位置/var/log - 一些版本的Solaris,linux BSD,Free BSD使用这个位置/etc - 多数UNIX版本把utmp放在这里,有些也把wtmp放在这里,syslog.conf在这里 下面的一些文件根据你所在的目录不同而不同:acct 或 pacct -- 

怎样利用路由器日志排除路由器故障

  我们以Cisco为例来认识一下,路由器的一些重要信息可以通过syslog机制在内部网络的Unix主机上作路由器日志.在路由器运行过程中,路由器会向日志主机发送包括链路建立失败信息.包过滤信息等等日志信息,通过登录到日志主机,网络管理员可以了解日志事件,对日志文件进行分析,可以帮助管理员进行故障定位.故障排除和网络安全管理. 认识syslog设备 首先介绍一下syslog设备,它是标准Unix,的跟踪记录机制,syslog可以记录本地的一些事件或通过网络记录另外一个主机上的事件,然后将这些信息

oracle的sqlnet.ora , tnsnames.ora , Listener.ora 文件的作用(转)

oracle网络配置三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下.1. sqlnet.ora-----作用类似于linux或者其他unix的nsswitch.conf文件,通过这个文件来决定怎么样找一个连接中出现的连接字符串.例如我们客户端输入sqlplus sys/oracle@orcl假如我的sqlnet.ora是下面这个样子SQLNET.AUTHENTICATION_SERVIC

配置sqlnet.ora限制IP访问Oracle

--==========================-- 配置sqlnet.ora 限制IP访问Oracle--==========================     与防火墙类似的功能,Oracle 提供限制与允许特定的IP或主机名通过Oracle Net来访问数据库.这个功能由sqlnet.ora配置文件来实现.该文件通常$ORACLE_HOME/network/admin/ 目录下,与tnsnames.ora以及listener.ora位于同一路径.用法也比较简单.通过监听器的限

SQL Server 数据库清除日志的方法_mssql2005

方法一: 1.打开查询分析器,输入命令 BACKUP LOG database_name WITH NO_LOG 2.再打开企业管理器--右键要压缩的数据库--所有任务--收缩数据库--收缩文件--选择日志文件--在收缩方式里选择收缩至xxm,这里会给出一个允许收缩到的最小m数,直接输入这个数,确定就可以了. 方法二: 设置检查点,自动截断日志 一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大 1.设置数据库模式为简单模