Oracle Bronze12c勉強用環境をWSL2+docker on Oracle21cで構築
■目的
Oracle Bronze 12c試験勉強用にOracleコマンド実行環境を用意した際の手順を備忘録として残す。
■環境
・Windows10
・WSL2(Ubuntu 20.02)
・Docker version 20.10.8
・Oracle Single Instance 21.3
■前提条件
・WSL2とdockerのインストールが完了していること
・PCリソースがOracleインストール要件を満たしていること
※WSL2でdockerを利用する場合、以下のURLを参考にPID 1でsystemdを動かすよう設定変更しておくと楽。
■手順
基本的なインストール手順は以下のgithub参照。
1.以下のURLよりOracleバイナリファイル21.3cのインストール
ファイルダウンロード時にOracleアカウントへのログインが求められるため、事前にOracleアカウントを作成しておくこと。
https://www.oracle.com/database/technologies/oracle-database-software-downloads.html
ダウンロードファイル「LINUX.X64_213000_db_home.zip」をWSL2の以下のディレクトリに配置する。
$home/work/oracle
2.公式のdockerfileを用いてOracleイメージを作成する
cd $home/work/oracle
git clone https://github.com/oracle/docker-images.git
cd docker-images/OracleDatabase/SingleInstance/dockerfiles/21.3.0/
# 本体ファイルをdockerfiles/21.3.0/配下に移動
mv ~/work/oracle/LINUX.X64_213000_db_home.zip ./
# ビルド
cd ..
./buildContainerImage.sh -e 21.3.0 -e -i
## オプションの-eは、creates image based on 'Enterprise Edition'
## オプションの-iは、ignores the MD5 checksums (※OSXは必要)
3.作成したイメージからOracle Single Instanceコンテナを起動する
# mount用ディレクトリ作成
cd ~/work/oracle
mkdir ./oradata
chmod 777 ./oradata
# コンテナ起動
sudo docker run --name oracle \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=test \
-e ORACLE_PDB=ORCLPDB1 \
-e ORACLE_PWD=oracle \
-e INIT_SGA_SIZE=2000 \
-e INIT_PGA_SIZE=500 \
-e ENABLE_ARCHIVELOG=true \
-e NLS_LANG=Japanese_Japan.UTF8 \
-v $home/work/oracle/oradata:/opt/oracle/oradata \
oracle/database:21.3.0-ee
ここまでで練習用OracleデータベースとEnterprise Managerへのアクセスが可能となる。
Enterprise Maangerへアクセスする場合はブラウザから以下のURLにアクセスする。
https://localhost:5500/em
ユーザ名:system
パスワード:oracle
コンテナ名:空欄でOK
4.DBログイン
docker exec -it oracle bash
export NLS_LANG=Japanese_Japan.UTF8
sqlplus system/oracle@ORCLPDB1
5.DBを使わないときはコンテナを停止する
Oracleデータベースを起動しているだけでSGA領域用に多くのメモリが確保されてしまう。
docker stop oracle
その他.勉強用テーブルやデータ作成は以下のテキスト付属のsqlを実行すると楽。
よろしければサポートお願いします!頂いたサポート費は、執筆活動に使わせて頂きます。