Run Oracle Database Upgrades on Docker

By Sean Scott

Elevator Pitch

Where will you practice your next upgrade? How many chances will database teams have to familiarize themselves with the tools, and how prepared will they be if something goes wrong?

Docker makes it easy to rehearse upgrades and produces more confident teams and better outcomes!

Description

Organizations planning for an Oracle upgrade should consider Docker in their upgrade strategy. Docker is an ideal environment for evaluating and testing Oracle database features and upgrades are no exception. Creating an Oracle database in Docker is fast and easily repeated. Containers require little time or effort to create and are light enough to run on a laptop. This makes Docker the ideal platform for evaluating, practicing and perfecting database upgrade procedures.

In this session I’ll demonstrate:

  • Approaches for installing, patching and customizing Oracle database software on Docker
  • Modifications needed in Oracle’s default Docker image builds to support upgrades
  • Techniques for creating “upgrade containers” with source and target Oracle database homes preinstalled
  • How to merge multiple database images into a single container
  • Methods for creating reference data for running “instant” databases

Notes

I’ve performed hundreds of Oracle upgrades over my career. Pre-production environments usually go fairly smoothly, with little urgency. Things change when you get to production. Rarely are those pre-production environments accurate representations of production and—when something goes wrong—even a small hitch is amplified by the pressure of working with critical data, time constraints and a suddenly engaged, inquisitive audience. In my experience, teams that prepare for upgrades respond to that inevitable hiccup faster and more gracefully, because they’ve seen things go wrong in their practice sessions.

What better place to practice and get familiar with the upgrade process than on your local machine, with a tool that can reset an environment to a known starting point in just a few minutes? Docker is that tool! I’ve been running Oracle databases on Docker for nearly seven years and delivered dozens of presentations, demos, and hands-on-labs to multiple user groups. I’ve built and run custom labs and training sessions specifically for teaching database administrators how to run Oracle on Docker, and how to create custom images with multiple Oracle Homes for the purpose of experimenting and evaluating upgrades.