Problem
oakcli „delete database“ fails on Oracle Database Appliance
[root@oda1 ~]# oakcli delete database -db dbx
2016-02-20 19:12:55: Will be running following sql statements as user: oracle:
export oracle_home=/u01/app/oracle/product/12.1.0.2/dbhome_2,
export sid= dbx,
/u01/app/oracle/product/12.1.0.2/dbhome_2/bin/sqlplus -L sys/password@/dbx as sysdba
set heading off
set echo off
select name from v$datafile
2016-02-20 19:12:55: Removing file /tmp/filenoqI0r
2016-02-20 19:12:55: Successfully removed file: /tmp/filenoqI0r
2016-02-20 19:12:55: /bin/su exited with rc=1
2016-02-20 19:12:55: ERROR: Failed to connect to the database
ERROR: ORA-12154: TNS:could not resolve the connect identifier specified SP2-0751: Unable to connect to Oracle. Exiting SQL*Plus Died at /opt/oracle/oak/lib/oakutilslib/SqlUtils.pm line 91.
[root@oda1 ~]# less /opt/oracle/oak/log/oda1/tools/12.1.2.5.0/deletedatabase_dbx_43801.log /u01/app/oracle/product/12.1.0.2/dbhome_2/bin/sqlplus -L sys/password@/dbx as sysdba
[root@oda1 ~]# /u01/app/oracle/product/12.1.0.2/dbhome_2/bin/sqlplus -L sys/welcome1@/dbx as sysdba ERROR: ORA-12154: TNS:could not resolve the connect identifier specified [root@oda1 ~]# /u01/app/oracle/product/12.1.0.2/dbhome_2/bin/sqlplus -L sys/welcome1@dbx as sysdba SQL*Plus: Release 12.1.0.2.0 Production on Sat Feb 20 19:16:08 2016 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
Solution
The problem is the additionsl slash „/“ in the connect descriptor oakcli produces when calling SQLPlus.
This is an Oracle bug, see also: ODA: Running „oakcli delete database -db <dbname>“ Fails With Error ORA-12514 (Doc ID 2034612.1)
The solution is to reset the db_domain database parameter:
SQL> alter system reset db_domain scope=spfile;
And restart the database
[oracle@oda1:dbx1 ]$ /u01/app/oracle/product/12.1.0.2/dbhome_2/bin/srvctl stop database -d dbx [oracle@oda1:dbx1 ]$ /u01/app/oracle/product/12.1.0.2/dbhome_2/bin/srvctl start database -d dbx
The solution is also valid if the parameter is not set:
SQL> show parameter domain
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_domain string