一朋友在QQ上問我,說他數據庫的pfile 和spfile 都不見了。我問他數據庫是10g仍是11g的,他說11g,因此我就讓他用這個語法來建立spfile了:java
SQL> create spfile from memory;sql
這個是Oracle 11g的新特性,在我以前的Oracle 11g新特性裏有介紹:數據庫
Oracle 11g 新特性 -- 管理 SPFILE 說明oracle
http://blog.csdn.net/tianlesoftware/article/details/8225247app
朋友用這種方法操做之後,啓動數據庫報錯:dom
ORA-00600: internal errorcode, arguments: [kck_rls_check must use (11,0,0,0,0) or lower], [kdt.c], [9419], [11.2.0.1.0], [], [], [], [], [], [], [], []oop
建立一個pfile,還搞出一個ORA-600,有點邪門。 不過以前也沒有好好研究這個從內存裏建立PFILE的功能。測試
在本身的虛擬機上測試了一下:spa
SQL> create pfile='/u01/dave.ora' frommemory;.net
File created.
SQL> startuppfile='/u01/dave.ora';
ORA-32006: BACKGROUND_DUMP_DESTinitialization parameter has been deprecated
ORA-32006: USER_DUMP_DEST initializationparameter has been deprecated
ORACLE instance started.
Total System Global Area 718188544 bytes
Fixed Size 2231832 bytes
Variable Size 440402408 bytes
Database Buffers 272629760 bytes
Redo Buffers 2924544 bytes
Database mounted.
Database opened.
SQL>
我這裏用pfile 來啓動,是沒有報錯的。 可是朋友那缺報了ORA-600的錯誤。
生成的PFILE以下:
[oracle@dave~]$ cat /u01/dave.ora
# Oracle init.ora parameterfile generated by instance dave on 07/04/2013 09:43:36
__db_cache_size=264M
__java_pool_size=4M
__large_pool_size=4M
__oracle_base='/u01/app/oracle'# ORACLE_BASE set from environment
__pga_aggregate_target=280M
__sga_target=408M
__shared_io_pool_size=0
__shared_pool_size=128M
__streams_pool_size=0
_aggregation_optimization_settings=0
_always_anti_join='CHOOSE'
_always_semi_join='CHOOSE'
_and_pruning_enabled=TRUE
_b_tree_bitmap_plans=TRUE
_bloom_filter_enabled=TRUE
_bloom_folding_enabled=TRUE
_bloom_pruning_enabled=TRUE
_complex_view_merging=TRUE
_compression_compatibility='11.2.0.0.0'
_connect_by_use_union_all='TRUE'
_convert_set_to_join=FALSE
_cost_equality_semi_join=TRUE
_cpu_to_io=0
_dimension_skip_null=TRUE
_eliminate_common_subexpr=TRUE
_enable_type_dep_selectivity=TRUE
_fast_full_scan_enabled=TRUE
_first_k_rows_dynamic_proration=TRUE
_gby_hash_aggregation_enabled=TRUE
_generalized_pruning_enabled=TRUE
_globalindex_pnum_filter_enabled=TRUE
_gs_anti_semi_join_allowed=TRUE
_improved_outerjoin_card=TRUE
_improved_row_length_enabled=TRUE
_index_join_enabled=TRUE
_ksb_restart_policy_times='0'
_ksb_restart_policy_times='60'
_ksb_restart_policy_times='120'
_ksb_restart_policy_times='240'# internal update to set default
_left_nested_loops_random=TRUE
_local_communication_costing_enabled=TRUE
_minimal_stats_aggregation=TRUE
_mmv_query_rewrite_enabled=TRUE
_new_initial_join_orders=TRUE
_new_sort_cost_estimate=TRUE
_nlj_batching_enabled=1
_optim_adjust_for_part_skews=TRUE
_optim_enhance_nnull_detection=TRUE
_optim_new_default_join_sel=TRUE
_optim_peek_user_binds=TRUE
_optimizer_adaptive_cursor_sharing=TRUE
_optimizer_better_inlist_costing='ALL'
_optimizer_cbqt_no_size_restriction=TRUE
_optimizer_coalesce_subqueries=TRUE
_optimizer_complex_pred_selectivity=TRUE
_optimizer_compute_index_stats=TRUE
_optimizer_connect_by_combine_sw=TRUE
_optimizer_connect_by_cost_based=TRUE
_optimizer_connect_by_elim_dups=TRUE
_optimizer_correct_sq_selectivity=TRUE
_optimizer_cost_based_transformation='LINEAR'
_optimizer_cost_hjsmj_multimatch=TRUE
_optimizer_cost_model='CHOOSE'
_optimizer_dim_subq_join_sel=TRUE
_optimizer_distinct_agg_transform=TRUE
_optimizer_distinct_elimination=TRUE
_optimizer_distinct_placement=TRUE
_optimizer_eliminate_filtering_join=TRUE
_optimizer_enable_density_improvements=TRUE
_optimizer_enable_extended_stats=TRUE
_optimizer_enable_table_lookup_by_nl=TRUE
_optimizer_enhanced_filter_push=TRUE
_optimizer_extend_jppd_view_types=TRUE
_optimizer_extended_cursor_sharing='UDO'
_optimizer_extended_cursor_sharing_rel='SIMPLE'
_optimizer_extended_stats_usage_control=192
_optimizer_false_filter_pred_pullup=TRUE
_optimizer_fast_access_pred_analysis=TRUE
_optimizer_fast_pred_transitivity=TRUE
_optimizer_filter_pred_pullup=TRUE
_optimizer_fkr_index_cost_bias=10
_optimizer_full_outer_join_to_outer=TRUE
_optimizer_group_by_placement=TRUE
_optimizer_improve_selectivity=TRUE
_optimizer_interleave_jppd=TRUE
_optimizer_join_elimination_enabled=TRUE
_optimizer_join_factorization=TRUE
_optimizer_join_order_control=3
_optimizer_join_sel_sanity_check=TRUE
_optimizer_max_permutations=2000
_optimizer_mode_force=TRUE
_optimizer_multi_level_push_pred=TRUE
_optimizer_native_full_outer_join='FORCE'
_optimizer_new_join_card_computation=TRUE
_optimizer_null_aware_antijoin=TRUE
_optimizer_or_expansion='DEPTH'
_optimizer_order_by_elimination_enabled=TRUE
_optimizer_outer_join_to_inner=TRUE
_optimizer_outer_to_anti_enabled=TRUE
_optimizer_push_down_distinct=0
_optimizer_push_pred_cost_based=TRUE
_optimizer_rownum_bind_default=10
_optimizer_rownum_pred_based_fkr=TRUE
_optimizer_skip_scan_enabled=TRUE
_optimizer_sortmerge_join_inequality=TRUE
_optimizer_squ_bottomup=TRUE
_optimizer_star_tran_in_with_clause=TRUE
_optimizer_system_stats_usage=TRUE
_optimizer_table_expansion=TRUE
_optimizer_transitivity_retain=TRUE
_optimizer_try_st_before_jppd=TRUE
_optimizer_undo_cost_change='11.2.0.3'
_optimizer_unnest_corr_set_subq=TRUE
_optimizer_unnest_disjunctive_subq=TRUE
_optimizer_use_cbqt_star_transformation=TRUE
_optimizer_use_feedback=TRUE
_or_expand_nvl_predicate=TRUE
_ordered_nested_loop=TRUE
_parallel_broadcast_enabled=TRUE
_partition_view_enabled=TRUE
_pivot_implementation_method='CHOOSE'
_pre_rewrite_push_pred=TRUE
_pred_move_around=TRUE
_push_join_predicate=TRUE
_push_join_union_view=TRUE
_push_join_union_view2=TRUE
_px_minus_intersect=TRUE
_px_partition_scan_enabled=TRUE
_px_pwg_enabled=TRUE
_px_ual_serial_input=TRUE
_query_rewrite_setopgrw_enable=TRUE
_remove_aggr_subquery=TRUE
_replace_virtual_columns=TRUE
_right_outer_hash_enable=TRUE
_selfjoin_mv_duplicates=TRUE
_sql_model_unfold_forloops='RUN_TIME'
_sqltune_category_parsed='DEFAULT'# parsed sqltune_category
_subquery_pruning_enabled=TRUE
_subquery_pruning_mv_enabled=FALSE
_table_scan_cost_plus_one=TRUE
_union_rewrite_for_gs='YES_GSET_MVS'
_unnest_subquery=TRUE
_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=davevalid_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的。
還有一點,就是咱們使用內存建立數據庫參數的時候,能夠把前面的隱含參數所有刪除掉,哪些參數太繁瑣了,使用默認值就好。
--------------------------------------------------------------------------------------------
版權全部,文章容許轉載,但必須以連接方式註明源地址,不然追究法律責任!
QQ: 251097186
Skype: tianlesoftware
Email: tianlesoftware@gmail.com
Blog: http://blog.csdn.net/tianlesoftware
Weibo: http://weibo.com/tianlesoftware
Twitter: http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware