Oracle containers and data
Oracle containers without data
If you are only interested in Oracle containers without data, you may build your own docker image using the steps below and create Oracle containers from it. If you are interested in Oracle containers with production data clones, then skip to the section on Oracle containers with production database clones and refresh
- Download the Oracle installer zip file for your edition and version
- Install docker on a Linux machine
- Get the dockerfile and associated files to build the Oracle image
- Build the Oracle image
- Create containers from the image
Oracle containers can be configured with environment variables for Oracle version number, edition, Sid, pdb names, host port, container port, and archive logging.
To run Oracle in Kubernetes, push the image into a docker image registry. Then create a Kubernetes cluster, the deployment yaml file with the image set to the one you built and service yaml file. Then use Helm or kubectl to make the Kubernetes deployment. This will result in Oracle running in Kubernetes pods.
Oracle containers with production database clones and refresh
If your use case involves testing, development, reporting, support, ML or DevOps, you need multiple copies of writeable production data. Windocks instantaneously clones production data and delivers the clones into Oracle containers. Windocks orchestration will create the containers, clone production data, refresh from production periodically, mask sensitive information, and deliver running Oracle containers with production data clones. These containers are accessed with TNS names or addresses with ports using command line SQLPLUS, RMAN, or UI tools.
Steps to start with Oracle containers and data
1. Install Windocks
Download the Windocks Community Edition or email firstname.lastname@example.org for a full featured evaluation edition.
Provision a Windows Server VM (Server 2016, 2019, or 2022), install SQL Server (for SQL database delivery) and then install Windocks as described here.
For Oracle database delivery, also install the Windocks service for Linux as described here.
2. Prepare the Oracle dump files or choose incremental refresh from production
For smaller databases, you may use dump files as the source of data to build a Windocks image. With large databases, you may use incremental refresh from production.
3. Provide the spec to the Windocks orchestrator to build the image
Specify the path to a script that restores Oracle RMAN backups, or the path to Oracle oradata files, and any other SQL scripts to run. Provide the spec in the form of a dockerfile and build the image via a web application, command line or REST API.
4. Deliver Oracle containers with customized database clones
From the image, deliver database clones to containers or instances. The image you built defines where the databases are delivered to. You may define an image that delivers containers with clones as well as clones to instances. To deliver containers and clones, use the web application or use the docker command line or the REST API.
5. Use the writeable clones in containers
Database clones are delivered either to containers or instances based on the image you built. If you delivered to an instance, then connect to that instance for the database clone. Clones are writeable. Containers are delivered on the machine running Windocks on specified ports. Access these containers with regular database tools or command lines or connection strings.
SQL Server containers are accessed with SQL Management Studio or Azure Data Studio or SQLCMD. Connect with the instance name (such as INSTANCE10002 when the container port is 10002). Or you can use the form IPAddressOfWindocksServer,10002 to connect to the SQL container running on port 10002.
Oracle containers are accessed with SQLPlus, RMAN or UI tools for Oracle. You may put in entries in tnsnames.ora for the containers as you would for Oracle instances. With SQLPlus or RMAN, use the form SQLPLUS sys/password@IPAddressOfWindocksLinuxServer:HostPort/orclcdb as sysdba