SCN不一致將會導致ORA-00600 2662錯誤

在許多情況下,在使用隱含參數_ALLOW_RESETLOGS_CORRUPTION後,用resetlogs打開數據庫將會由于SCN不一致出現ORA-00600 2662錯誤,下文中將針對這一問題的解決過程進行詳細的介紹。

首先,在正常啓動數據庫後,大家可以從alert文件中發現ora-00600 2662號錯誤。

Sun Dec 11 18:02:25 2005Errors in file /opt/oracle/admin/conner/udump/conner_ora_13349.trc:ORA-00600: internal error code, arguments: [2662], [0], [547743994], [0], [898092653], [8388617], [], []Sun Dec 11 18:02:27 2005Errors in file /opt/oracle/admin/conner/udump/conner_ora_13349.trc:ORA-00600: internal error code, arguments: [2662], [0], [547743994], [0], [898092653], [8388617], [], []Sun Dec 11 18:02:27 2005Error 600 happened during db open, shutting down databaseUSER: terminating instance due to error 600

(可以通過Oracle的內部事件來調整SCN)

增進SCN的常用方法:

1.通過immediate trace name方式(在數據庫Open狀態下)

alter session set events 'IMMEDIATE trace name ADJUST_SCN level x';

2.通過10015事件(在數據庫無法打開,mount狀態下)

alter session set events '10015 trace name adjust_scn level x';

注釋:level 1爲增進SCN 10億 (1 billion) (1024*1024*1024),一般情況下Level 1已經夠用。大家也可以根據實際情況適當調整。

在此示例中由于數據庫無法打開,只能使用兩種方法。

[oracle@jumper dbs]$ sqlplus "/ as sysdba"SQL*Plus: Release 9.2.0.4.0 - Production on Sun Dec 11 18:26:18 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to an idle instance.SQL> startup mount pfile=initconner.oraORACLE instance started.Total System Global Area 97588504 bytesFixed Size 451864 bytesVariable Size 33554432 bytesDatabase Buffers 62914560 bytesRedo Buffers 667648 bytesDatabase mounted.SQL> alter session set events '10015 trace name adjust_scn level 10';Session altered.SQL> alter database open;Database altered.

大家需要注意,由于示例中使用了10015事件,使得SCN增進了10 billion,稍後可以繼續來驗證。

[oracle@jumper dbs]$ sqlplus "/ as sysdba"SQL*Plus: Release 9.2.0.4.0 - Production on Sun Dec 11 18:26:18 2005Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.Connected to an idle instance.SQL> startup mount pfile=initconner.oraORACLE instance started.Total System Global Area 97588504 bytesFixed Size 451864 bytesVariable Size 33554432 bytesDatabase Buffers 62914560 bytesRedo Buffers 667648 bytesDatabase mounted.SQL> alter session set events '10015 trace name adjust_scn level 10';Session altered.SQL> alter database open;Database altered.

此時,數據庫可以打開,從alert文件中大家可以發現下面的提示:

Sun Dec 11 18:27:04 2005SMON: enabling cache recoverySun Dec 11 18:27:05 2005Debugging event used to advance scn to 10737418240

SCN被增進了10 billion,即 10 * (1024*1024*1024) = 10737418240,正好是日志裏記錄的數量。

大家可以從數據庫內部看一下檢查點的增進情況:

SQL> select open_mode from v$database;OPEN_MODE----------READ WRITESQL> select file#,CHECKPOINT_CHANGE# from v$datafile; FILE# CHECKPOINT_CHANGE#---------- ------------------ 1 547783998 2 547783998 3 547783998SQL> shutdown immediate;Database closed.Database dismounted.ORACLE instance shut down.SQL> startupORACLE instance started.Total System Global Area 97588504 bytesFixed Size 451864 bytesVariable Size 33554432 bytesDatabase Buffers 62914560 bytesRedo Buffers 667648 bytesDatabase mounted.Database opened.SQL> select file#,CHECKPOINT_CHANGE# from v$datafile; FILE# CHECKPOINT_CHANGE#---------- ------------------ 1 1.0737E+10 2 1.0737E+10 3 1.0737E+10SQL> col CHECKPOINT_CHANGE# for 99999999999999999SQL> select file#,CHECKPOINT_CHANGE# from v$datafile; FILE# CHECKPOINT_CHANGE#---------- ------------------ 1 10737418447 2 10737418447 3 10737418447

