ORA-600(kmgs_pre_process_request_6)错误

这个bug比较神奇,如果SGA设置为4G的整数倍,就会导致系统CRASH。以前听说过这个bug,这次还是第一次碰到。

详细的错误如下:

<pre lang=’SQL’>Tue Oct 11 10:44:34 2011

Starting ORACLE instance (normal)

Tue Oct 11 10:44:34 2011

Specified value of sga_max_size is too small, bumping to 12884901888

LICENSE_MAX_SESSION = 0

LICENSE_SESSIONS_WARNING = 0

Picked latch-free SCN scheme 3

Autotune of undo retention is turned on.

IMODE=BR

ILAT =61

LICENSE_MAX_USERS = 0

SYS auditing is disabled

ksdpec: called for event 13740 prior to event group initialization

Starting up ORACLE RDBMS Version: 10.2.0.3.0.

System parameters with non-default values:

processes = 500

sga_max_size = 12884901888

lock_sga = FALSE

__shared_pool_size = 570425344

shared_pool_size = 536870912

__large_pool_size = 134217728

large_pool_size = 134217728

__java_pool_size = 33554432

java_pool_size = 33554432

__streams_pool_size = 0

streams_pool_size = 0

sga_target = 12884901888

control_files = /dev/rcontrol01, /dev/rcontrol02, /dev/rcontrol03

db_file_name_convert = /dev/, /dev/

log_file_name_convert = /dev/, /dev/

db_block_size = 8192

__db_cache_size = 12129927168

db_cache_size = 2147483648

compatible = 10.2.0.3.0

log_archive_config = DG_CONFIG=(oradb,orapri)

log_archive_dest_1 = location=/oraarch

log_archive_dest_2 = service=oradb lgwr async
valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=oradb

log_archive_dest_state_1 = enable

log_archive_dest_state_2 = enable

log_archive_max_processes= 3

fal_client = orapri

fal_server = oradb

log_buffer = 14234624

db_file_multiblock_read_count= 64

db_recovery_file_dest =

db_recovery_file_dest_size= 107374182400

standby_file_management = AUTO

fast_start_mttr_target = 300

db_flashback_retention_target= 4320

undo_management = AUTO

undo_tablespace = UNDOTBS1

undo_retention = 3600

remote_login_passwordfile= EXCLUSIVE

db_domain =

utl_file_dir = /oracle

job_queue_processes = 0

background_dump_dest = /oracle/admin/oradb/bdump

user_dump_dest = /oracle/admin/oradb/udump

core_dump_dest = /oracle/admin/oradb/cdump

audit_file_dest = /oracle/admin/oradb/adump

sort_area_size = 1048576

db_name = oradb

db_unique_name = orapri

open_cursors = 300

_b_tree_bitmap_plans = FALSE

optimizer_index_cost_adj = 10

pga_aggregate_target = 2147483648

PMON started with pid=2, OS id=16121944

PSP0 started with pid=3, OS id=14286974

MMAN started with pid=4, OS id=11141216

DBW0 started with pid=5, OS id=14418082

DBW1 started with pid=6, OS id=14155834

DBW2 started with pid=7, OS id=11862130

LGWR started with pid=8, OS id=13828256

CKPT started with pid=9, OS id=14024704

SMON started with pid=10, OS id=12451932

RECO started with pid=11, OS id=15073406

MMON started with pid=12, OS id=12582914

MMNL started with pid=13, OS id=12517546

Tue Oct 11 10:45:03 2011

Errors in file /oracle/admin/oradb/bdump/oradb_mman_11141216.trc:

ORA-00600: internal error code, arguments: [kmgs_pre_process_request_6], [6],
[723], [128], [3], [0x70000030630E608], [], []

Tue Oct 11 10:45:04 2011

Errors in file /oracle/admin/oradb/bdump/oradb_mman_11141216.trc:

ORA-00600: internal error code, arguments: [kmgs_pre_process_request_6], [6],
[723], [128], [3], [0x70000030630E608], [], []

Tue Oct 11 10:45:04 2011

MMAN: terminating instance due to error 822

Instance terminated by MMAN, pid = 11141216</pre>

Oracle数据库重启后还没有做任何的操作,就被mman进程中止了。显然这时Oracle自己的问题,而与应用无关。

在metalink上对应的文档为MMON Terminates Instance With ORA-600 [kmgs_pre_process_request_6]
or ORA-600 [kmgs_update_target_size_1] When Resizing Caches [ID 373802.1],这个错误影响的版本是10.2.0.1到10.2.0.3,而当前正是10.2.0.3这个版本。

正如文章开头提到的,当SGA_TARGET是4G的整数倍时,就会引发这个问题。解决这个问题倒是不复杂,除了升级到10.2.0.4以上版本或者打Bug:4433838对应的patch外,稍微调整一下SGA的大小,就可以避免这个错误的产生。

 

 

 

This entry was posted in BUG and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *