見出し画像

OracleDB検証|ローカルPCにOracleDB検証環境を導入

はじめに

こんにちは。株式会社SHIFTでインフラエンジニアをしているn.hikです。

現在、機器リプレースに伴う新環境への移行案件に携わっていますが、その中でOracleDBデータの移行作業があります。

まずはOracleDBの操作感に慣れること、そしてデータ移行コマンドを検証するため、OracleDBを検証できる環境をローカルPCを使って導入することにしました。

本記事は、ローカルPCにOracleDB検証環境を導入した際の手順を書いています。簡単に作って消せる環境で触ってみたい、OracleDBの勉強用に環境が欲しい、という方の参考になれば幸いです。

今回の環境は、ローカルPC(Windows 10)のWSL2(Windows Subsystem for Linux)にDocker、Docker Composeを導入し、OracleDBコンテナを作成しています。


|環境情報

※2022年6月時点

  • Windows 10 Pro (20H2)

  • WSL2 Ubuntu 20.04

  • Docker Engine ver.20.10.14

  • docker-compose ver.1.25.0

  • Oracle DB 18.4.0-xe (Express Edition)


|WSL2とDockerのインストール

まずは、WSL2とDockerをインストールします。

手順は以下の記事のDockerのインストールまでを参照ください。

Windows PCで簡易Kubernetes環境(minikube)を構築する道のり

|Docker Composeのインストール

次に、Docker Composeをインストールします。

公式ドキュメントがありますのでこちらを参考にインストールします。

Ubuntu 20.04へのDocker Composeのインストールおよび使用方法

|OracleDBリポジトリのダウンロード

次に、OracleDBコンテナを作成するためのリポジトリを git から clone しますが、先に作業ディレクトリを作成し、そこにリポジトリを配置します。

$ mkdir /home/username/oracle-training

$ cd /home/username/oracle-training

リポジトリを clone します。

$ sudo git clone https://github.com/oracle/docker-images.git


|OracleDBのビルド

次に、ダウンロードしてきたリポジトリを使用して、Dockerイメージをビルドします。ダウンロードしたものの中にビルド用のスクリプトがありますので、これを実行します。

今回は評価版のOracleDBを使用します。なお評価版の場合、バージョンは 21.3.0 か 18.4.0 が提供されていますので、どちらかを指定してください。

$ cd /home/username/oracle-training/docker-images/OracleDatabase/SingleInstance/dockerfiles/

$ sudo ./buildContainerImage.sh -v 21.3.0 -x -i
もしくは
$ sudo ./buildContainerImage.sh -v 18.4.0 -x -i

ビルド完了後、イメージを確認してみます。

$ sudo docker images
REPOSITORY                 TAG         IMAGE ID       CREATED              SIZE
oracle/database            18.4.0-xe   b0d80cf98f32   About a minute ago   5.89GB
oraclelinux                7-slim      41388a53234b   5 days ago           133MB


|Docker Composeの設定

次に、OracleDBコンテナ用の設定ファイルと、共有ディレクトリを準備します。

./oracle-training/docker-compose.yml を作成し、以下を入力します。

---
version: '3'

services:
  db1:
    image: oracle/database:18.4.0-xe
    container_name: oracle18c
    volumes:
      - ./oradata:/opt/oracle/oradata
    environment:
      - ORACLE_PWD=passw0rd

volumes:
これはWSL2上のディレクトリ./oradataを、OracleDBコンテナ上のディレクトリ/opt/oracle/oradataにマウントさせる設定になります。

environment:
これは環境変数を定義しています。上記ではパスワードを指定していますので、任意の値に変更してください。なおPDB名を指定しない場合、デフォルトで XEPDB1 がセットされます。変更したい場合は

- ORACLE_PDB=<任意のPDB名>

を追記してください。

続いて作業ディレクトリを作成します。chmodによって、OracleDBコンテナから共有ディレクトリを参照できるように権限を付与します。

$ mkdir ./oracle-training/oradata

$ sudo chmod 777 ./oracle-training/oradata


|OracleDBコンテナの実行

設定が完了したので、コンテナを実行します。

docker-compose.ymlが配置されている階層でコマンドを実行します。

$ sudo docker-compose up -d

作成状況を確認するには以下のコマンドを実行します。

$ sudo docker-compose logs

以下のメッセージが出ていれば完了となります。

oracle18c | #########################
oracle18c | DATABASE IS READY TO USE!
oracle18c | #########################

では、OracleDBコンテナに接続してみましょう。

$ sudo docker exec -it oracle18c sh

これでOSに接続できたと思います。

OSからDBに接続してみます。PDB名を変更している場合はXEPDB1を読み替えてください。

$ sqlplus sys/passw0rd@XEPDB1 as sysdba

SQLに接続できたと思います。

なお、WSL2から直接SQLに接続したい場合は以下のコマンドを実行します。

docker exec -it oracle18c sqlplus sys/passw0rd@XEPDB1 as sysdba

その他、よく使うであろう docker-compose コマンドを以下に記載します。

# コンテナの状態確認
$ docker-compose ps -a

# コンテナの起動
$ docker-compose start

# コンテナ停止
$ docker-compose stop

# コンテナ削除
$ docker-compose rm


以上でOracleDBコンテナの作成が完了です。あとはDBの検証あるのみです。

dockerを使えば簡単に環境が作れて便利ですね。皆様の参考になれば幸いです。


執筆者プロフィール:n.hik
SES事業者にてインフラエンジニアとして従事後、SHIFTにジョイン。
現在はインフラ設計や移行計画の作成支援業務に携わっている。

お問合せはお気軽に
https://service.shiftinc.jp/contact/

SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/

SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/

SHIFTの導入事例
https://service.shiftinc.jp/case/

お役立ち資料はこちら
https://service.shiftinc.jp/resources/

SHIFTの採用情報はこちら 
https://recruit.shiftinc.jp/career/