`
tianshibaijia
  • 浏览: 1128671 次
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

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


Modified07-OCT-2010TypePROBLEMStatusPUBLISHED

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.

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics