How To Resolve Database Software Install To Incorrect Location

Posted in: Technical Track

We were recently required to install database software to /u01/app/oracle/12.2/db1.

However, when using GUI to install database, software was installed to /u01/app/oracle/12.2.0.1/db1 by mistake.

This post will demonstrate an incorrect method to resolve the issue, and then the correct method.

### Review inventory.xml

Oracle Restart was upgraded from 11.2.0.4 to 19.3.0.0
Database installed at incorrect home (12.2.0.1)

HOME NAME="Ora11g_gridinfrahome1" LOC="/u01/app/oracle/11.2.0.4/grid" TYPE="O" IDX="1"
HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/11.2.0.4/db1" TYPE="O" IDX="2"
HOME NAME="OraGI19Home1" LOC="/u01/app/19.3.0.0/grid" TYPE="O" IDX="3" CRS="true"
HOME NAME="OraDB12Home1" LOC="/u01/app/oracle/12.2.0.1/db1" TYPE="O" IDX="4"

### Review DB configuration

[oracle@db-asm-1 ContentsXML]$ srvctl config database -d hawk
Database unique name: hawk
Database name: hawk
Oracle home: /u01/app/oracle/12.2.0.1/db1
Oracle user: oracle
Spfile: /u01/app/oracle/12.2.0.1/db1/dbs/spfilehawk.ora
Password file:
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Disk Groups: DATA,FRA
Services:
OSDBA group:
OSOPER group:
Database instance: hawk
[oracle@db-asm-1 ContentsXML]$ 

### DetachHome for 12.2.0.1

[oracle@db-asm-1 ~]$ echo $ORACLE_HOME
/u01/app/oracle/12.2.0.1/db1
[oracle@db-asm-1 ~]$ $ORACLE_HOME/oui/bin/runInstaller -detachHome -silent ORACLE_HOME=$ORACLE_HOME
Starting Oracle Universal Installer...

Checking swap space: must be greater than 500 MB.   Actual 17407 MB    Passed
The inventory pointer is located at /etc/oraInst.loc
'DetachHome' was successful.
[oracle@db-asm-1 ~]$

### Rename DB home directory from 12.2.0.1 to 12.2

[oracle@db-asm-1 oracle]$ ls -l
total 60
drwxrwxr-x  4 grid   oinstall 4096 Sep 19 00:52 11.2.0.4
drwxr-xr-x  3 oracle oinstall 4096 Oct 15 05:14 12.2.0.1
drwxrwxr-x  4 oracle oinstall 4096 Sep 19 00:57 admin
drwxrwxr-x  2 oracle oinstall 4096 Sep 19 00:40 audit
drwxr-xr-x  3 oracle oinstall 4096 Oct 15 16:21 autoupgrade
drwxrwx--- 11 grid   oinstall 4096 Oct 15 18:10 cfgtoollogs
drwxr-xr-x  2 grid   oinstall 4096 Sep 20 15:42 checkpoints
drwxr-xr-x  2 grid   oinstall 4096 Sep 19 00:49 Clusterware
drwxrwx---  6 grid   oinstall 4096 Sep 20 15:28 crsdata
drwxr-xr-x  3 grid   oinstall 4096 Sep 19 00:49 db-asm-1
drwxrwxr-x 23 grid   oinstall 4096 Sep 20 15:24 diag
drwxr-x---  3 oracle oinstall 4096 Sep 19 01:06 fast_recovery_area
drwxr-x---  3 oracle oinstall 4096 Sep 19 01:06 oradata
drwxr-xr-x  3 grid   oinstall 4096 Sep 20 16:57 oradiag_grid
drwxr-xr-x  3 oracle oinstall 4096 Oct 15 05:23 stage

[oracle@db-asm-1 oracle]$ mv 12.2.0.1 12.2
[oracle@db-asm-1 oracle]$ ll
total 60
drwxrwxr-x  4 grid   oinstall 4096 Sep 19 00:52 11.2.0.4
drwxr-xr-x  3 oracle oinstall 4096 Oct 15 05:14 12.2
drwxrwxr-x  4 oracle oinstall 4096 Sep 19 00:57 admin
drwxrwxr-x  2 oracle oinstall 4096 Sep 19 00:40 audit
drwxr-xr-x  3 oracle oinstall 4096 Oct 15 16:21 autoupgrade
drwxrwx--- 11 grid   oinstall 4096 Oct 15 18:10 cfgtoollogs
drwxr-xr-x  2 grid   oinstall 4096 Sep 20 15:42 checkpoints
drwxr-xr-x  2 grid   oinstall 4096 Sep 19 00:49 Clusterware
drwxrwx---  6 grid   oinstall 4096 Sep 20 15:28 crsdata
drwxr-xr-x  3 grid   oinstall 4096 Sep 19 00:49 db-asm-1
drwxrwxr-x 23 grid   oinstall 4096 Sep 20 15:24 diag
drwxr-x---  3 oracle oinstall 4096 Sep 19 01:06 fast_recovery_area
drwxr-x---  3 oracle oinstall 4096 Sep 19 01:06 oradata
drwxr-xr-x  3 grid   oinstall 4096 Sep 20 16:57 oradiag_grid
drwxr-xr-x  3 oracle oinstall 4096 Oct 15 05:23 stage
[oracle@db-asm-1 oracle]$

