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

该文件只为两个权限服务:SYSDBA和SYSOPER

密码文件的丢失或损坏导致需要访问该文件的相关操作都失败,比如,使用有SYSDBA和SYSOPER权限的远程登录都会失败,影响oracle的管理控制台 database console、grid 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参数覆盖已有的密码文件

参数ignorecase将SYS的密码设置为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_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=''
_ksb_restart_policy_times=''
_ksb_restart_policy_times=''
_ksb_restart_policy_times='' # 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

Oracle 无备份情况下的恢复--密码文件/参数文件的更多相关文章

  1. Oracle 无备份情况下的恢复--临时文件/在线重做日志/ORA-00205

    13.5 恢复临时文件 临时文件没有也不应该备份.通过V$TEMPFILE可以找到所有的临时文件. 此类文件的损坏会造成需要使用临时表空间的命令执行失败,不至于造成实例崩溃或session中断.由于临 ...

  2. Oracle 无备份情况下的恢复--控制文件/数据文件

    13.3无备份恢复控制文件 没有备份恢复控制文件其实就是在nomount状态,create control创建一个新的控制文件. dba必须知道4个信息才能正确的创建:数据库名.在线日志路径及其大小. ...

  3. Oracle备份恢复之无备份情况下恢复undo表空间

    UNDO表空间存储着DML操作数据块的前镜像数据,在数据回滚,一致性读,闪回操作,实例恢复的时候都可能用到UNDO表空间中的数据.如果在生产过程中丢失或破坏了UNDO表空间,可能导致某些事务无法回滚, ...

  4. 迁移/home目录至新硬盘分区总结--无备份情况下

    搞了一天,终于成功迁移.由于一开始就没备份过程实在很曲折. 希望本篇对那些没有备份习惯的朋友们有所帮助. 准备工作: sudo vim /etc/fstab 在文件中加入: /dev/sdb8     ...

  5. windows环境下,svn未备份情况下重新恢复

    公司有个同事在未打招呼的情况下把公司服务器进行重新装系统,崩溃啊.SVN之前未备份,还好SVN的库(Repositories)还在,如下图: 恢复办法如下: 由于之前安装的就是VisualSVN-Se ...

  6. Oracle主库归档丢失,备库日志有gap,在不重建备库的情况下,恢复备库

    本文主要描述Oracle备库日志与主库日志之间有gap,切主库这部分gap的归档日志已经删除或丢失,如何在不重建备库的情况下,恢复备库. 欢迎转载,请注明作者.出处. 作者:张正 blog:http: ...

  7. Oracle redo 日志损坏的几种情况下的恢复

    Oracle redo 日志损坏的几种情况下的恢复 第一:损坏的redo为非正在使用的redo log 1.归档模式,不是当前正在日志损坏,数据库打开模式. 模拟损坏:SQL> select * ...

  8. PostgreSQL在没有备份情况下误删除Clog恢复

    创建实验表postgres# create table t (n_id int primary key,c_name varchar(300));CREATE TABLEpostgres# inser ...

  9. ORACLE数据库不同故障下的恢复总结

    ORACLE数据库不同故障下的恢复总结1. 非归档模式下丢失或损坏的文件--1.1 数据文件--启动数据库的状态到MOUNT--恢复方法:通过之前创建的数据库完整备份,修复整个数据库,不过备份之后发生 ...

随机推荐

  1. Delphi 变量

  2. 登陆Oracle的管理员登陆

    任务栏:开始——运行,CMD 超级管理员进入系统:conn sys/oracle@prod as sysdba; 修改的代码:alter user username identified by use ...

  3. (转) ORACLE 正确删除归档日志的方法

    ORACLE 正确删除归档日志的方法 我们都知道在controlfile中记录着每一个archivelog文件的相关信息,当然们在OS下把这些物理文件delete掉后,在我们的controlfile中 ...

  4. (转) weblogic 12c忘记密码

    weblogic安装后,很久不用,忘记访问控制台的用户名或者密码,可通过以下步骤来重置用户名密码. 说明:%DOMAIN_HOME%:指WebLogic Server 域(Domain)目录 我的是: ...

  5. Python中的十大图像处理工具

    转自:微信博客 机器学习研究会订阅号 微信号 功能介绍机器学习研究会由百度七剑客雷鸣先生创办,旨在推动AI的技术发展和产业落地.参与组织北大.清华”AI前沿与产业趋势“公开课,广泛的和高校.企业.创业 ...

  6. 约会 Rendezvous:基环树

    提炼:tarjan判环,dfs建树,倍增lca,预处理环两点间距离 我犯的错误: 1.基环树不只有一棵,可以有很多 2.自环不能将其忽略,(对于我的算法)应该将其特殊考虑在算法内 3.代码一定要简洁有 ...

  7. 集合操作符 Union / Union All / Intersect / Minus

    集合操作符 Union / UnionAll / Intersect / Minus -- 生成测试数据 create table dept_01 as select * from dept wher ...

  8. Flask【第9篇】:Flask-script组件

    flask-script组件 Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他 ...

  9. 【java】并发执行ExecutorService的sumbit返回值的顺序问题

    ArrayList<Future> fl = new ArrayList<Future>(); for (int i = 0; i < 10; i++) { Future ...

  10. shell练习--PAT题目1005:继续(3n+1)猜想(全绿失败喜加一)

    卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对 n=3 进行验证的时 ...