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

来源:互联网 发布:全能淘客cms 编辑:程序博客网 时间:2024/05/21 06:02

 

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


 

Modified 07-OCT-2010     Type PROBLEM     Status PUBLISHED

 

In this Document
  Symptoms
  Changes
  Cause
  Solution


Applies to:

Oracle Server - Enterprise Edition - Version: 10.1.0.2 to 11.2.0.1 - Release: 10.1 to 11.2
Information in this document applies to any platform.

Symptoms

Using 11.2. Grid Infrastructure, the database instances cannot be started via 'srvctl', but can be started via 'sqlplus'. The same spfile "+DATA/db302d/spfiledb302d.ora" is used for both srvctl and sqlplus:

[oracle@node1] /opt/oracle/admin/+ASM $ srvctl start database -d db302d
PRCR-1079 : Failed to start resource ora.db302d.db
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0

ORA-16032: parameter %s destination string cannot be translated
CRS-2674: Start of 'ora.db302d.db' on 'node1' failed
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0


The associated oraagent_oracle.log (located in GRID_home/log/nodename/agent/crsd/oraagent_oracle/) shows similar messages:

2010-02-09 07:08:22.587: [ AGFW][1169193280] ora.db302d.db 1 1 state changed from: OFFLINE to: STARTING
2010-02-09 07:08:22.587: [ AGFW][1148213568] Executing command: start for resource: ora.db302d.db 1 1

2010-02-09 07:08:37.488: [ AGFW][1148213568] sending status msg [ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0
] for start for resource: ora.db302d.db 1 1

2010-02-09 07:08:37.571: [ora.db302d.db][1148213568] [start] Exception type=2 string=ORA-16032: parameter %s destination string cannot be translated

2010-02-09 07:08:37.571: [ AGFW][1148213568] sending status msg [ORA-16032: parameter %s destination string cannot be translated
] for start for resource: 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] Command: start for resource: ora.db302d.db 1 1 completed with status: FAIL

 

Changes

New installation

Cause

The error is caused by following instance parameter setting:

log_archive_dest_1 = "LOCATION=$ORACLE_BASE/db302d/admin/arch/"


When using sqlplus to start the instance, the oracle user has the variable $ORACLE_BASE set in its environment (e.g. via the shell profile) , so this parameter can be translated.
However, when starting the instance via 'srvctl', the CRS daemon process will not execute the user's shell profile, instead it will only use any environment variables explicitly set in OCR.

As the ORACLE_BASE environment variable is not set in OCR, the startup via srvctl fails with ORA-16032.

Solution

Change log_archive_dest_1 to use the real path, eg:

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


Or set the environment variable ORACLE_BASE in OCR using srvctl:

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


After this, srvctl can start/stop the instance without issue.

 

 

 

 

 

 

------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

网上资源: http://tianlesoftware.download.csdn.net

相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(); DBA2 群:62697977()

DBA3 群:62697850   DBA 超级群:63306533;    

聊天 群:40132017

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请