密碼文件(linux 爲例)在$ORACLE_HOME/dbs目錄下,文件名的前綴是orapw,後接數據庫實例名。java
[oracle@DSI backup]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs/linux
-rw-r----- 1 oracle oinstall 1536 Jul 25 10:15 orapworclsql
該文件只爲兩個權限服務:SYSDBA和SYSOPER數據庫
密碼文件的丟失或損壞致使須要訪問該文件的相關操做都失敗,好比,使用有SYSDBA和SYSOPER權限的遠程登陸都會失敗,影響oracle的管理控制檯 database console、grid controlsession
$ sqlplus / as sysdba $ sqlplus sys/xxx@orcl as sysdba ERROR ORA-01031: insufficient privileges SQL> grant sysdba to hr ERROR ORA-01994: GRANT failed: password file missing or disabled
若初始化參數remote_login_passwordfile的值爲NONE,數據庫的行爲特徵與密碼文件損壞如出一轍。oracle
密碼文件的恢復很簡單,使用orapwd命令重建一個密碼文件app
$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle force=y
--force參數覆蓋已有的密碼文件dom
參數ignorecase將SYS的密碼設置爲11g之前的不區分大小寫ide
普通用戶的密碼大小寫是否區分由參數sec_case_sensitive_logon.oop
沒有參數文件db沒法啓動到nomount階段,當參數文件損壞時沒有備份,dba能夠經過參數文件pfile的形式重建。
首先查看告警日誌,全部非默認的參數均記在其內,這是恢復參數文件最準確的方法
[oracle@DSI dbs]$ cd /u01/app/oracle/diag/rdbms/orcl/orcl/trace/ [oracle@DSI trace]$ tail -n 200 alert_orcl.log Using parameter settings in server-side spfile /u01/app/oracle/product/11.2.0/db_1/dbs/spfileorcl.ora System parameters with non-default values: processes = 150 memory_target = 752M control_files = "/u01/app/oracle/oradata/orcl/control01.ctl" control_files = "/u01/app/oracle/fast_recovery_area/orcl/control02.ctl" db_block_size = 8192 compatible = "11.2.0.4.0" db_recovery_file_dest = "/u01/app/oracle/fast_recovery_area" db_recovery_file_dest_size= 4977M undo_tablespace = "UNDOTBS1" remote_login_passwordfile= "EXCLUSIVE" db_domain = "" dispatchers = "(PROTOCOL=TCP) (SERVICE=orclXDB)" audit_file_dest = "/u01/app/oracle/admin/orcl/adump" audit_trail = "DB" db_name = "orcl" open_cursors = 300 diagnostic_dest = "/u01/app/oracle"
若連告警日誌都沒有了,dba應當理解那些參數是必須設置的
11g在自動內存管理機制與新的診斷日誌路徑管理的幫助下,必須指定的參數
:DB_NAME\CONTROL_FILES
若是沒有db_name參數,實例沒法啓動
DB_NAME\DB_BLOCK_SIZE\COMPATIBLE 能夠在文件頭部取得
不設置或錯誤會報錯
ORA-01103
ORA-00058
參數compatible的特色是隻能增大不能減少,默認是11.2.0
參數instance_name和service_name能夠從環境變量oracle_sid、密碼文件名及tnsname.ora文件中找回。
參數process\open_cursors\sessions能夠考慮設置的大一些,
其餘參數儘可能不設置,通常使用默認值就能打開數據庫。
不能打開數據庫要具體分析。
若在數據庫運行時發現參數文件出了問題,可使用11g的新命令「create pfile/spfile from memory」 從內存中建立一個pfile參數文件
SQL> create pfile='/tmp/initorcl.ora.memory' from memory; File created. [oracle@DSI trace]$ cat /tmp/initorcl.ora.memory # Oracle init.ora parameter file generated by instance orcl on 07/29/2019 15:20:17
除非必要,應將如下畫線起始的隱含參數刪掉 [oracle@DSI trace]$ grep -v '^(_|#).*' /tmp/initorcl.ora.memory >/tmp/initorcl.ora.nohidden [oracle@DSI trace]$ cat /tmp/initorcl.ora.nohidden
注意,若是採用window自動打開資源管理計劃的話,發現參數resource_manager_plan應該刪掉
等下次關閉db後,再將spfile建立回來
SQL> create spfile from pfile=’/tmp/initorcl.ora.nohidden’;
[oracle@DSI trace]$ grep -v '^(_|#).*' /tmp/initorcl.ora.memory # Oracle init.ora parameter file generated by instance orcl on 07/29/2019 15:20:17 __db_cache_size=320M __java_pool_size=4M __large_pool_size=8M __oracle_base='/u01/app/oracle' # ORACLE_BASE set from environment __pga_aggregate_target=288M __sga_target=464M __shared_io_pool_size=0 __shared_pool_size=120M __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.4.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.4' _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/orcl/adump' audit_trail='DB' background_dump_dest='/u01/app/oracle/diag/rdbms/orcl/orcl/trace' #Deprecate parameter compatible='11.2.0.4.0' control_files='/u01/app/oracle/oradata/orcl/control01.ctl' control_files='/u01/app/oracle/fast_recovery_area/orcl/control02.ctl' core_dump_dest='/u01/app/oracle/diag/rdbms/orcl/orcl/cdump' db_block_size=8192 db_domain='' db_name='orcl' db_recovery_file_dest='/u01/app/oracle/fast_recovery_area' db_recovery_file_dest_size=4977M diagnostic_dest='/u01/app/oracle' dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' log_buffer=6479872 # log buffer update memory_target=752M 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' result_cache_max_size=1952K skip_unusable_indexes=TRUE undo_tablespace='UNDOTBS1' user_dump_dest='/u01/app/oracle/diag/rdbms/orcl/orcl/trace' #Deprecate parameter