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] |
||
|
||
|
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.
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
New installation
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.
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表空间和数据文件的关系,否则拒绝申请