見出し画像

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を実行すると楽。





よろしければサポートお願いします!頂いたサポート費は、執筆活動に使わせて頂きます。