【初学者】OracleMasterへの道「DBインスタンスのコンテナ作成編」Part3

どうも、mosukyです。

題名の通り、前回(Part1)は、Oracle DBAの資格を取るために、実はVirtualBoxでOracleインスタンスの作成を行っていたのですが、以下の理由からdockerでインスタンス建ててぱぱっと、学習を行っていました。

・環境がぐちゃぐちゃになってしまった
・あまりにも重たくて使いづらい
・あまりもバッテリーを食う
・あまりにも不便

https://note.com/weekly_report/n/n2cd3cea8833e

てな、具合でSQLの勉強のために改めて、docker上にオラクルインスタンスを作成しましたので、こちらも備忘録として。。。

DockerによるOracleインスタンスの作成

https://kita-note.com/oracle-install

上記サイトを参考にしたのですが、いまいち出来が良くなかったので、いろんなところからの寄せ集めになりますが、私が行った手順を記載しておきます。

ただ、Docker導入編は一番上のサイトを参考にしてくださいw

(ちなみに実行環境はmacになりますので、windowsユーザはいろいろ読み替えて実施してください。)


1.まずは、適当な作業フォルダを作成してください。

私は「oracleDocker」という名称にしました。

2.Gitからビルドスクリプトを持ってくる。

手順1で作成した、作業フォルダをカレントディレクトリにした状態で、以下のコマンドします。

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

3.Oracleのバイナリファイルの取得及び配置

Oracle公式より、Oracleの「Linux x86-64」版のバイナリファイルをダウンロードします。
(OracleのIDが必要になるので、作成してください)

ダウンロードが完了したら、gitで落としてきた「docker-images」の配下の該当フォルダ(以下に記載)に、zipファイルを配置してください。

"手順1作成作業フォルダー"/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0/"ダウンロードファイル.zip"
(ex. oracleDocker/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0/LINUX.X64_193000_db_home.zip

4.ビルドスクリプトの実行

カレントディレクトリを先程配置した上位階層にあたる「dockerfiles」で、以下のコマンド(sh)を実行して、dockerのイメージを作成いたします。

cd "手順1作成作業フォルダー"/docker-images/OracleDatabase/SingleInstance/dockerfiles
./buildContainerImage.sh -v 19.3.0 -e -i -t 0racle1930

オプションについてですが、
-v:Oracleのバージョン
-t:docker image name
-e:Enterprise Edition
-i:MD5 のチェックサムを無視する(無視しないとなんかエラーになるらしい)
のようです。

以下の実行結果が出れば成功です。

 Oracle Database container image for 'ee' version 19.3.0 is ready to be extended: 
    
    --> oracle1930

  Build completed in 469 seconds.

5.docker-compose.yaml を作成

次に、/docker-images/OracleDatabase/SingleInstance/dockerfiles上で、docker-compose.yamlを作成します。

設定内容は以下の感じ。

version: "3.9"
services:
  db:
    image: oracle1930
    ports:
      - 1521:1521
      - 5500:5500
    volumes:
      - ./oradata:/opt/oracle/oradata
    environment:
      - ORACLE_PWD=Oracle19
      - ORACLE_PDB=oracle

内容としては、
・portの指定(1521はoracleリスナーで5500はEnterprise Managerのポート)
・volumesの指定(以下で作成するデータ領域の指定)
・environmentの指定(oracleのパスワードとデータベースの指定)

次に、データ領域用にフォルダを作成いたします。

mkdir oradata
chmod 777 oradata

6.コンテナの作成

カレントディレクトリを手順5でファイルおよびフォルダを作成した箇所にして、コンテナの作成を行います。

cd "作業フォルダー"/docker-images/OracleDatabase/SingleInstance/dockerfiles
docker compose up

コンテナの作成が完了したら、以下の表示が出ます。

#########################
 DATABASE IS READY TO USE! 
#########################

7. Oracle に接続する

最後に別窓を開いて、同様に、カレントディレクトリーを変更した状態で、sqlplusを用いて、oracleに接続できたことを確認して終了です。

cd "作業フォルダー"/docker-images/OracleDatabase/SingleInstance/dockerfiles
docker compose exec db sqlplus SYSTEM/Oracle19@ORCLCDB

こんな感じ。

ちなみに、SQL Developperでも以下の情報で接続出来ます!

※パスワードはymlで設定したやつです。


今回で、oracleインスタンスのコンテナイメージの作成が出来ましたので、今後は手順の6と7を実施いただければすぐにオラクルインスタンスに接続できるようになります。


では、SQLの勉強がんばります。。。


参考サイト

以下、参考にしたサイト達です。

https://knowledge.sakura.ad.jp/16862/#:~:text=%E8%AA%AC%E6%98%8E%E3%81%97%E3%81%BE%E3%81%99%E3%80%82-,Docker%20Compose%E3%81%A8%E3%81%AF,%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B%E3%83%84%E3%83%BC%E3%83%AB%E3%81%A7%E3%81%99%E3%80%82

https://qiita.com/gorilla0513/items/f22e8cce4e08da031abe

https://zenn.dev/msksgm/articles/20211225-oracle-database-19c-docker

https://qiita.com/kawakawaryuryu/items/ae51bee866a57f178fe5



この記事が気に入ったらサポートをしてみませんか?