Update to this post: Starting December 2021, Oracle Database 21c (21.3) comes with full production support for Oracle RAC on Docker! You can get more details on exactly what RAC images are supported for production databases on the Oracle MAA blog.
I began my love affair with Docker a year ago when @GeraldVenzl got me started with my very first 12.2 Multitenant container database on Docker and I have to say I absolutely love the convenience of having an Oracle Database directly on my MAC for demos and building test cases to help answer AskTOM questions.
Then about six months ago I got an opportunity to beta test RAC on Docker when I needed a two-node RAC cluster for a blog post on controlling where data is populated into In-Memory on a RAC cluster.
Now you have an opportunity to try RAC on Docker for yourself, as Oracle has just released Docker build files to create an Oracle RAC Database Docker image on Github.
I’m not going to lie to you, setting up the RAC Database Docker image is more complex than the single instance database version but if you need a RAC environment, it will be well worth it, especially because you can create a two-node RAC cluster on a single host. A multi-host environment is also supported.
As well as the build files from Github, you also need to download several additional items in order to make this work, including:
- The Oracle RAC Storage Server Docker image to provide shared storage if you do not have block storage or a NAS device to store the RAC OCR/Voting files and Datafiles. For more details, see OracleRACStorageServer/README.md.
- Oracle Database 12c Release 2 Grid Infrastructure (220.127.116.11.0) for Linux x86-64
- Oracle Database 12c Release 2 (18.104.22.168.0) Enterprise Edition for Linux x86-64
- Patch# p27383741_122010_Linux-x86-64.zip , which you can download directly from Oracle Technology Network
The detailed steps to build and run Oracle RAC on Docker can be found in in the OracleRealApplicationClusters/README.md.
Note that the current 12c version of Oracle RAC on Docker is only supported for test and development environments, but not for production environments.