### Update oratab

[oracle@db-asm-1 ContentsXML]$ vi /etc/oratab
[oracle@db-asm-1 ContentsXML]$ cat /etc/oratab
#Backup file is  /u01/app/oracle/crsdata/db-asm-1/output/oratab.bak.db-asm-1.grid line added by Agent
db:/u01/app/oracle/12.2.0.1/db1:M
+ASM:/u01/app/19.3.0.0/grid:N           # line added by Agent
#hawk:/u01/app/oracle/12.2.0.1/db1:N            # line added by Agent
hawk:/u01/app/oracle/12.2/db1:N

[oracle@db-asm-1 ContentsXML]$ 

### attachHome for 12.2

[oracle@db-asm-1 db1]$ export ORACLE_HOME=/u01/app/oracle/12.2/db1
[oracle@db-asm-1 db1]$ ls -ld $ORACLE_HOME
drwxr-xr-x 76 oracle oinstall 4096 Nov  5 20:40 /u01/app/oracle/12.2/db1
[oracle@db-asm-1 db1]$ $ORACLE_HOME/oui/bin/runInstaller -attachHome -silent ORACLE_HOME=$ORACLE_HOME ORACLE_HOME_NAME="OraDB12Home2"
Starting Oracle Universal Installer...

Checking swap space: must be greater than 500 MB.   Actual 17407 MB    Passed
The inventory pointer is located at /etc/oraInst.loc
'AttachHome' was successful.

[oracle@db-asm-1 db1]$

### Review inventory.xml

HOME NAME="Ora11g_gridinfrahome1" LOC="/u01/app/oracle/11.2.0.4/grid" TYPE="O" IDX="1"
HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/11.2.0.4/db1" TYPE="O" IDX="2"
HOME NAME="OraGI19Home1" LOC="/u01/app/19.3.0.0/grid" TYPE="O" IDX="3" CRS="true"
HOME NAME="

OraDB12Home2

" LOC="/u01/app/oracle/12.2/db1" TYPE="O" IDX="4"

### orabasetab not properly updated

[oracle@db-asm-1 ContentsXML]$ ll $ORACLE_HOME/install/orabasetab
-rw-rw---- 1 oracle oinstall 135 Oct 15 05:42 /u01/app/oracle/12.2/db1/install/orabasetab

[oracle@db-asm-1 ContentsXML]$ cat $ORACLE_HOME/install/orabasetab
#orabasetab file is used to track Oracle Home associated with Oracle Base

/u01/app/oracle/12.2.0.1/db1

:/u01/app/oracle:OraDB12Home1:N:
[oracle@db-asm-1 ContentsXML]$

### srvctl config database failed

[oracle@db-asm-1 ~]$ srvctl config database
/u01/app/oracle/12.2/db1/bin/srvctl: line 254: /u01/app/oracle/12.2.0.1/db1/srvm/admin/getcrshome: No such file or directory
hawk

Unfortunately, not able to determine where the reference to getcrshome is from.
Method taken so far has not worked.
Anoter method is to deinstall and reinstall but wanted to save time.
Clone DB home worked.

### DetachHome for OraDB12Home2

[oracle@db-asm-1 bin]$ $ORACLE_HOME/oui/bin/runInstaller -detachHome -silent ORACLE_HOME=$ORACLE_HOME ORACLE_HOME_NAME=”OraDB12Home2″
Starting Oracle Universal Installer…

Checking swap space: must be greater than 500 MB. Actual 17407 MB Passed
The inventory pointer is located at /etc/oraInst.loc
‘DetachHome’ was successful.
[oracle@db-asm-1 bin]$

### Clone DB home

[oracle@db-asm-1 ~]$ cd $ORACLE_HOME/clone/bin
[oracle@db-asm-1 bin]$ perl clone.pl -silent -defaultHomeName ORACLE_HOME="/u01/app/oracle/12.2/db1" ORACLE_BASE="/u01/app/oracle"
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 500 MB.   Actual 27237 MB    Passed
Checking swap space: must be greater than 500 MB.   Actual 17407 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-11-06_01-04-05AM. 
Please wait ...You can find the log of this install session at:
 /u01/app/oraInventory/logs/cloneActions2019-11-06_01-04-05AM.log

