The rise and fall of read-only Oracle homes

 

Cast your mind back to the olden days of Oracle 18c, where one of the new features introduced was read-only Oracle homes. I wrote about it here.

Read-Only Oracle Homes in Oracle Database 18c

What was the problem?

Mixing executables, log files and configuration files is a really bad idea. Configuration files tend to have a long lifespan, while executables change all the time due to patches and upgrades. It can be difficult to find log files when they are spread across multiple subdirectories in the Oracle home, although the Automatic Diagnostics Repository (ADR) solved a lot of those problems for us.

Historically Oracle have had this mixed approach, with directories such as “dbs”, “network”, and some of the subdirectories of “rdbms” amongst others under the Oracle home.

The solution?

Read-only Oracle homes solve this problem by splitting out most of the common “problem files” into a separate location, leaving the contents of the Oracle home in a mostly read-only state.

The solution was nice enough, and didn’t require mental gymnastics to understand if you paid a little attention. If you have never tried it, check out the article linked about for the basics.

The Rise

When Oracle 21c was released one of the behaviour changes was that read-only Oracle homes were the default. You could still choose to go read/write, but there was a clear statement of direction. Read-only Oracle homes were the future!

The Fall

I noticed during the 23c beta that the read/write Oracle homes were the default again. I raised a question about it a couple of times. I noticed that Oracle 23c Free used a read/write Oracle home too, but figured that wasn’t a “proper installation”, so whatever.

More recently I was going through the 23c installation guide and I saw this.

“With Oracle Database 23c, an Oracle home is available in read/write mode by default. However, you can choose to configure an Oracle home in read-only mode after you have performed a software-only Oracle Database installation.”

https://docs.oracle.com/en/database/oracle/oracle-database/23/ladbi/about-read-only-oracle-home.html#GUID-D848002A-DBAD-48FA-8467-E849630B8E42

So it looks like we’ve flipped back to the read-write Oracle homes by default in 23c. Read-only Oracle homes are still available. Just not by default.

So what?

I prefer the read-only Oracle homes, and of course I can still choose to use them. The difference now is I expect the vast majority of people will use the read/write homes, as people tend to stick with the path of least resistance. So the question is, do I want to turn myself into a minority?

I understand why this is better for backwards compatibility, but I’m a little disappointed. Forcing the change of the default behaviour would have been nice, and better for the product in the long run.

I’ve got plenty of time to consider my options

Ah well. Better to have loved and lost, than to have your eyes gouged out with rusty spoons… šŸ™‚

Cheers

Tim…

PS. I think I may have given some people the impression that read-only Oracle homes are going away. That wasn’t my intention. I’m just talking about the change in default behaviour since Oracle 21c.

Author: Tim...

DBA, Developer, Author, Trainer.

7 thoughts on “The rise and fall of read-only Oracle homes”

  1. Hi Tim! Did you got an answer in the meantime why they changed the default back to read/write home?
    Would be also interested in.

  2. Christian Marquardt: Unofficially, what I heard was it was pushback from some big customers. People have lots of scripts that make assumptions about file placement. Changing to read-only homes adds work for them to revise their scripts. I’m not sure why they couldn’t just leave the default as read-only and ask those users to switch to read/write…

    Cheers

    Tim…

  3. I like the idea of read-only homes immensely. Especially for doing Q1Q3 / Q2Q4 alternate binary home patching so I don’t have to copy all the appropriate files from dbs direction to the other in the patching script. Of course it would be more useful if I could just change existing db home use to read-only. Surely there is some init setting to change where the code looks things up – but the documentation (at least for 19c) makes it clear you cannot do this for existing databases. Why not is the question…

    Of course that begs another question: Will the all-singing and dancing autoupgrade utility be able to convert to read-only homes when we move to 23c along with converting stand-alone instances to the CDB/PDB model? Not that I’m looking forward to that since we have several third-party apps that are unsupported but still used that weren’t designed for it. That, and I’ve always done manual upgrades as past bad experiences make trusting automatic upgrades difficult. Hopefully I’ll be pleasantly surprised.

  4. Hi Tim. I do agree that changing the default is odd. As a customer Iā€™d expect the default to be whatever the best practice is, which read-only would seem to be.

  5. Bryan: I have checked with the master (Mike Dietrich) and he says it will cope with the switch from RW to RO home no worries.

Comments are closed.