ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle数据库:从alert log恢复spfile

2020-02-20 18:10:39  阅读:336  来源: 互联网

标签:opt spfile log pfile alert ORCLCDB oradata SQL oracle


今天做实验,改了几个系统参数,结果数据库无法启动,报错:

SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/opt/oracle/product/19c/dbhome_1/dbs/initORCLCDB.ora'

$ORACLE_HOME/dbs目录下找不到spfile,也找不到pfile。
但controlfile还在:

$ ls -l $ORACLE_BASE/oradata/ORCLCDB/*.ctl
-rw-r-----. 1 oracle oinstall 18759680 Feb 20 17:40 /opt/oracle/oradata/ORCLCDB/control01.ctl
-rw-r-----. 1 oracle oinstall 18759680 Feb 20 17:40 /opt/oracle/oradata/ORCLCDB/control02.ctl

controlfile在就比较好。因为数据文件的位置都在这里。

关于恢复的思路,参考了这篇文章:How to Recover From Lost or Missing Database Parameter Files (PFILE or SPFILE

选择从alert log恢复spfile。alert log位置在$ORACLE_BASE/diag/rdbms/<sid>/<sid>/trace

$ cat /opt/oracle/diag/rdbms/orclcdb/ORCLCDB/trace/alert_ORCLCDB.log
...
  processes                = 300
  sga_max_size             = 2000M
  nls_language             = "AMERICAN"
  nls_territory            = "AMERICA"
  filesystemio_options     = "setall"
  resource_manager_plan    = "low_prio_apps"
  _exadata_feature_on      = TRUE
  sga_target               = 1500M
  control_files            = "/opt/oracle/oradata/ORCLCDB/control01.ctl"
  control_files            = "/opt/oracle/oradata/ORCLCDB/control02.ctl"
  db_block_size            = 8192
  compatible               = "19.0.0"
  db_create_file_dest      = "/opt/oracle/oradata"
  undo_tablespace          = "UNDOTBS1"
  heat_map                 = "OFF"
  inmemory_size            = 700M
  inmemory_automatic_level = "OFF"
  remote_login_passwordfile= "EXCLUSIVE"
  audit_sys_operations     = FALSE
  dispatchers              = "(PROTOCOL=TCP) (SERVICE=ORCLCDBXDB)"
  local_listener           = "LISTENER_ORCLCDB"
  audit_file_dest          = "/opt/oracle/admin/ORCLCDB/adump"
  commit_wait              = "nowait"
  commit_logging           = "batch"
  audit_trail              = "NONE"
  db_name                  = "ORCLCDB"
  open_cursors             = 300
  pga_aggregate_target     = 384M
  diagnostic_dest          = "/opt/oracle"
  enable_pluggable_database= TRUE
...

将以上部分存为文件/tmp/pfile。
然后:

$ sqlplus / as sysdba
SQL> create spfile from pfile='/tmp/pfile'
SQL> startup

或者:

$ sqlplus / as sysdba
SQL> startup pfile='/tmp/pfile'
SQL> create spfile from memory
dingdingfish 博客专家 发布了400 篇原创文章 · 获赞 46 · 访问量 56万+ 他的留言板 关注

标签:opt,spfile,log,pfile,alert,ORCLCDB,oradata,SQL,oracle
来源: https://blog.csdn.net/stevensxiao/article/details/104414616

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有