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

[[email protected] 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
[[email protected] ContentsXML]$ 

### DetachHome for 12.2.0.1

[[email protected] ~]$ echo $ORACLE_HOME
/u01/app/oracle/12.2.0.1/db1
[[email protected] ~]$ $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.
[[email protected] ~]$

### Rename DB home directory from 12.2.0.1 to 12.2

[[email protected] 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

[[email protected] oracle]$ mv 12.2.0.1 12.2
[[email protected] 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
[[email protected] oracle]$

### Update oratab

[[email protected] ContentsXML]$ vi /etc/oratab
[[email protected] 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

[[email protected] ContentsXML]$ 

### attachHome for 12.2

[[email protected] db1]$ export ORACLE_HOME=/u01/app/oracle/12.2/db1
[[email protected] db1]$ ls -ld $ORACLE_HOME
drwxr-xr-x 76 oracle oinstall 4096 Nov  5 20:40 /u01/app/oracle/12.2/db1
[[email protected] 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.

[[email protected] 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

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

[[email protected] 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:
[[email protected] ContentsXML]$

### srvctl config database failed

[[email protected] ~]$ 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

[[email protected] 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.
[[email protected] bin]$

### Clone DB home

[[email protected] ~]$ cd $ORACLE_HOME/clone/bin
[[email protected] 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.

[[email protected] bin]$

[[email protected] ~]# /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
[[email protected] ~]# 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
[[email protected] ~]#

### Add database to cluster resource

[[email protected] ~]$ srvctl remove database -d hawk
Remove the database hawk? (y/[n]) y
[[email protected] ~]$

[[email protected] dbs]$ srvctl add  database -d hawk -o /u01/app/oracle/12.2/db1 -spfile /u01/app/oracle/12.2/db1/dbs/spfilehawk.ora
[[email protected] 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
[[email protected] dbs]$ srvctl start database -d hawk
[[email protected] dbs]$ srvctl status database -d hawk -v
Database hawk is running. Instance status: Open.
[[email protected] dbs]$

### Verify database using sqlplus

[[email protected] 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

[[email protected] 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:
[[email protected] 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

[[email protected] ~]$ 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
--------------------------------------------------------------------------------
[[email protected] ~]$

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

email

Author

Want to talk with an expert? Schedule a call with our team to get the conversation started.

No comments

Leave a Reply

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