程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> ORA-00392ORA-00312日志正在清除故障,ora00392ora00312

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

編輯:Oracle教程

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


最近在還原Oracle數據庫後open的時候碰到了ORA-00392: log 3 of thread 1 is being cleared, operation not allowed,其字面含義則是日志文件正在被清除,不允許操作。

通常情況下,當我們基於不完全恢復的時候,日志文件需要被清空,而此時是正在被清空。不是很好理解啊。下面是這個問題的解決方案。

一、故障現象

<code class="hljs vhdl">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</code>

二、故障處理

<code class="hljs vhdl"><code class="hljs vhdl">下面直接執行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; --執行升級腳本</code></code>

關於ORA-00392ORA-00312日志正在清除故障的教程小編就給大家介紹這麼多,希望對大家有所幫助!

您可能感興趣的文章:

  • Oracle數據庫系統緊急故障處理方法
  • ORACLE 報警日志如何查看?
  • oracle 如何關閉打開歸檔日志
  • Linux下Oracle歸檔日志自動清理腳本代碼(sh)
  • oracle 11g的警告日志和監聽日志的刪除方法
  • ORACLE DATAGUARD中手工處理日志v$archive_GAP的方法
  • 教你怎樣用Oracle方便地查看報警日志錯誤

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved