Oracle Database 19c 環境をDockerで作成してSQL Developerで接続する
概要
Oracle Silver SQL を受験するので、勉強用に Oracle Database 19c 環境を Docker で作成しました。
環境構築の方法から、SQL Developer を用いて接続するまでを記事にします。
12c の環境構築する方法が過去の記事にありましたので、環境構築の箇所は主に以下の記事を参考にさせていただきました。
構築環境
- macOS
- Docker
- docker-compose
手順
1.Oracle Database 19c をダウンロード
以下の URL から Oracle DataBase 19c の Linux x86-64 をダウンロードします。
エディションがいろいろありますが、今回は 19.3 - Enterprise Edition (also includes Standard Edition 2) をダウンロードしました。
ダウンロードには、Oracle のアカウント(Oracle プロファイル)が必要ですので、作成しましょう。
コンテナにビルドできる、バージョンは以下のビルド用のREADME に記述されています。
・ Oracle Database 21c (21.3.0) Enterprise Edition, Standard Edition 2 and Express Edition (XE)
・ Oracle Database 19c (19.3.0) Enterprise Edition and Standard Edition 2
・ Oracle Database 18c (18.4.0) Express Edition (XE)
・ Oracle Database 18c (18.3.0) Enterprise Edition and Standard Edition 2
・ Oracle Database 12c Release 2 (12.2.0.2) Enterprise Edition and Standard Edition 2
・ Oracle Database 12c Release 1 (12.1.0.2) Enterprise Edition and Standard Edition 2
・ Oracle Database 11g Release 2 (11.2.0.2) Express Edition (XE)
2.リポジトリをクローン
公式から docker image をビルドする用のリポジトリが用意されています。
このリポジトリをクローンして、ディレクトリに移動します。
git clone https://github.com/oracle/docker-images.git
cd docker-images
3. ダウンロードしたファイルを配置する
1 でダウンロードした zip ファイルをOracleDatabase/SingleInstance/dockerfiles/19.3.0
に配置します。
cd OracleDatabase/SingleInstance/dockerfiles/19.3.0
mv ~/Downloads/LINUX.X64_193000_db_home.zip .
4. ビルドする
READMEを参考にして、ビルドします。
バージョンは 19.3.0 なので -v 19.3.0
を指定、Enterprise Edition なので -e
を指定しました。-i
は MD5 のチェックサムを無視するらしいです、これがないとうまく Oracle を起動できなかったので、指定しました。
./buildContainerImage.sh -v 19.3.0 -e -i
以下のメッセージがでたら成功です。
Oracle Database container image for 'ee' version 19.3.0 is ready to be extended:
--> oracle/database:19.3.0-ee
Build completed in 663 seconds.
5. docker-compose.yaml を作成
/docker-images/OracleDatabase/SingleInstance/dockerfiles
にdocker-compose.yaml
を作成します。
後述するoradata
と同じ階層にあれば、どこのディレクトリでも問題ないです。
version: "3.9"
services:
db:
image: oracle/database:19.3.0-ee
ports:
- 1521:1521
- 5500:5500
volumes:
- ./oradata:/opt/oracle/oradata
environment:
- ORACLE_PWD=Oracle19
- ORACLE_PDB=oracle
データを保存しておくための、ディレクトリ(oradata
)を作成します。
mkdir oradata
chmod 777 orada
6. コンテナを作成
コンテナを作成します。
docker compose up
docker 起動ログに以下の表示がされたら成功です。
#########################
DATABASE IS READY TO USE!
#########################
7. Oracle に接続する
以下のコマンドで、Oracle に入ります。
docker compose exec db sqlplus SYSTEM/Oracle19@ORCLCDB
以下のように、接続できたら成功です。
SQL*Plus: Release 19.0.0.0.0 - Production on Sat Dec 25 08:13:50 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Last Successful login time: Sat Dec 25 2021 08:07:58 +00:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL>
8. SQL Developer で接続する
以下から、SQL Developer をダウンロードします。
ダウンロードできたら、左上の緑色の「+」マークをクリックすることで、接続の設定がでてきます。
以下のように入力した後に「接続」ボタンをクリックすると、接続できます。
項目 | 入力内容 |
---|---|
Name | Oracle docker(任意) |
データベースのタイプ | Oracle |
ユーザー名 | system |
パスワード | Oracle19 |
ホスト名 | localhost |
ポート | 1521 |
SID | ORCLCDB |
Discussion
初めまして。
こちらの記事を基にoracleDBのコンテナを作成しようとしているものです。
こちらの方法で構築したところdocker compose up のコマンドで下記エラーが起きるのですが、何が原因があレバ教えていただけないでしょうか?
よろしくお願い致します。
エラーメッセージ
yaml: line 1: did not find expected ',' or '}'