ORA-600 [17182],ORA-07445 [kghrst()+1567]
今天,一个11.2.0.2 on CentOS5.8 x86-64 的单点库,出现了问题。
具体现象就是,每次alter database open时,会在10几秒内 自动crash(崩溃)掉
alert 日志如下
------------------------------------------------------------------------------------------------------------------------
SMON: slave died unexpectedly, downgrading to serial recovery
Errors in file /cvms/app/Oracle/diag/rdbms/hncvms/HNCVMS/trace/HNCVMS_smon_11203.trc (incident=187832):
ORA-00600: internal error code, arguments: [17182], [0x2B7C8E7CD7A0], [], [], [], [], [], [], [], [], [], []
Incident details in: /cvms/app/oracle/diag/rdbms/hncvms/HNCVMS/incident/incdir_187832/HNCVMS_smon_11203_i187832.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Doing block recovery for file 12 block 470173
Resuming block recovery (PMON) for file 12 block 470173
Block recovery from logseq 31163, block 68 to scn 70921364289
Recovery of Online Redo Log: Thread 1 Group 1 Seq 31163 Reading mem 0
Mem# 0: /cvms/app/oracle/oradata/HNCVMS/redo01.log
Block recovery completed at rba 31163.135.16, scn 16.2201887554
ORACLE Instance HNCVMS (pid = 14) - Error 600 encountered while recovering transaction (11, 3) on object 75050.
Errors in file /cvms/app/oracle/diag/rdbms/hncvms/HNCVMS/trace/HNCVMS_smon_11203.trc:
ORA-00600: internal error code, arguments: [17182], [0x2B7C8E7CD7A0], [], [], [], [], [], [], [], [], [], []
Exception [type: SIGSEGV, SI_KERNEL(general_protection)] [ADDR:0x0] [PC:0x90890C3, kghrst()+1567] [flags: 0x0, count: 1]
Errors in file /cvms/app/oracle/diag/rdbms/hncvms/HNCVMS/trace/HNCVMS_smon_11203.trc (incident=187833):
ORA-07445: exception encountered: core dump [kghrst()+1567] [SIGSEGV] [ADDR:0x0] [PC:0x90890C3] [SI_KERNEL(general_protection)] []
ORA-00600: internal error code, arguments: [17182], [0x2B7C8E7CD7A0], [], [], [], [], [], [], [], [], [], []
Incident details in: /cvms/app/oracle/diag/rdbms/hncvms/HNCVMS/incident/incdir_187833/HNCVMS_smon_11203_i187833.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
Mon Feb 17 10:44:11 2014
PMON (ospid: 11177): terminating the instance due to error 474
------------------------------------------------------------------------------------------------------------------------------
通过观察日志,看部分
Doing block recovery for file 12 block 470173
Resuming block recovery (PMON) for file 12 block 470173
Block recovery from logseq 31163, block 68 to scn 70921364289
Recovery of Online Redo Log: Thread 1 Group 1 Seq 31163 Reading mem 0
Mem# 0: /cvms/app/oracle/oradata/HNCVMS/redo01.log
Block recovery completed at rba 31163.135.16, scn 16.2201887554
ORACLE Instance HNCVMS (pid = 14) - Error 600 encountered while recovering transaction (11, 3) on object 75050.
再根据原理分析,则可以定位到问题是出现在Instance recovery时出现的。通过报错可以判断,是对 file12 block 470173 也就是 object id为 75050 中的一个块,出现了问题(坏块)
导致instance recover时遭遇到了600错误,Pmon 终止,Pmon的终止又导致 整个实例的down掉
遇到这个情况,我们分两步处理:
第一步:启动实例,查询file 12 block 470173 以及object 75050 是属于哪个类型的对象
1、启动实例
启动实例时,会执行Instance recovery,而recovery又会crash库,那么我们需要将 instance recovery的动作暂时先停掉
根据现在的spfile 创建一个pfile,然后在pfile后面跟一条:
event="10513 trace name context forever, level 2"
2、查询对象(现在系统是不会崩溃了,但是数据库状态是非正常的,因为没有instance recovery)
1)SQL> SELECT owner, object_name, object_type FROM dba_objects WHERE object_id = 75050;
2) SQL> select segment_type,owner,segment_name from dba_extents where file_id = &file_id and &block between block_id and block_id+blocks -1;
根据上面反馈的信息,把对象类型查出来

MySQL數據庫升級的步驟包括:1.備份數據庫,2.停止當前MySQL服務,3.安裝新版本MySQL,4.啟動新版本MySQL服務,5.恢復數據庫。升級過程需注意兼容性問題,並可使用高級工具如PerconaToolkit進行測試和優化。

MySQL備份策略包括邏輯備份、物理備份、增量備份、基於復制的備份和雲備份。 1.邏輯備份使用mysqldump導出數據庫結構和數據,適合小型數據庫和版本遷移。 2.物理備份通過複製數據文件,速度快且全面,但需數據庫一致性。 3.增量備份利用二進制日誌記錄變化,適用於大型數據庫。 4.基於復制的備份通過從服務器備份,減少對生產系統的影響。 5.雲備份如AmazonRDS提供自動化解決方案,但成本和控制需考慮。選擇策略時應考慮數據庫大小、停機容忍度、恢復時間和恢復點目標。

MySQLclusteringenhancesdatabaserobustnessandscalabilitybydistributingdataacrossmultiplenodes.ItusestheNDBenginefordatareplicationandfaulttolerance,ensuringhighavailability.Setupinvolvesconfiguringmanagement,data,andSQLnodes,withcarefulmonitoringandpe

在MySQL中優化數據庫模式設計可通過以下步驟提升性能:1.索引優化:在常用查詢列上創建索引,平衡查詢和插入更新的開銷。 2.表結構優化:通過規範化或反規範化減少數據冗餘,提高訪問效率。 3.數據類型選擇:使用合適的數據類型,如INT替代VARCHAR,減少存儲空間。 4.分區和分錶:對於大數據量,使用分區和分錶分散數據,提升查詢和維護效率。

tooptimizemysqlperformance,lofterTheSeSteps:1)inasemproperIndexingTospeedUpqueries,2)使用ExplaintplaintoAnalyzeandoptimizequeryPerformance,3)ActiveServerConfigurationStersLikeTlikeTlikeTlikeIkeLikeIkeIkeLikeIkeLikeIkeLikeIkeLikeNodb_buffer_pool_sizizeandmax_connections,4)

MySQL函數可用於數據處理和計算。 1.基本用法包括字符串處理、日期計算和數學運算。 2.高級用法涉及結合多個函數實現複雜操作。 3.性能優化需避免在WHERE子句中使用函數,並使用GROUPBY和臨時表。

MySQL批量插入数据的高效方法包括:1.使用INSERTINTO...VALUES语法,2.利用LOADDATAINFILE命令,3.使用事务处理,4.调整批量大小,5.禁用索引,6.使用INSERTIGNORE或INSERT...ONDUPLICATEKEYUPDATE,这些方法能显著提升数据库操作效率。

在MySQL中,添加字段使用ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column,刪除字段使用ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop。添加字段時,需指定位置以優化查詢性能和數據結構;刪除字段前需確認操作不可逆;使用在線DDL、備份數據、測試環境和低負載時間段修改表結構是性能優化和最佳實踐。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

WebStorm Mac版
好用的JavaScript開發工具