..................................................   5% Done.
..................................................   85% Done.

Copy files in progress.

Copy files successful.

Link binaries in progress.

Link binaries successful.

Setup files in progress.

Setup files successful.

Setup Inventory in progress.

Setup Inventory successful.

Finish Setup successful.
The cloning of OraHome1 was successful.
Please check '/u01/app/oraInventory/logs/cloneActions2019-11-06_01-04-05AM.log' for more details.

Setup Oracle Base in progress.

Setup Oracle Base successful.
..................................................   95% Done.

As a root user, execute the following script(s):
        1. /u01/app/oracle/12.2/db1/root.sh
..................................................   100% Done.

[oracle@db-asm-1 bin]$

[root@db-asm-1 ~]# /u01/app/oracle/12.2/db1/root.sh
Check /u01/app/oracle/12.2/db1/install/root_db-asm-1_2019-11-06_01-06-40-560220381.log for the output of root script
[root@db-asm-1 ~]# cat /u01/app/oracle/12.2/db1/install/root_db-asm-1_2019-11-06_01-06-40-560220381.log
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/12.2/db1
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Oracle Trace File Analyzer (TFA) is available at : /u01/app/oracle/12.2/db1/suptools/tfa/release/tfa_home/bin/tfactl
[root@db-asm-1 ~]#

### Add database to cluster resource

[oracle@db-asm-1 ~]$ srvctl remove database -d hawk
Remove the database hawk? (y/[n]) y
[oracle@db-asm-1 ~]$

[oracle@db-asm-1 dbs]$ srvctl add  database -d hawk -o /u01/app/oracle/12.2/db1 -spfile /u01/app/oracle/12.2/db1/dbs/spfilehawk.ora
[oracle@db-asm-1 dbs]$ srvctl config database -d hawk
Database unique name: hawk
Database name:
Oracle home: /u01/app/oracle/12.2/db1
Oracle user: oracle
Spfile: /u01/app/oracle/12.2/db1/dbs/spfilehawk.ora
Password file:
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Disk Groups:
Services:
OSDBA group:
OSOPER group:
Database instance: hawk
[oracle@db-asm-1 dbs]$ srvctl start database -d hawk
[oracle@db-asm-1 dbs]$ srvctl status database -d hawk -v
Database hawk is running. Instance status: Open.
[oracle@db-asm-1 dbs]$

### Verify database using sqlplus

[oracle@db-asm-1 dbs]$ sqlplus / as sysdba

SQL*Plus: Release 12.2.0.1.0 Production on Wed Nov 6 01:18:43 2019

Copyright (c) 1982, 2016, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

SQL> exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

### Verify orabasetab

[oracle@db-asm-1 dbs]$ cat $ORACLE_HOME/install/orabasetab
#orabasetab file is used to track Oracle Home associated with Oracle Base
/u01/app/oracle/12.2/db1:/u01/app/oracle:OraHome1:N:
[oracle@db-asm-1 dbs]$

### Verify inventory.xml

HOME NAME="Ora11g_gridinfrahome1" LOC="/u01/app/oracle/11.2.0.4/grid" TYPE="O" IDX="1"
HOME NAME="OraDb11g_home1" LOC="/u01/app/oracle/11.2.0.4/db1" TYPE="O" IDX="2"
HOME NAME="OraGI19Home1" LOC="/u01/app/19.3.0.0/grid" TYPE="O" IDX="3" CRS="true"
HOME NAME="OraHome1" LOC="/u01/app/oracle/12.2/db1" TYPE="O" IDX="4"

### Verify Cluster Resource

[oracle@db-asm-1 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.dg
               ONLINE  ONLINE       db-asm-1                 STABLE
ora.DATA.dg
               ONLINE  ONLINE       db-asm-1                 STABLE
ora.FRA.dg
               ONLINE  ONLINE       db-asm-1                 STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       db-asm-1                 STABLE
ora.asm
               ONLINE  ONLINE       db-asm-1                 Started,STABLE
ora.ons
               OFFLINE OFFLINE      db-asm-1                 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       db-asm-1                 STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       db-asm-1                 STABLE
ora.hawk.db
      1        ONLINE  ONLINE       db-asm-1                 Open,HOME=/u01/app/o
                                                             racle/12.2/db1,STABL
                                                             E
--------------------------------------------------------------------------------
[oracle@db-asm-1 ~]$

Hopefully, you won’t make the same mistake I did and if you do, the triage should help to resolve the error.

email

Interested in working with Michael? Schedule a tech call.

No comments

Leave a Reply

Your email address will not be published. Required fields are marked *