2

I'm trying to set up a database on a Solaris 10 platform that had its database corrupted before. Due to the lack of backups, I was forced to reinstall Oracle server. Currently I'm facing an issue where answers I have found keep sending me in loops.

I opened sqlplus, and saw that it was connected to an idle instance, so I performed the STARTUP command. This led me to the following errors:

ORA-48108: invalid value given for the diagnostic_dest init.ora parameter
ORA-48140: the specified ADR Base directory does not exist 
           [/export/home/oracle/u01/app/oracle/product/11.2.0/dbhome_1/dbs/<ORACLE_BASE>]

So after some googling, I was told to try changing the diagnostic_dest via the following: ALTER SYSTEM SET diagnostic_dest='u01/app/oracle';, which was equivalent to setting the diagnostic_dest to my ORACLE_BASE.

However, the error below occurred:

ORA-01034: ORACLE not available

After some googling again, I found that the solution was to start the database (which I can't)! I have no idea how I should proceed from here. Any help will be much appreciated. If any other information is required, I will gladly update it in the OP.

I have tried restarting lsnrctl, but it doesn't seem to help.

I would change all the default parameters within the file locations, but from what I found, the init.ora file which was supposed to be used already has diagnostic_dest='<ORACLE_BASE>', the spfile.ora file also has diagnostic_dest='/u01/app/oracle'. I'm really lost as to how I should carry on.

QwertyForever
  • 23
  • 1
  • 5

1 Answers1

3

You can not use ALTER SYSTEM when the instance is not started, but you can not start the instance because of an incorrect parameter value. Create a PFILE (if you do not already have one), edit that, then start the instance.

$ sqlplus / as sysdba
SQL> create pfile from spfile;
SQL> exit
$ vi $ORACLE_HOME/dbs/init${ORACLE_SID}.ora

Set the value of diagnostic_dest as required, then save the file.

$ sqlplus / as sysdba
SQL> create spfile from pfile;
SQL> startup

Note: the directory must exist.

Answer to comment:

For UNIX or Linux, the platform-specific default location (directory) for the SPFILE and text initialization parameter file is:

$ORACLE_HOME/dbs

Oracle Database locates your initialization parameter file by examining filenames in the following order:

  1. spfile$ORACLE_SID.ora
  2. spfile.ora
  3. init$ORACLE_SID.ora

Or, for a test, you can startup the instance by manually specifying the pfile, for example:

SQL> startup pfile=/u01/app/oracle/product/11.2.0/dbhome_1/dbs/initORCL.ora
Balazs Papp
  • 41,488
  • 2
  • 28
  • 47