ORA-00600: [kck_rls_check must use (11,0,0,0,0) or lower]故障解决(三)

2014-11-24 12:39:12 · 作者: · 浏览: 1
UE _use_column_stats_for_function=TRUE audit_file_dest='/u01/app/oracle/admin/dave/adump' audit_trail='DB' background_dump_dest='/u01/app/oracle/diag/rdbms/dave_st/dave/trace'#Deprecate parameter compatible='11.2.0.0.0' control_files='/u01/app/oracle/oradata/dave/control01.ctl' control_files='/u01/app/oracle/fast_recovery_area/dave/control02.ctl'# Restore Controlfile core_dump_dest='/u01/app/oracle/diag/rdbms/dave_st/dave/cdump' db_block_size=8192 db_create_file_dest='/u01/app/oracle/oradata/dave' db_domain='' db_file_multiblock_read_count=16 db_file_name_convert='+data/dave/datafile' db_file_name_convert='/u01/app/oracle/oradata/dave' db_file_name_convert='+data/dave/tempfile' db_file_name_convert='/u01/app/oracle/oradata/dave' db_name='dave' db_recovery_file_dest='/u01/app/oracle/fast_recovery_area' db_recovery_file_dest_size=1018937856 db_unique_name='dave_st' fal_client='dave_st' fal_server='dave_pd1' fal_server='dave_pd2' log_archive_config='dg_config=(dave,dave_st)' log_archive_dest_1='location=/u01/archvalid_for=(all_logfiles,all_roles) db_unique_name=dave_st' log_archive_dest_2='service=daveva lid_for=(online_logfiles,primary_role) db_unique_name=dave' log_archive_dest_state_1='enable' log_archive_dest_state_2='enable' log_buffer=2736128 # logbuffer update log_file_name_convert='+fra/dave/onlinelog' log_file_name_convert='/u01/app/oracle/oradata/dave' memory_target=688M open_cursors=300 optimizer_dynamic_sampling=2 optimizer_mode='ALL_ROWS' plsql_warnings='DISABLE:ALL' #PL/SQL warnings at init.ora processes=150 query_rewrite_enabled='TRUE' remote_login_passwordfile='EXCLUSIVE' resource_manager_plan='SCHEDULER[0x318F]:DEFAULT_MAINTENANCE_PLAN' result_cache_max_size=1792K skip_unusable_indexes=TRUE standby_file_management='auto' undo_tablespace='UNDOTBS1' user_dump_dest='/u01/app/oracle/diag/rdbms/dave_st/dave/trace'#Deprecate parameter

从上面的结果,也知道是什么原因了,从内存来创建PFILE,会把一些隐含参数也写进来。
我这里的默认值是:
_compression_compatibility='11.2.0.0.0'

而朋友这里的默认值是:
_compression_compatibility='11.2.0.1.0'

这个参数就是朋友 数据库启动报:ORA-00600: internal errorcode, arguments: [kck_rls_check must use (11,0,0,0,0) or lower] 错误的原因。
将这个参数改成:_compression_compatibility="11.2.0",在启动数据库,即可正常。
实际上,这个问题是 Oracle 11g 中遗留的一个小问题。 在11.2.0.1 和11.0.2.0.2 中都会有这种问题。
在Oracle 11.2.0.3的版本中,这个_compression_compatibility参数的默认值就是11.2.0.0.0了,那么在从内存创建pfile,就不会在报ORA-600的错误了。
这也是我创建启动没报错,朋友启动创建启动报错的原因,因为我的数据库版本是11.2.0.3的。
还有一点,就是我们使用内存创建数据库参数的时候,可以把前面的隐含参数全部删除掉,哪些参数太繁琐了,使用默认值就好。