至此,大家可以發現CHECKPOINT_CHANGE#最後被增進了10 Billion。

ORA-00600 [2662]錯誤解決過程
   ORA-00600 錯誤解決過程數據庫版本:7.3.2 背景: 客戶那邊數據庫忽然出現一個current日志文件壞了,導致數據庫...查看完整版>>ORA-00600 [2662]錯誤解決過程
 
ORA-00600[2662]錯誤解決過程
  數據庫版本:7.3.2  背景:  客戶那邊數據庫突然出現一個current日志文件壞了,導致數據庫crash了,然後現場工程師使用_ALLOW_RESETLOGS_CORRUPTION = TRUE這個隱含參數,做了不完全恢複後強行將數據庫打開。...查看完整版>>ORA-00600[2662]錯誤解決過程
 
ORA-00600 [2662]錯誤解決過程
ORA-00600 錯誤解決過程 ORA-00600 錯誤解決過程 ORA-00600 錯誤解決過程數據庫版本:7.3.2 背景:客戶那邊數據庫突然出現一個current日志文件壞了,導致數據庫crash了,然後現場工程師使用_ALLOW_RESETLOGS...查看完整版>>ORA-00600 [2662]錯誤解決過程
 
ORA-00600 [2662]錯誤解決過程
ORA-00600 錯誤解決過程數據庫版本:7.3.2 背景:客戶那邊數據庫突然出現一個current日志文件壞了,導致數據庫crash了,然後現場工程師使用_ALLOW_RESETLOGS_CORRUPTION = TRUE這個隱含參數,做了不完全恢複後強行將...查看完整版>>ORA-00600 [2662]錯誤解決過程
 
ORA-00600 2262錯誤解決
  繼續上一個測試,使用隱含參數_ALLOW_RESETLOGS_CORRUPTION後resetlogs打開數據庫後,我們說很多時候你會碰到ORA-00600 2662號錯誤,這個錯誤的含義是:    A data block SCN is ahead of the current SCN. ...查看完整版>>ORA-00600 2262錯誤解決
 
深入講解ORA-00600 2262錯誤的解決方法
問題:遇到ORA-00600 2662號錯誤時應當如何解決? 解答:在我們使用隱含參數_ALLOW_RESETLOGS_CORRUPTION並且resetlogs打開數據庫後,可能會遇到ORA-00600 2662號錯誤,此錯誤的含義如下: A data block SCN is ahead ...查看完整版>>深入講解ORA-00600 2262錯誤的解決方法
 
oracle startup時 ORA-00600錯誤解決
Oracle9 startup時 報錯ORA-00600: 內部錯誤代碼,參數: [kcratr1_lostwrt], [], [], [], [], [], [], [] 原因可能是非法關機或掉電造成,以下是出現的問題及解決方法:C:\Documents and Settings\Administrator>...查看完整版>>oracle startup時 ORA-00600錯誤解決
 
數據文件SCN的一致性問題
  1、數據庫正常運行中,所有數據文件的SCN都是一致的嗎?    2、將一數據文件offline後,再將其online時,這個數據文件的SCN會前提嗎?假如是,前提到的SCN是怎麽確定的?    1.數據庫正常運行時,所有數...查看完整版>>數據文件SCN的一致性問題
 
數據文件SCN的一致性問題
  1、數據庫正常運行中,所有數據文件的SCN都是一致的嗎?  2、將一數據文件offline後,再將其online時,這個數據文件的SCN會前提嗎?假如是,前提到的SCN是怎麽確定的?  1.數據庫正常運行時,所有數據文件的...查看完整版>>數據文件SCN的一致性問題
 
 
回到王朝網路移動版首頁