Linux – ORA-48108 / ORA-48140 / ORA-48187 – diagnostic_dest value error(s) – init files / control files

installationlinuxoracle-12cparametersqlplus

This is all testing / training – none of this is related to a production env

Using ORACLE DB 12c + UNIX/LINUX 64-bit on an VM.

.

Hi Guys!
I am running in the below error(s) and seem unable to solve it.
Can you please help?

SQL> STARTUP NOMOUNT; 
ORA-48108: invalid value given for the diagnostic_dest init.ora parameter 
ORA-48140: the specified ADR Base directory does not exist [/u01/app/oracle/product/12.1.0.2/db_1/dbs/<ORACLE_BASE>] 
ORA-48187: specified directory does not exist Linux-x86_64 Error: 2: No such file or directory Additional information: 1

DB Details:

[oracle@ol12c dbs]$ echo $ORACLE_BASE
/u01/app/oracle

echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0.2/db_1

[oracle@ol12c dbs]$ ls -a
.   hc_cdb1.dat   init.ora       lkCDB1     spfilecdb1.ora   STARTUP
..  hc_pridb.dat  initpridb.ora  orapwcdb1  spfilepridb.ora
[oracle@ol12c dbs]$ pwd
/u01/app/oracle/product/12.1.0.2/db_1/dbs

[oracle@ol12c dbs]$ echo $DB_NAME
pridb

[oracle@ol12c dbs]$ env | grep ORA
ORACLE_UNQNAME=cdb1
ORACLE_SID=pridb
ORACLE_BASE=/u01/app/oracle
ORACLE_HOSTNAME=ol12c.localdomain
ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/db_1

init.ora contains:
diagnostic_dest='<ORACLE_BASE>'

initpridb.ora contains:
diagnostic_dest='u01/app/oracle'

**
I have already changed the value to '<ORACLE_BASE>' / '/u01/app/oracle' / '/u01/app/oracle/product/12.1.0.2/db_1' / '|ORACLE_BASE|', no luck – all the same error.

As per my previous research:

When I try to start up like the below:

SQL> startup nomount pfile=/u01/app/oracle/product/12.1.0.2/db_1/dbs/initpridb.ora;

I receive the same errors, see below:

ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
ORA-01262: Stat failed on a file destination directory
Linux-x86_64 Error: 2: No such file or directory

I've noticed that whatever I change the diagnostic_dest value to, it searches using that value + ORACLE_BASE.
If I flip them ('<ORACLE_BASE>/product/12.1.0.2/db_1/dbs') it will end up searching in '<ORACLE_BASE>/product/12.1.0.2/db_1/dbs/<ORACLE_BASE>'

I am very new to database and am creating an new db on the same host.
After this db has been created I will create another one to use as a Physical Standby DB using Oracle Data Guard.
Please when suggesting an action, act like you talk to someone that has no clue! 🙂 🙂

Thank you in advance!

.


.

UPDATE

See details of files:

