--==========================================
--SPFILE 错误导致数据库无法启动(ORA-01565)
--==========================================
SPFILE错误导致数据库无法启动
SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '/u01/app/oracle/10g/dbs/spfileorcl.ora'
ORA-27046: file size is not a multiple of logical block size
Additional information: 1
分析:
从错误的提示来看,第一行说系统参数出错
第二行详细指出了spfileorcl.ora出现了错误
再看第三行,google了一下ORA-27046,原来是spfileorcl.ora文件被损坏,导致spfile文件不可读
在spfile文件损坏的时候,如果尝试使用create pfile from spfile,也将收到同样的错误
由于告警日志alert_orcl.log之前被清空,故此时未能看到更详细的错误提示
解决办法:
由于spfile为二进制文件,因此修复比较困难,所以考虑从备份的spfile中恢复
1.spfile备份是否存在,如存在则恢复到原始位置,如放在缺省位置,则为$ORACLE_HOME/dbs,Windows平台为%ORACLE_HOME%/database
2.spfile备份文件不存在,也可以从pfile启动,启动时指定pfile参数
3.spfile备份文件不存在,pfile也不存在,则从告警日志alert_orcl.log中最后一次正常启动中使用strings命令提取相关参数来手动创
建pfile,然后从pfile启动,启动时指定pfile参数。
注意从告警日志中复制过来的内容有些需要加单引号,一是所有的路径需要使用单引号括起来,其次是和db_name,db_domain等等
4.spfile备份文件不存在,pfile也不存在,也不愿从告警日志中手动创建pfile,则可以使用数据库初始化时的pfile来启动,缺省位置为
$ORALCE_BASE/admin/$ORACLE_SID/pfile
5.也可以在SQLplus下直接使用create spfile from pfile = '<dir>' 来先创建spfile文件,再启动Oracle
6.注意
从缺省的pfile或数据库初始化的pfile中来启动数据库后,有很多参数不一致,可能会导致一些功能不可用,需要调整
建议定期备份参数文件
7.更多有关参数文件的详细描述,请参阅:Oracle 参数文件
解决示例
--本示例直接数据库了初始化数据库时的pfile来启动数据库
--启动后收到了有关控制文件的错误提示
SQL> startup pfile='/u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348'
ORACLE instance started.
Total System Global Area 251658240 bytes
Fixed Size 1218796 bytes
Variable Size 83887892 bytes
Database Buffers 163577856 bytes
Redo Buffers 2973696 bytes
ORA-00205: error in identifying control file, check alert log for more info
--从告警日志中查看控制文件的信息,告警日志提示control03.ctl不存在
SQL> ho tail -n 100 /u01/app/oracle/admin/orcl/bdump/alert_orcl.log
Thu Jul 29 16:52:44 2010
ALTER DATABASE MOUNT
Thu Jul 29 16:52:44 2010
ORA-00202: control file: '/u01/app/oracle/oradata/orcl/control03.ctl'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
--查看控制文件相关的参数信息中定义了control03.ctl
SQL> show parameter control_
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /u01/app/oracle/oradata/orcl/c
ontrol01.ctl, /u01/app/oracle/
oradata/orcl/control02.ctl, /u
01/app/oracle/oradata/orcl/con
trol03.ctl
SQL> ho ls /u01/app/oracle/oradata/orcl/control03.ctl --查看control03.ctl物理文件不存在
ls: /u01/app/oracle/oradata/orcl/control03.ctl: No such file or directory
--修改pfile文件
SQL> ho vim /u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348
--删除这段,/u01/app/oracle/oradata/orcl/control03.ctl 内容
--从修改后的pfile文件启动
SQL> startup pfile='/u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348'
Total System Global Area 251658240 bytes
Fixed Size 1218796 bytes
Variable Size 83887892 bytes
Database Buffers 163577856 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
SQL> ho ls /u01/app/oracle/10g/dbs/
alert_orcl.log core_5372 init.ora initorcl.ora orapworcl
core_5360 hc_orcl.dat initdw.ora lkORCL
--从pfile文件中创建spfile
SQL> create spfile from pfile = '/u01/app/oracle/admin/orcl/pfile/init.ora.2292010214348';
File created.
--查看spfileorcl.ora已生成
SQL> ho ls /u01/app/oracle/10g/dbs/
alert_orcl.log hc_orcl.dat initorcl.ora spfileorcl.ora
core_5360 init.ora lkORCL
core_5372 initdw.ora orapworcl
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup --从spfile 启动
ORACLE instance started.
Total System Global Area 251658240 bytes
Fixed Size 1218796 bytes
Variable Size 83887892 bytes
Database Buffers 163577856 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
实际上可以先create spfile from pfile = '<dir>', 再从spfile启动,使用alter system 修改相关的参数比直接修改pfile似乎
更简单些,比如上面的例子中需要去掉一个控制文件。当然此类问题是仁者见仁,智者见者。
总之一条,定期备份参数文件是相当有必要的!
更多
Oracle实例和Oracle数据库(Oracle体系结构)
Oracle 用户、对象权限、系统权限
Oracle 角色、配置文件
Oracle 联机重做日志文件(ONLINE LOG FILE)
Oracle 控制文件(CONTROLFILE)
Oracle 表空间与数据文件
分享到:
相关推荐
本次故障出现在一个运行Oracle 12.1.0.2.0版本的RAC环境中,具体表现为告警日志频繁出现ORA-01565: Unable To open Spfile错误。这一问题对数据库的稳定运行产生了负面影响,需要进行详细的故障分析并找出有效的解决...
在这种情况下,由于`MEMORY_TARGET`设置为12GB(10GB + 4GB = 14GB),小于所需的最小值24576MB(约24GB),导致数据库无法启动。 #### 三、解决步骤 **1. 创建PFILE文件** 使用以下命令创建一个PFILE文件(即...
这些问题可能会导致数据库启动时出现ORA-01033错误(数据库无法完成启动过程),以及在尝试修复过程中可能遇到的ORA-01145错误(除非启用了介质恢复,否则不允许立即脱机)。本文将详细介绍这两种错误的原因、可能的...
在Oracle数据库管理过程中,遇到ORA-00132和ORA-00214这类错误时,往往意味着数据库配置或启动过程中出现了问题。下面将对这两个错误进行详细解析,并给出相应的解决方案。 #### 二、ORA-00132: Syntax Error or ...
"ORA-12516 TNS 监听程序无法找到匹配协议栈的可用句柄" ...如果 seminfo_semmns 参数的值设置的太小,将导致数据库服务无法正常启动。 ORA-12516 错误信息的解决方法是多方面的,需要根据实际情况进行分析和调整。
针对ORACLE数据库遇到的ORA-12541、ORA-01034、ORA-27101、ORA-00119和ORA-00132错误,通常的解决步骤包括重启服务、修改配置文件、重新启动监听服务、启动数据库实例等操作。需要注意的是,针对不同的问题,解决...
在调整内存参数时需要谨慎,错误的设置可能导致数据库性能下降或者不稳定。在调整之前最好备份当前的参数设置,并确保在测试环境中验证更改以避免生产环境中的问题。 另外,关于提供的部分内容,主要涉及到监听器...
在Oracle数据库环境中遇到ORA-12516错误时,通常意味着监听器无法找到与请求协议栈匹配的可用处理器(handler)。此错误常见于多协议环境,即客户端与服务器端之间通过多种网络协议进行通信的情况下。 #### 错误...
1. **初始化参数问题**:可能是由于参数文件(spfile或pfile)中的某些参数设置不当,导致数据库无法正确启动。 2. **数据库状态异常**:如果数据库在非正常状态下被关闭,如在执行数据库维护操作时突然断电,可能会...
通过以上步骤,通常可以解决因操作系统升级而导致的Oracle 11g数据库无法启动和客户端无法连接的问题。需要注意的是,在进行任何修改之前最好备份所有相关的配置文件,以防万一出现问题时可以迅速恢复。此外,对于不...
在Oracle数据库的日常运维与使用过程中,用户可能会遇到“ORA-12519”这一错误提示。此错误通常表明客户端尝试连接到Oracle服务时出现问题。具体来说,“ORA-12519, TNS:no appropriate service handler found”意味...
ORA-00205错误会导致数据库实例无法正常启动,影响到RAC集群的可用性和服务连续性。特别是在修改字符集这种涉及全局设置的操作中,错误可能导致数据丢失或数据乱码,严重时可能需要恢复数据库。 **解决方法:** 1....
当出现“无法启动ASM实例1”的问题时,这通常意味着ASM实例未能成功启动,可能由于多种原因导致,包括但不限于系统参数错误、集群服务异常、资源管理问题等。下面我们将深入探讨这些可能的问题及其解决方法。 首先...
在Oracle数据库管理中,我们可能会遇到各种启动时的错误,其中`ORA-32004`是一个关于过时或废弃参数的错误,这通常意味着在实例启动时配置的某些参数不再有效或已被弃用。在本文中,我们将详细探讨这个问题,以及...
SPFILE(Server Parameter File)是Oracle数据库中的一种二进制格式的初始化参数文件,它存储了数据库启动时所需的配置参数。相比于文本格式的PFILE(Parameter File),SPFILE具有更好的安全性和更高的性能优势。在...
在这种情况下,如果无法正常完成删除操作,尝试强制结束EM及相关进程可能会导致数据库状态不一致。 当数据库重启时,由于之前的异常结束,可能会出现ORA-00119和ORA-00132错误。这些错误通常表示系统参数(如LOCAL_...
"Oracle SGA 参数调整导致数据库启动异常处理方法" ...SGA 参数调整可能会导致数据库启动异常,但通过使用 PFILE 文件创建 SPFILE、修改 PFILE 文件和备份 SPFILE 文件,可以解决这种问题并恢复数据库。
知识点: 1. 报错信息的识别和分析:ORA-01078和LRM-00109是Oracle数据库启动过程中可能出现的错误信息。ORA-01078通常表示在处理系统...一个细微的错误可能导致数据库启动失败,因此在配置过程中需要保持仔细和谨慎。
Oracle 11g数据库在配置和使用过程中可能会遇到各种启动连接错误,比如ORA-12560、ORA-01034、ORA-27101、ORA-00119以及ORA-00132等。这些错误通常是由于数据库实例未正确启动、监听程序配置不当或者网络通信问题...
这些问题通常出现在启动数据库服务时,比如执行 `startup` 命令之后出现了一系列问号或错误提示。本文将对这些常见错误进行详细的分析,并提供有效的解决方案。 #### 二、错误分析 ##### 1. **ORA-01034: ORACLE ...