Oracle 无备份情况下的恢复--密码文件/参数文件

13.1 恢复密码文件

密码文件(linux 为例)在$ORACLE_HOME/dbs目录下,文件名的前缀是orapw,后接数据库实例名。

[oracle@DSI backup]$ cd /u01/app/oracle/product/11.2.0/db_1/dbs/

-rw-r----- 1 oracle oinstall     1536 Jul 25 10:15 orapworcl

该文件只为两个权限服务:SYSDBASYSOPER

密码文件的丢失或损坏导致需要访问该文件的相关操作都失败,比如,使用有SYSDBASYSOPER权限的远程登录都会失败,影响oracle的管理控制台 database consolegrid control

$ 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,数据库的行为特征与密码文件损坏一模一样。

密码文件的恢复很简单,使用orapwd命令重建一个密码文件

$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle force=y

--force参数覆盖已有的密码文件

参数ignorecaseSYS的密码设置为11g以前的不区分大小写

普通用户的密码大小写是否区分由参数sec_case_sensitive_logon.

13.2 恢复参数文件

没有参数文件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_nameservice_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
View Code

猜你喜欢

转载自www.cnblogs.com/yhq1314/p/11265536.html