ORA-00600 [kcratr_nab_less_than_odr] [4194]錯誤解決辦法

来源:http://www.cnblogs.com/dingdangzhijia/archive/2017/04/17/6722235.html
-Advertisement-
Play Games

業務場景:公司電纜被挖斷,突然斷電導致的宕機。 [oracle@slave1 ~]$ sqlplus / as sysdba SQL> startup mount --載入到mount狀態 SQL> alter database open; [oracle@slave1 trace]$ cd /u0 ...


業務場景:公司電纜被挖斷,突然斷電導致的宕機。

 [oracle@slave1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon Apr 17 11:09:59 2017

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> startup mount  --載入到mount狀態

ORACLE instance started.

Total System Global Area 1603411968 bytes
Fixed Size                  2213776 bytes
Variable Size            1023412336 bytes
Database Buffers          570425344 bytes
Redo Buffers                7360512 bytes
Database mounted.

  

SQL> alter database open;

alter database open
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1],
[199], [48589], [48614], [], [], [], [], [], [], []

 


[oracle@slave1 trace]$ cd /u01/app/oracle/diag/rdbms/zxdb/zxdb/trace

  --查看警報日誌,具體錯誤看日誌里寫的trc文件。伺服器異常斷電,導致LGWR寫聯機日誌文件時報錯,下次重啟資料庫時,需要實例級恢復,而又無法從聯機日誌文件中獲取到redo信息,因為上次斷電,寫日誌報錯。

Trace file /u01/app/oracle/diag/rdbms/chuzhouqyhx/chuzhouqyhx/trace/chuzhouqyhx_ora_6857.trc
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1
System name:    Linux
Node name:      slave1
Release:        2.6.32-431.el6.x86_64
Version:        #1 SMP Fri Nov 22 03:15:09 UTC 2013
Machine:        x86_64
Instance name: chuzhouqyhx
Redo thread mounted by this instance: 1
Oracle process number: 19
Unix process pid: 6857, image: oracle@slave1 (TNS V1-V3)


*** 2017-04-13 09:38:01.921
*** SESSION ID:(191.3) 2017-04-13 09:38:01.921
*** CLIENT ID:() 2017-04-13 09:38:01.921
*** SERVICE NAME:() 2017-04-13 09:38:01.921
*** MODULE NAME:(sqlplus@slave1 (TNS V1-V3)) 2017-04-13 09:38:01.921
*** ACTION NAME:() 2017-04-13 09:38:01.921
 
Successfully allocated 3 recovery slaves
Using 45 overflow buffers per recovery slave
Thread 1 checkpoint: logseq 199, block 2, scn 4644236
  cache-low rba: logseq 199, block 48589
    on-disk rba: logseq 199, block 48614, scn 4653640
  start recovery at logseq 199, block 48589, scn 0

*** 2017-04-13 09:38:01.930
Started writing zeroblks thread 1 seq 199 blocks 48589-48596

*** 2017-04-13 09:38:01.932
Completed writing zeroblks thread 1 seq 199
==== Redo read statistics for thread 1 ====
Total physical reads (from disk and memory): 4096Kb
-- Redo read_disk statistics --
Read rate (ASYNC): 0Kb in 0.01s => 0.00 Mb/sec
----------------------------------------------
----- Recovery Hash Table Statistics ---------
Hash table buckets = 32768
Longest hash chain = 0
Average hash chain = 0/0 = 0.0
Max compares per lookup = 0
Avg compares per lookup = 0/0 = 0.0
----------------------------------------------
WARNING! Crash recovery of thread 1 seq 199 is
ending at redo block 48589 but should not have ended before
redo block 48614
Incident 6154 created, dump file: /u01/app/oracle/diag/rdbms/chuzhouqyhx/chuzhouqyhx/incident/incdir_6154/chuzhouqyhx_ora_6857_i6154.trc
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [199], [48589], [48614], [], [], [], [], [], [], []

ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [199], [48589], [48614], [], [], [], [], [], [], []
ORA-00600: internal error code, arguments: [kcratr_nab_less_than_odr], [1], [199], [48589], [48614], [], [], [], [], [], [], []

  

SQL> recover database until cancel using backup controlfile; --文件選擇的時候,日誌要選對,在alert日誌里有寫編號。

ORA-00279: change 4644236 generated at 04/12/2017 22:03:56 needed for thread 1
ORA-00289: suggestion :
/oradata/flash_recovery_area/CHUZHOUQYHX/archivelog/2017_04_13/o1_mf_1_199_%u_.a
rc
ORA-00280: change 4644236 for thread 1 is in sequence #199


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/oradata/chuzhouqyhx/redo01.log        
Log applied.
Media recovery complete.

  

SQL> alter database open;  --

alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

  

alter database open RESETLOGS; --

--解決方案

從這裡可以看到出現了ORA-600[4194]/[4193],第一感覺就是undo出現問題。
4193:表示undo和redo不一致(Arg [a] Undo record seq number,Arg [b] Redo record seq number );
4194:表示也是undo和redo不一致(Arg [a] Maximum Undo record number in Undo block,Arg [b] Undo record number from Redo block)

所以出現4193錯誤,解決方法跟4194一樣。