[oracle@ol12c dbs]$ cat initpridb.ora
# 
# $Header: rdbms/admin/init.ora /main/24 2012/02/03 08:24:01 ysarig Exp $ 
# 
# Copyright (c) 1991, 1997, 1998 by Oracle Corporation
# NAME
#   init.ora
# FUNCTION
# NOTES
# MODIFIED
#     ysarig     02/01/12  - Renaming flash_recovery_area to
#                            fast_recovery_area
#     ysarig     05/14/09  - Updating compatible to 11.2
#     ysarig     08/13/07  - Fixing the sample for 11g
#     atsukerm   08/06/98 -  fix for 8.1.
#     hpiao      06/05/97 -  fix for 803
#     glavash    05/12/97 -  add oracle_trace_enable comment
#     hpiao      04/22/97 -  remove ifile=, events=, etc.
#     alingelb   09/19/94 -  remove vms-specific stuff
#     dpawson    07/07/93 -  add more comments regarded archive start
#     maporter   10/29/92 -  Add vms_sga_use_gblpagfile=TRUE 
#     jloaiza    03/07/92 -  change ALPHA to BETA 
#     danderso   02/26/92 -  change db_block_cache_protect to _db_block_cache_p
#     ghallmar   02/03/92 -  db_directory -> db_domain 
#     maporter   01/12/92 -  merge changes from branch 1.8.308.1 
#     maporter   12/21/91 -  bug 76493: Add control_files parameter 
#     wbridge    12/03/91 -  use of %c in archive format is discouraged 
#     ghallmar   12/02/91 -  add global_names=true, db_directory=us.acme.com 
#     thayes     11/27/91 -  Change default for cache_clone 
#     jloaiza    08/13/91 -         merge changes from branch 1.7.100.1 
#     jloaiza    07/31/91 -         add debug stuff 
#     rlim       04/29/91 -         removal of char_is_varchar2 
#   Bridge     03/12/91 - log_allocation no longer exists
#   Wijaya     02/05/91 - remove obsolete parameters
#
##############################################################################
# Example INIT.ORA file
#
# This file is provided by Oracle Corporation as a starting point for
# customizing the Oracle Database installation for your site.    
#
# NOTE: The values that are used in this file are example values only.
# You may want to adjust those values for your specific requirements. 
# You might also consider using the Database Configuration Assistant     
# tool (DBCA) to create a server-side initialization parameter file
# and to size your initial set of tablespaces. See the
# Oracle Database 2 Day DBA guide for more information.
###############################################################################

# Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at
# install time)

db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='<ORACLE_BASE>/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (ora_control1, ora_control2)
compatible ='11.2.0'

And

[oracle@ol12c dbs]$ cat init.ora
# 
# $Header: rdbms/admin/init.ora /main/24 2012/02/03 08:24:01 ysarig Exp $ 
# 
# Copyright (c) 1991, 1997, 1998 by Oracle Corporation
# NAME
#   init.ora
# FUNCTION
# NOTES
# MODIFIED
#     ysarig     02/01/12  - Renaming flash_recovery_area to
#                            fast_recovery_area
#     ysarig     05/14/09  - Updating compatible to 11.2
#     ysarig     08/13/07  - Fixing the sample for 11g
#     atsukerm   08/06/98 -  fix for 8.1.
#     hpiao      06/05/97 -  fix for 803
#     glavash    05/12/97 -  add oracle_trace_enable comment
#     hpiao      04/22/97 -  remove ifile=, events=, etc.
#     alingelb   09/19/94 -  remove vms-specific stuff
#     dpawson    07/07/93 -  add more comments regarded archive start
#     maporter   10/29/92 -  Add vms_sga_use_gblpagfile=TRUE 
#     jloaiza    03/07/92 -  change ALPHA to BETA 
#     danderso   02/26/92 -  change db_block_cache_protect to _db_block_cache_p
#     ghallmar   02/03/92 -  db_directory -> db_domain 
#     maporter   01/12/92 -  merge changes from branch 1.8.308.1 
#     maporter   12/21/91 -  bug 76493: Add control_files parameter 
#     wbridge    12/03/91 -  use of %c in archive format is discouraged 
#     ghallmar   12/02/91 -  add global_names=true, db_directory=us.acme.com 
#     thayes     11/27/91 -  Change default for cache_clone 
#     jloaiza    08/13/91 -         merge changes from branch 1.7.100.1 
#     jloaiza    07/31/91 -         add debug stuff 
#     rlim       04/29/91 -         removal of char_is_varchar2 
#   Bridge     03/12/91 - log_allocation no longer exists
#   Wijaya     02/05/91 - remove obsolete parameters
#
##############################################################################
# Example INIT.ORA file
#
# This file is provided by Oracle Corporation as a starting point for
# customizing the Oracle Database installation for your site.    
#
# NOTE: The values that are used in this file are example values only.
# You may want to adjust those values for your specific requirements. 
# You might also consider using the Database Configuration Assistant     
# tool (DBCA) to create a server-side initialization parameter file
# and to size your initial set of tablespaces. See the
# Oracle Database 2 Day DBA guide for more information.
###############################################################################

# Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at
# install time)

db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='<ORACLE_BASE>/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='<ORACLE_BASE>'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'
# You may want to ensure that control files are created on separate physical
# devices
control_files = (ora_control1, ora_control2)
compatible ='11.2.0'

and

[oracle@ol12c dbs]$ echo $ORACLE_SID
pridb

[oracle@ol12c dbs]$ echo $ORACLE_HOME
/u01/app/oracle/product/12.1.0.2/db_1

[oracle@ol12c dbs]$ echo $ORACLE_BASE
/u01/app/oracle

[oracle@ol12c dbs]$ echo $DB_NAME
pridb

.


.

UPDATE 2

I updated the init files as suggested.
Changed <ORACLE_BASE> to the actual path: /u01/app/oracle/

[oracle@ol12c dbs]$ cat initpridb.ora
...
...
db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='/u01/app/oracle/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'

and

[oracle@ol12c dbs]$ cat init.ora
...
...
db_name='ORCL'
memory_target=1G
processes = 150
audit_file_dest='/u01/app/oracle/admin/orcl/adump'
audit_trail ='db'
db_block_size=8192
db_domain=''
db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
db_recovery_file_dest_size=2G
diagnostic_dest='/u01/app/oracle'
dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
open_cursors=300 
remote_login_passwordfile='EXCLUSIVE'
undo_tablespace='UNDOTBS1'

I get the error when not selecting the pfile manually:

SQL> STARTUP NOMOUNT;
ORA-48108: invalid value given for the diagnostic_dest init.ora parameter
ORA-48140: the specified ADR Base directory does not exist [/u01/app/oracle/product/12.1.0.2/db_1/dbs/<ORACLE_BASE>]
ORA-48187: specified directory does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 1

But it works! 🙂 (I just ran into a new issue but that is probably unrelated to this)

SQL> startup nomount pfile=/u01/app/oracle/product/12.1.0.2/db_1/dbs/initpridb.ora;
ORA-09925: Unable to create audit trail file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 9925

I also noticed that the db_name is set to ORCL for both. Not sure if this will create further issues.

.


.

UPDATE 3

FOR: ORA-09925: Unable to create audit trail file

I checked the Oracle Knowledge Base Documentation:
ORA-09925: Unable To Create Audit Trail File at Startup (Doc ID 2267223.1)
I am following the steps towards solution.
Output of point b:

[oracle@ol12c ~]$ ps -ef|grep LOCAL
oracle    8211  8172  0 14:06 ?        00:00:00 oraclepridb (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    8448  8408  0 14:18 pts/1    00:00:00 grep --color=auto LOCAL

And I tried:

[oracle@ol12c ~]$ strace -frT -o /tmp/strace.1.log -p 8211
Process 8211 attached

But this seems to be stuck/loading and thus – I am stuck again.

.


.

UPDATE 4

All got solved. ORACLE instance started.

The last error (ORA-09925) has been resolved by updating the original value of the audit_file_dest parameter from to the correct path.
From audit_file_dest='/u01/app/oracle/admin/orcl/adump' To >> audit_file_dest='/u01/app/oracle/admin/pridb/adump'

SQL> startup nomount pfile=/u01/app/oracle/product/12.1.0.2/db_1/dbs/initpridb.ora;
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size          2932632 bytes
Variable Size         671088744 bytes
Database Buffers      394264576 bytes
Redo Buffers            5455872 bytes

.

Thank you all for your help!

Best Answer

Ignore init.ora, that isn't used. You want init<SID>.ora. In your case, this seems to be initpridb.ora

This comment in this file that you have got your hands on seems to have been ignored:

Change '<ORACLE_BASE>' to point to the oracle base (the one you specify at install time)

You still have:

audit_file_dest='<ORACLE_BASE>/admin/orcl/adump'

Modify this to:

/u01/app/oracle/admin/orcl/adump

And try again.