
Starting with Oracle Database 18c, Oracle have made a few changes. The biggest one perhaps is the intention to make quarterly releases each year from now on. Hence, Oracle Database 18c Release 1 in Q1 of 2018 (18.1), Release 2 in Q2 (18.2) and so on. Not all of these releases will be or are available for download for on premise installation. At the time of writing, 18.3 is only available for download for 4 different platforms and 18.4 is only available for a further 3 platforms. We’ll be using 18.3 for Linux x86-64 for a series of Oracle Database 18c articles. Enjoy!
Quick links to all the tasks:
- Task #1: Deinstalling Oracle Database 18c.
- Task #2: Installing Oracle Database 18c (GUI).
- Task #3: Installing Oracle Database 18c (silent).
Task #1: Deinstalling Oracle Database 18c.
Also starting with Oracle Database 18c, Oracle have changed the way the database software is installed. Previously, you’d grab the zip file(s) from OTN or wherever, copy them to some staging area on your target server, unzip them then run the installer to actually install the code set into your OFA designated path (if you were doing things properly that is). That’s now changed.
Nowadays, you still grab the zip file(s) from Oracle, but now you have to copy them directly to your pre-created OFA designated path, unzip them and run the installer to install the code set in that directory. In other words, the installer will not create an OFA path for you like it has previously. I’m sure this will lead to many installations being in the wrong place, so let’s start off my running a deinstall so you can get it right the second time.
I’ve installed Oracle Database 18c Release 3 (18.3) here:
[oracle@orasvr01 dbhome_1]$ pwd /u01/app/oracle/product/18.0.0/dbhome_1
Given it’s 18.3, following OFA rules the path should be /u01/app/oracle/product/18.3.0/dbhome_1. So let’s uninstall it. These steps assume you haven’t created a database already. If you have, the deinstall process will detect it (and any associated Listener) and remove those too:
[oracle@orasvr01 dbhome_1]$ cd deinstall [oracle@orasvr01 deinstall]$ pwd /u01/app/oracle/product/18.0.0/dbhome_1/deinstall [oracle@orasvr01 deinstall]$ ./deinstall Checking for required files and bootstrapping … Please wait … Location of logs /u01/app/oraInventory/logs/ ############ ORACLE DECONFIG TOOL START ############ ################### DECONFIG CHECK OPERATION START ################### ## [START] Install check configuration ## Checking for existence of the Oracle home location /u01/app/oracle/produc/18.0.0/dbhome_1 Oracle Home type selected for deinstall is: Oracle Single Instance Database Oracle Base selected for deinstall is: /u01/app/oracle Checking for existence of central inventory location /u01/app/oraInventory ## [END] Install check configuration Network Configuration check config START Network de-configuration trace file location: /u01/app/oraInventory/logs/netdc_check2019-07-12_11-27-40AM.log Network Configuration check config END Database Check Configuration START Database de-configuration trace file location: /u01/app/oraInventory/logs/databasedc_check2019-07-12_11-27-40AM.log Use comma as separator when specifying list of values as input Specify the list of database names that are configured in this Oracle home []: Database Check Configuration END ################### DECONFIG CHECK OPERATION END ################### ################# DECONFIG CHECK OPERATION SUMMARY ################# Oracle Home selected for deinstall is: /u01/app/oracle/product/18.0.0/dbhome_1 Inventory Location where the Oracle home registered is: /u01/app/oraInventory Do you want to continue (y - yes, n - no)? [n]: y A log of this session will be written to: '/u01/app/oraInventory/logs/deinstall_deconfig2019-07-12_11-27-39-AM.out' Any error messages from this session will be written to: '/u01/app/oraInventory/logs/deinstall_deconfig2019-07-12_11-27-39-AM.err' ################## DECONFIG CLEAN OPERATION START ################## Database de-configuration trace file location: /u01/app/oraInventory/logs/databasedc_clean2019-07-12_11-27-40AM.log Network Configuration clean config START Network de-configuration trace file location: /u01/app/oraInventory/logs/netdc_clean2019-07-12_11-27-40AM.log De-configuring Naming Methods configuration file… Naming Methods configuration file de-configured successfully. De-configuring Local Net Service Names configuration file… Local Net Service Names configuration file de-configured successfully. De-configuring backup files… Backup files de-configured successfully. The network configuration has been cleaned up successfully. Network Configuration clean config END ################### DECONFIG CLEAN OPERATION END ################### ################# DECONFIG CLEAN OPERATION SUMMARY ################# ############################################################# ####### ORACLE DECONFIG TOOL END ####### Using properties file /tmp/deinstall2019-07-12_11-27-30AM/response/deinstall_2019-07-12_11-27-39-AM.rsp Location of logs /u01/app/oraInventory/logs/ ###### ORACLE DEINSTALL TOOL START ###### ################# DEINSTALL CHECK OPERATION SUMMARY ################# A log of this session will be written to: '/u01/app/oraInventory/logs/deinstall_deconfig2019-07-12_11-27-39-AM.out' Any error messages from this session will be written to: '/u01/app/oraInventory/logs/deinstall_deconfig2019-07-12_11-27-39-AM.err' ################## DEINSTALL CLEAN OPERATION START ################## ## [START] Preparing for Deinstall ## Setting LOCAL_NODE to orasvr01 Setting CRS_HOME to false Setting oracle.installer.invPtrLoc to /tmp/deinstall2019-07-12_11-27-30AM/oraInst.loc Setting oracle.installer.local to false ## [END] Preparing for Deinstall ## Setting the force flag to false Setting the force flag to cleanup the Oracle Base Oracle Universal Installer clean START Detach Oracle home '/u01/app/oracle/product/18.0.0/dbhome_1' from the central inventory on the local node : Done Delete directory '/u01/app/oracle/product/18.0.0/dbhome_1' on the local node : Done The Oracle Base directory '/u01/app/oracle' will not be removed on local node. The directory is in use by Oracle Home '/u01/app/oracle/product/19.3.0/dbhome_1'. Oracle Universal Installer cleanup was successful. Oracle Universal Installer clean END ## [START] Oracle install clean ## ## [END] Oracle install clean ## ################### DEINSTALL CLEAN OPERATION END ################### ################# DEINSTALL CLEAN OPERATION SUMMARY ################# Successfully detached Oracle home '/u01/app/oracle/product/18.0.0/dbhome_1' from the central inventory on the local node. Successfully deleted directory '/u01/app/oracle/product/18.0.0/dbhome_1' on the local node. Oracle Universal Installer cleanup was successful. Review the permissions and contents of '/u01/app/oracle' on nodes(s) 'orasvr01'. If there are no Oracle home(s) associated with '/u01/app/oracle', manually delete '/u01/app/oracle' and its contents. Oracle deinstall tool successfully cleaned up temporary directories. ####################################################################### ####### ORACLE DEINSTALL TOOL END #######
Task #2: Installing Oracle Database 18c (GUI).
There’s really not much to write home about with regards to installing 18c compared to previous versions. It has changed just a little so let’s quickly run through what the GUI installation looks like:
[oracle@orasvr01 dbhome_1]$ pwd /u01/app/oracle/product/18.3.0/dbhome_1 [oracle@orasvr01 dbhome_1]$ ls -l -rw-r--r-- 1 oracle oinstall 4564649047 Jul 12 11:40 LINUX.X64_180000_db_home.zip [oracle@orasvr01 dbhome_1]$ unzip LINUX.X64_180000_db_home.zip (output is boring so I didn't include it) [oracle@orasvr01 dbhome_1]$ export ORACLE_BASE=/u01/app/oracle [oracle@orasvr01 dbhome_1]$ export DISPLAY=<your_workstation_or_IP>:0.0 [oracle@orasvr01 dbhome_1]$ ./runInstaller







In my case, I haven’t configured enough swap space. Since this is a non-production system this doesn’t matter so I can safely check the Ignore All check box, click Next and move on. Incidentally, if you need to configure more swap via a swap file, check this out.




[root@orasvr01 ~]# /u01/app/oracle/product/18.3.0/dbhome_1/root.sh Performing root user operation. The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /u01/app/oracle/product/18.3.0/dbhome_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: The contents of "dbhome" have not changed. No need to overwrite. The contents of "oraenv" have not changed. No need to overwrite. The contents of "coraenv" have not changed. No need to overwrite. 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. Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : no Oracle Trace File Analyzer (TFA - Non Daemon Mode) is available at : /u01/app/oracle/product/18.3.0/dbhome_1/suptools/tfa/release/tfa_home/bin/tfactl Note : 1. tfactl will use TFA Daemon Mode if TFA already running in Daemon Mode and user has access to TFA 2. tfactl will configure TFA Non Daemon Mode only if user has no access to TFA Daemon mode or TFA Daemon mode is not installed OR Oracle Trace File Analyzer (TFA - Daemon Mode) can be installed by running this script : /u01/app/oracle/product/18.3.0/dbhome_1/suptools/tfa/release/tfa_home/install/roottfa.sh
Click OK in the Execute Configuration Scripts window.

Task #3: Installing Oracle Database 18c (silent install).
Although it doesn’t take that long to install the database software, sometimes you just haven’t got the time (or patience) to sit there and click-click-click. Silent (non-interactive) installations have been around for a while and Oracle Database 18c also supports that method. Rather useful if you’ve got a load of installations to do and need to (mostly) automate them.
Silent installations reply upon a response file which contains most or all of the values you would be prompted for if you were to run an interactive installation. Response files have a specific format which you must adhere to. A database software installation response file template can be found in $ORACLE_HOME/install/response/db_install.rsp. A more effective way to generate a populated response file is to run the GUI installation and save the response file towards the end of that process. That’s what I did to demonstrate the silent installation coming up shortly.
I always use a staging area to store the database media zip file. To speed up the copying, unzipping and installation of the software, I use this simple script. The significant line of code which runs the silent installation is this:
${ORACLE_HOME}/runInstaller -silent -responseFile ${RESPFILE}
Here is the screen output from running the script as the oracle user:
[oracle@orasvr01 shell]$ ./silent_db_install.sh -help Usage: silent_db_install.sh DB_Release Zip_File_Path Response_File_Path DELETE|NODELETEwhere:
DB_Release = Database_Version.Database_Release.0 (e.g. 18.3.0)
Zip_File_Path = Full path to the database binaries zip file
Response_File_Path = Full path to the silent install response file
DELETE|NODELETE = Delete the zip file in the new ORACLE_HOME (DELETE) or not (NODELETE)
[oracle@orasvr01 shell]$ ./silent_db_install.sh 18.3.0 /u01/MEDIA/database/18c/LINUX.X64_180000_db_home.zip /home/oracle/scripts/shell/install_183.rsp DELETE*** Checking parameters
*** Copying zip file: /u01/MEDIA/database/18c/LINUX.X64_180000_db_home.zip to the new
ORACLE_HOME: /u01/app/oracle/product/18.3.0/dbhome_1
*** Unzipping LINUX.X64_180000_db_home.zip into /u01/app/oracle/product/18.3.0/dbhome_1
*** Deleting /u01/app/oracle/product/18.3.0/dbhome_1/LINUX.X64_180000_db_home.zip
*** Passing execution to the Oracle Installer in silent mode
Launching Oracle Database Setup Wizard… The response file for this session can be found at: /u01/app/oracle/product/18.3.0/dbhome_1/install/response/db_2019-08-16_12-10-14PM.rsp You can find the log of this install session at: /tmp/InstallActions2019-08-16_12-10-14PM/installActions2019-08-16_12-10-14PM.log As a root user, execute the following script(s): 1. /u01/app/oraInventory/orainstRoot.sh 2. /u01/app/oracle/product/18.3.0/dbhome_1/root.sh Execute /u01/app/oraInventory/orainstRoot.sh on the following nodes: [orasvr01] Execute /u01/app/oracle/product/18.3.0/dbhome_1/root.sh on the following nodes: [orasvr01] Successfully Setup Software. Moved the install session logs to: /u01/app/oraInventory/logs/InstallActions2019-08-16_12-10-14PM*** Please check the Oracle Installer output for additional root scripts to run.
Note, the first database software installation does take into account the absence of an Oracle inventory. Subsequent installations on the same server leverage a preexisting inventory. Also note, I had to fix the swap space issue otherwise the silent installation complained. Fixing a low swap space issue is documented here.
For completeness, here’s the output from the two root scripts referenced in the above output:
[root@orasvr01 ~]# /u01/app/oraInventory/orainstRoot.sh Changing permissions of /u01/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /u01/app/oraInventory to oinstall. The execution of the script is complete. [root@orasvr01 app]# /u01/app/oracle/product/18.3.0/dbhome_1/root.sh Check /u01/app/oracle/product/18.3.0/dbhome_1/install/root_orasvr01.mynet.com_2019-08-16_12-12-24-830643173.log for the output of root script
The script can be run multiple times on the same server. Each time it will create a new OFA compliant ORACLE_HOME, copy the zip file to it, unzip it, run a silent installation and optionally delete the zip file from the new ORACLE_HOME (but not from the staging area). Hopefully it will save you some time.