Kevin Kempf's Blog

March 15, 2010

What is an ORA-48175??

Filed under: 11g, Oracle — kkempf @ 12:18 pm

Nothing ever goes as planned

During my monthly maintenance window yesterday, I hit a very odd and cryptic error:

$ sqlplus / as sysdba
SQL*Plus: Release 11.1.0.7.0 - Production on Sun Mar 14 10:40:19 2010
Copyright (c) 1982, 2008, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-48175: the path name must not contain the string '..'.

Note this happened immediately; before it even tried to allocate memory.  No problem, I’m thinking, an ORA error should be well documented and have a solution on Metalink:

Uh oh.  Now what?  Well, googling the error didn’t get me anything.  I scoured the init file, looking for some “..” path reference (also known as relative path).  This didn’t turn anything up, and a co-worker found something of interest in the database software owners environment:

$ set|grep ORACLE_BASE
ORACLE_BASE=/u01/appprod/oracle/proddb/11.1.0/..

Why would you ever do this?

In this case, it appears that I had to put ORACLE_BASE in my environment for OPatch and used a relative path after I'd set it
on the command line.  In the environment file, I (lazily) entered it as follows:

export ORACLE_BASE=$ORACLE_HOME/..

The cure

(show me show me show me how you do that trick... oh never mind)

To fix it, I made it an absolute path (ORACLE_BASE=/u01/appprod/oracle/proddb/11.1.0/) and everything was fine.

If you ever see something like this, I'd recommend checking your environment for whatever the offending string may be:

$ set|grep ‘\.\.’
ORACLE_BASE=/u01/appprod/oracle/proddb/11.1.0/..

Advertisements

Create a free website or blog at WordPress.com.