51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Oracle异常关机重启后提示缺失启动参数文件initorcl1.ora解决

因数据库磁盘存储空间不足,操作LVM分区意外导致服务器系统宕机,修复完成后启动oracle数据库,发现报错:

[oracle@rac05 ~]$ sqlplus / as sysdba;

SQL\*Plus: Release 11.2.0.3.0 Production on Fri Nov 11 17:17:49 2022


Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to an idle instance.

`SQL> startup;
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/11.2.0.3/dbs/initorcl1.ora'`

宕机数据库为集群中的第二台服务器。

排查思路

检查文件是否存在

在查看报错路径下的文件时,发现缺失initorcl1.ora文件。

[oracle@rac05 ~]$ cd /u01/app/oracle/11.2.0.3/dbs/
[oracle@rac05 dbs]$ ll
total 24
-rw-rw---- 1 oracle oinstall 1544 Nov 10 12:36 hc_orcl2.dat
-rw-r--r-- 1 oracle oinstall 2851 Dec 17  2015 init.ora
-rw-r----- 1 oracle oinstall   35 Dec 23  2015 initorcl2.ora
-rw-r----- 1 oracle oinstall 1536 Dec 23  2015 orapworcl2
查看参数

在第一台正常的服务器上查看信息。

[oracle@rac04 ~]$ sqlplus / as sysdba;
SQL> show parameter instance_name;

NAME                     TYPE     VALUE


*** ** * ** ***



instance_name                 string     orcl1
SQL\> show parameter pfile;


NAME                     TYPE     VALUE


*** ** * ** ***



spfile                     string     +DATA/orcl/spfileorcl.ora
SQL\> show parameter spfile;


NAME                     TYPE     VALUE


*** ** * ** ***


`spfile                     string     +DATA/orcl/spfileorcl.ora`

检查数据库SID

第一台集群服务器的SID

[oracle@rac04 ~]$ echo $ORACLE_SID
orcl1

参考其他项目数据库SID格式,确认第二台集群数据库的SID与第一台重复。

[oracle@rac05 ~]$ echo $ORACLE_SID
orcl1

解决办法

Oracle 默认会在 $ORACLE_HOME/dbs 目录中打开格式为 "spfile"+ $ORACLE_SID + ".ora"的参数文件。如果找不到,它会尝试打开"init"+$ORACLE_SID+".ora"
由于已经发现第二台数据库的SID重复,因此只需修改第二台的SID配置。

查看启动参数文件
[oracle@rac05 dbs]$ cat initorcl2.ora
SPFILE='+DATA/orcl/spfileorcl.ora'
查看基本信息
[oracle@rac04 ~]$ sqlplus / as sysdba;

SQL\*Plus: Release 11.2.0.3.0 Production on Fri Nov 11 17:47:16 2022


Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options


SQL\> show parameter instance_name;


NAME                     TYPE     VALUE


*** ** * ** ***



instance_name                 string     orcl1
SQL\> show parameter pfile;


NAME                     TYPE     VALUE


*** ** * ** ***



spfile                     string     +DATA/orcl/spfileorcl.ora
SQL\> show parameter spfile;


NAME                     TYPE     VALUE


*** ** * ** ***


`spfile                     string     +DATA/orcl/spfileorcl.ora`

修改SID
修改oracle用户

编辑oracle用户的.bash_profile文件,修改ORACLE_SIDORACLE_UNQNAME(如有)配置内容。

[oracle@rac05 ~]$ cat .bash_profile
# .bash_profile

Get the aliases and functions
=============================



if \[ -f \~/.bashrc \]; then
. \~/.bashrc
fi


User specific environment and startup programs
==============================================



PATH=$PATH:$HOME/bin

`export PATH
export ORACLE_SID=orcl2
export ORACLE_UNQNAME=orcl2
export ORACLE_BASE=/u01/app/oracle/
export ORACLE_HOME=/u01/app/oracle/11.2.0.3
export PATH=$ORACLE_HOME/bin:$PATH:$ORA_CRS_HOME/bin
export TEMP=/tmp
export TMPDIR=/tmp
export NLS_LANG=american_america.AL32UTF8
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
umask 022`

修改grid用户

编辑grid用户的.bash_profile文件,修改ORACLE_SID配置内容。

[grid@rac05 ~]$ cat .bash_profile
# .bash_profile

Get the aliases and functions
=============================



if \[ -f \~/.bashrc \]; then
. \~/.bashrc
fi


User specific environment and startup programs
==============================================



PATH=$PATH:$HOME/bin

`export PATH
export ORACLE_SID=+ASM2
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0.3
export PATH=$ORACLE_HOME/bin:$PATH:/usr/local/bin/:.
export TEMP=/tmp
export TMP=/tmp
export TMPDIR=/tmp
umask 022
[grid@rac05 ~]$ echo $ORACLE_SID
+ASM2`

修改完成后Oracle数据库会自动启动,如未自动启动,则手动启动。

赞(1)
未经允许不得转载:工具盒子 » Oracle异常关机重启后提示缺失启动参数文件initorcl1.ora解决