ORA-16032 Can not Start Instance via srvctl but via sqlplus is fine [ID 1062071.1]

Posted tianlesoftware

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORA-16032 Can not Start Instance via srvctl but via sqlplus is fine [ID 1062071.1]相关的知识,希望对你有一定的参考价值。


 

ORA-16032 无法通过 srvctl 启动实例,但通过 sqlplus 启动实例正常 [ID 1062071.1]




 

修改于 2010 年 10 月 7 日类型问题状态 已发布

 

本文档中
症状变化导致解决方案




适用于:


Oracle 服务器 - 企业版 - 版本:10.1.0.2 至 11.2.0.1 - 发行版:10.1 至 11.2
本文档中的信息适用于任何平台。


症状


使用 11.2.网格基础设施,数据库实例不能通过srvctl启动,但可以通过sqlplus启动。相同的 spfile “+DATA/db302d/spfiledb302d.ora” 同时用于 srvctl 和 sqlplus:

[oracle@node1] /opt/oracle/admin/+ASM $ srvctl start database -d db302d
PRCR-1079 : 无法启动资源 ora.db302d.db
ORA-01034: ORACLE 不可用
ORA-27101: 共享内存域不存在
Linux-x86_64 错误: 2: 没有这样的文件或目录
进程 ID: 0
会话 ID: 0 序列号: 0

ORA-16032: 参数 %s 目标字符串无法转换
CRS-2674: “节点 1” 上的 “ora.db302d.db” 的开头失败
ORA-01034: ORACLE 不可用
ORA-27101: 共享内存域不存在
Linux-x86_64 错误: 2: 没有这样的文件或目录
进程 ID: 0
会话 ID: 0 序列号: 0

关联的oraagent_oracle.log(位于 GRID_home/log/nodename/agent/crsd/oraagent_oracle/)显示类似的消息:

2010-02-09 07:08:22.587: [ AGFW][1169193280] ora.db302d.db 1 1 状态从: 脱机 更改为: 开始
2010-02-09 07:08:22.587: [ AGFW][1148213568] 执行命令: 启动资源: ora.db302d.db 1 1

2010-02-09 07:08:37.488: [ AGFW][1148213568] 发送状态消息 [ORA-01034: ORACLE 不可用
ORA-27101: 共享内存域不存在
Linux-x86_64 错误: 2: 没有这样的文件或目录
进程 ID: 0
会话 ID: 0 序列号: 0
] 用于启动资源: ora.db302d.db 1 1

2010-02-09 07:08:37.571: [ora.db302d.db][1148213568] [开始] 异常类型=2 字符串=ORA-16032: 参数 %s 目标字符串无法转换

2010-02-09 07:08:37.571: [ AGFW][1148213568] 发送状态 msg [ORA-16032: 参数 %s 目标字符串无法转换
] 用于资源的启动: ora.db302d.db 1 1
2010-02-09 07:08:37.571: [ora.db302d.db][1148213568] [start] clsn_agent::start
2010-02-09 07:08:37.571: [ AGFW][1148213568] 命令: 启动资源: ora.db302d.db 1 1 已完成,状态: 失败

 


变化


新安装


原因


该错误是由以下实例参数设置引起的:

log_archive_dest_1 = “LOCATION=$ORACLE_BASE/db302d/admin/arch/”

当使用 sqlplus 启动实例时,oracle 用户在其环境中设置了变量 $ORACLE_BASE (例如,通过 shell 配置文件),因此可以转换此参数。
但是,当通过“srvctl”启动实例时,CRS 守护进程不会执行用户的 shell 配置文件,而是仅使用在 OCR 中显式设置的任何环境变量。

由于在 OCR 中未设置ORACLE_BASE环境变量,因此通过 srvctl 启动 ORA-16032 时失败。


溶液


更改log_archive_dest_1以使用真实路径,例如:

alter system set log_archive_dest_1= “LOCATION=/opt/oracle/db302d/admin/arch/”;

或者使用 srvctl 在 OCR 中设置环境变量ORACLE_BASE:

srvctl setenv database -d <name> -t ORACLE_BASE=/opt/oracle

在此之后,srvctl 可以启动/停止实例而不会出现问题。

 

 

 

 

 

 


以上是关于ORA-16032 Can not Start Instance via srvctl but via sqlplus is fine [ID 1062071.1]的主要内容,如果未能解决你的问题,请参考以下文章

Could not read document: Can not deserialize instance of java.lang.String out of START_ARRAY

安装mysql5.1过程中Start service停住了` 出现这样的字can not start the service mysql.error:0 为啥会

Jackson错误:Can not deserialize instance of java.lang.String out of START_OBJECT token

Jackson错误:Can not deserialize instance of java.lang.String out of START_OBJECT token

opensuse 安装 Anaconda3 之后出现Could not start d-bus. Can you call qdbus?

解决:Can not deserialize instance of com.xxx.xx.XXModel out of START_ARRAY toke