环境说明:
11.2.0.4 RAC 环境
Centos 7.6系统
虚拟机(磁盘模式独立-持久)
报错说明:
机房断电导致物理机全部down机。当启动服务器后发现asm可正常启动,但是db为运行,于是手动该命令启动后报错,重点观察错误已标红
PRCR-1079 : Failed to start resource ora.fls.db
CRS-5017: The resource action "ora.fls.db start" encountered the following error:
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+racdata/FLS/PARAMETERFILE/spfile.259.1143572893'
ORA-17503: ksfdopn:10 Failed to open file +racdata/FLS/PARAMETERFILE/spfile.259.1143572893
ORA-15056: additional error message
ORA-15173: entry 'parameterfile' does not exist in directory 'fls'
ORA-06512: at line 4
. For details refer to "(:CLSN00107:)" in "/oracle/app/11.2.0/grid/log/tfls1/agent/crsd/oraagent_oracle//oraagent_oracle.log".
CRS-5017: The resource action "ora.fls.db start" encountered the following error:
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+racdata/FLS/PARAMETERFILE/spfile.259.1143572893'
ORA-17503: ksfdopn:10 Failed to open file +racdata/FLS/PARAMETERFILE/spfile.259.1143572893
ORA-15056: additional error message
ORA-15173: entry 'parameterfile' does not exist in directory 'fls'
ORA-06512: at line 4
. For details refer to "(:CLSN00107:)" in "/oracle/app/11.2.0/grid/log/tfls2/agent/crsd/oraagent_oracle//oraagent_oracle.log".
CRS-2674: Start of 'ora.fls.db' on 'tfls1' failed
CRS-2674: Start of 'ora.fls.db' on 'tfls2' failed
CRS-2632: There are no more servers to try to place resource 'ora.fls.db' on that would satisfy its placement policy
注:标红提示说该参数文件不在fls目录中存在,于是进入asmcmd中查看,过真spfile不存在
查看asm磁盘中文件
ASMCMD> pwd
+racdata/fls
ASMCMD> ls
ARCH1/
ARCHIVELOG/
CONTROLFILE/
DATAFILE/
ONLINELOG/
TEMPFILE/
spfilefls.ora
此时发现没有报错中的+racdata/FLS/PARAMETERFILE/spfile.259.1143572893这个文件,spfilefls.ora只是在+oradata/fls/spfilefls.ora中,说明spfile目录问题导致,需要手动
说明:实际上在RAC环境中,我们更多时候是用srvctl来管理RAC资源,而srvctl的信息来自ocr,包括spfile的位置信息。我们刚才那样做虽然修改了参数文件的位置,但是ocr并不知道,它还用原来的文件启动数据库。
此时用命令查看,发现spfile文件路径确实没有
[grid@tfls1:/oracle/app/11.2.0/grid/log/tfls1]$srvctl config database -d fls -a
Database unique name: fls
Database name:
Oracle home: /oracle/app/oracle/product/12.2/db_1
Oracle user: oracle
Spfile: +racdata/FLS/PARAMETERFILE/spfile.259.1143572893
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: fls
Database instances: fls1,fls2
Disk Groups: RACDATA,RACFRA
Mount point paths:
Services:
Type: RAC
Database is enabled
Database is administrator managed
更新ocr中spfile路径
PRCD-1163 : Failed to modify database fls
PRCR-1071 : Failed to register or update resource ora.fls.db
CRS-0245: User doesn''t have enough privilege to perform the operation
发现用grid更新竟然报错,没有足够的权限,果断用oracle尝试下
[oracle@tfls1:/home/oracle]$srvctl modify database -d fls -p +racdata/fls/spfilefls.ora
果然没有问题
启动数据库
[oracle@tfls1:/home/oracle]$srvctl modify database -d fls -p +racdata/fls/spfilefls.ora
[grid@tfls1:/home/grid]$crsctl stat res -t
查看都正常,并查看日志没有问题