One of the new features of Oracle Database 18c is that we can now configure an Oracle Home in read-only mode.
In a read-only Oracle home, all the configuration files like database init.ora, password files, listener.ora, tnsnames.ora as well as related log files reside outside of the read-only Oracle home.
This feature allows us to use the read-only Oracle home as a ‘master or gold’ software image that can be distributed across multiple servers. So it enables mass provisioning and also simplifies the patching process where hundreds of target servers are potentially required to have a patch applied. Here we patch the ‘master’ read-only Oracle Home and this image can then be deployed on multiple target servers seamlessly.
To configure a read-only Oracle Home, we need to do a software only 18c installation – that is we do not create a database as part of the software installation.
We then run a command roohctl -enable which will configure the Oracle Home in read-only mode.
In addition to the ORACLE_HOME and ORACLE_BASE variables, we have a new variable defined called ORACLE_BASE_CONFIG and like the oratab file we have an additional file called orabasetab.
So in an 18c read-only Oracle Home, for example the dbs directory is now not located as it was traditionally under the $ORACLE_HOME/dbs, but is now located under $ORACLE_BASE_CONFIG – which takes the form of a directory structure called $ORACLE_BASE/homes/<ORACLE_HOME_NAME>.