DEV Community

Hisyam Johan
Hisyam Johan

Posted on

Running Oracle 21c on Docker and Restoring a Backup

Bismillah...

Introduction

In this guide, we will cover how to run Oracle 21c on Docker and restore a backup from a dump file. This includes building a Docker image, running it as a container, and executing a backup restoration script.

Prerequisites

Ensure you have Docker installed on your system.

Step 1: Building the Docker Image

Create the following files:

Dockerfile:

FROM gvenzl/oracle-xe:21
# If you have a backup file
COPY start.sh /opt/oracle/start.sh
COPY data.sql /container-entrypoint-initdb.d/data.sql
RUN mkdir -p /opt/oracle/dbbackupdmp
COPY mydb.dmp /opt/oracle/dbbackupdmp/mydb.dmp
USER root
RUN chown oracle:oinstall /opt/oracle/dbbackupdmp/mydb.dmp
USER oracle
Enter fullscreen mode Exit fullscreen mode

data.sql:

create user <user.name> IDENTIFIED BY <user.password>;
grant connect,resource,dba to <user.name>;
grant create session, grant any privilege to <user.name>;
grant unlimited tablespace to <user.name>;

create directory datapump as '/opt/oracle/dbbackupdmp';
grant read, write on directory datapump to <user.name>;
Enter fullscreen mode Exit fullscreen mode

start.sh:

impdp <user.name>/<user.password> directory=datapump dumpfile=mydb.dmp logfile=mydb.log schemas=<user.1>,<user.2>
Enter fullscreen mode Exit fullscreen mode

Build the Docker image using:

docker build -t my/oracle:21 .

Step 2: Running the Docker Container

Run the image as a Docker container:

docker run -d -p 1521:1521 -e ORACLE_PASSWORD=P@ssw0rd --name=myoracle21 my/oracle:21

Step 3: Restoring the Backup (Optional)

Access the running container:

docker exec -ti myoracle21 bash

Navigate to the /opt/oracle directory and execute the restoration script:

bash start.sh

Conclusion

Following these steps, you should have Oracle 21c running in a Docker container with your backup data restored. This setup is efficient for testing and development environments.

Thank you.

Buy Me A Coffee

Top comments (0)