Sat Apr 15 10:08:17 2017
Sweep [inc][11037]: completed
Sweep [inc2][11037]: completed
Sat Apr 15 14:07:16 2017
Errors in file /u01/app/oracle/diag/rdbms/chuzhouqyhx/chuzhouqyhx/trace/chuzhouqyhx_j000_29485.trc  (incident=11028):
ORA-01578: ORACLE data block corrupted (file # 2, block # 62520)
ORA-01110: data file 2: '/oradata/chuzhouqyhx/sysaux01.dbf'
ORA-26040: Data block was loaded using the NOLOGGING option

 

[oracle@slave1 trace]$ tail -100f alert_chuzhouqyhx.log

 

Database altered.


Thu Apr 13 10:02:58 2017
Doing block recovery for file 3 block 1661
Resuming block recovery (PMON) for file 3 block 1661
Block recovery from logseq 1, block 53 to scn 4653766
Recovery of Online Redo Log: Thread 1 Group 1 Seq 1 Reading mem 0
  Mem# 0: /oradata/chuzhouqyhx/redo01.log
Block recovery completed at rba 1.63.16, scn 0.4653770
Errors in file /u01/app/oracle/diag/rdbms/chuzhouqyhx/chuzhouqyhx/trace/chuzhouqyhx_pmon_6817.trc  (incident=6018):
ORA-00600: internal error code, arguments: [4194], [0x000000004], [0x000000000], [], [], [], [], [], [], [], [], []
Errors in file /u01/app/oracle/diag/rdbms/chuzhouqyhx/chuzhouqyhx/trace/chuzhouqyhx_pmon_6817.trc:
ORA-00600: internal error code, arguments: [4194], [0x000000004], [0x000000000], [], [], [], [], [], [], [], [], []
PMON (ospid: 6817): terminating the instance due to error 472
Instance terminated by PMON, pid = 6817

  

--新建個臨時表空間,修改預設spflie里的undo_tablespace參數。記得手動修改下pflie的預設表空間參數。

SQL>CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE '/oradata/chuzhouqyhx/undotbs02.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 8G;

SQL>alter system set undo_tablespace='UNDOTBS2' scope=both;

[oracle@slave1 dbs]$ cat spfilechuzhouqyhx.ora --查看下undo_tablespace參數

chuzhouqyhx.__java_pool_size=16777216
chuzhouqyhx.__large_pool_size=16777216
chuzhouqyhx.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
chuzhouqyhx.__pga_aggregate_target=536870912
chuzhouqyhx.__sga_target=1610612736
chuzhouqyhx.__shared_io_pool_size=0
chuzhouqyhx.__shared_pool_size=956301312
chuzhouqyhx.__streams_pool_size=33554432
*.audit_file_dest='/u01/app/oracle/admin/chuzhouqyhx/adump'
*.audit_trail='db'
*.compatible='11.2CC"|0.0.0'
*.control_files='/oradata/chuzhouqyhx/control01.ctl','/oradata/flash_recovery_area/chuzhouqyhx/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='chuzhouq'
*.db_recovery_file_dest='/oradata/flash_recovery_area'
*.db_recovery_file_dest_size=2936012800
*.db_unique_name='chuzhouqyhx'
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=chuzhouqyhxXDB)'
*.open_cursors=300
*.pga_aggregate_target=536870912
*.processes=150
*.remote_login_passwordfileCC"5f='EXCLUSIVE'
*.sga_target=1610612736
*.undo_tablespace='UNDOTBS2'

  

SQL>shutdown immediate --關閉實例

SQL>startup --啟動資料庫

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 第一步:前往文件夾 或者 按快捷鍵組合 Shift+Command+G 三個組合按鍵。 第二步:找到Hosts 文件 複製到桌面 修改 然後 保存 。 第三步:把修改過的文件 替換原來文件 就ok了。 ...
  • 最近把一個游戲內嵌到app里,選用了微信開源的Mars,結果遇到了記憶體峰值。解決的方法很容易,加上@autoreleasepool就可以了。但是做實驗的時候又有了好多疑惑,不停地往深處挖,最終瞭解了autoreleasepool的實現,Tagged Pointer,和NSString記憶體管理的特殊性 ...
  • 簡介: 存儲過程(stored procedure)是一組為了完成特定功能的SQL語句集合,經編譯後存儲在伺服器端的資料庫中,利用存儲過程可以加速SQL語句的執行。 自定義存儲過程,由用戶創建並能完成某一特定功能的存儲過程,存儲過程既可以有參數又有返回值,但是它與函數不同,存儲過程的返回值只是指明執 ...
  • 往Oracle 中導入數據時,有一個列導入的數據應該時‘2017-04-17’ 的格式,結果導入的數據為 ‘2017/04/17’格式的,1000多條記錄要一條條改基本不可能。 於是想到了replace這個函數,具體用法如下: update 表1 t set t.列1=replace((select ...
  • 在ORACLE資料庫中,定義外鍵約束時,ORACLE是不會自動創建對應索引的,必須手動在外鍵約束相關的列上創建索引。那麼外鍵欄位上是否有必要創建索引呢?如果有必要的話,巡檢時,如何找出外鍵欄位上沒有創建索引的相關表,並生成對應的索引的腳本呢? 外鍵缺失索引影響 外鍵列上缺少索引會帶來三個問題,限制並... ...
  • 隨著需求的變化越來越快,線上修改表結構變得越來越需要。 在mysql5.6以前,mysql的修改表結構操作會鎖表,這樣就會造成開發人員或者DBA修改表結構必須要等到凌晨流量谷值或者停服修改。這樣必定會流失一部分用戶,在當下的互聯網需求里是不太能容忍的。 在mysql5.6之後,雖然mysql支持線上 ...
  • 在安裝資料庫的時候出現瞭如下錯誤: 解決辦法如下: 1.在bin目錄下 輸入:kill -s 9 9907 再輸入:ps -ef|grep mysql 顯示如下: 2.回到lampp目錄下,重啟資料庫,伺服器: 1. ./lampp restart ...
  • 有這麼一個需求:寫一條sql語句,功能是當B表中的欄位2值=X的時候,修改A表中的一個欄位1=Y,SQL語句如下: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...