🙄

Oracle21c XE(WSL2+Docker)のインストール手順

2021/12/01に公開

はじめに

プロジェクトでOracleを使っている方も多いと思いますので、WSL2+Dockerを利用したOracle21c XEのインストール手順をまとめてみました。また、Oracle Developer Tools for VSCodeの利用方法についても紹介します。これにより、Remote SSH上でも、GUIでSQLが操作できるようになるので、便利になります。

以前は、19cでのインストール手順を記載していましたが、ローカル環境のメモリ使用量が多いため、デフォルトを21cに切り替えました。

Oracle21c XEのインストール

Oracleから公式でDockerイメージが提供されていますので、記載されている手順に従い、インストールを行います。19cをインストールする場合は、ここからLinux x86-64版をダウンロードし、docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0に事前コピーする必要がある。

  1. 以下のコマンドでdockerイメージを作成する。
$ 
mkdir oracle
cd oracle
git clone https://github.com/oracle/docker-images.git
cd docker-images/OracleDatabase/SingleInstance/dockerfiles/
./buildContainerImage.sh -x -v 21.3.0
→ 19cの場合は、-e -v 21.3.0
  1. docker-compose.ymlを作成し、コンテナを起動する。このとき、コンテナを削除しても、データが残るように/home/oracle/oradataを作成している。
oracle-docker/docker-compose.yml
version: '3'
services:
  database:
    image: oracle/database:21.3.0-xe
    volumes:
      - /home/oracle/oradata:/opt/oracle/oradata
    ports:
      - 1521:1521
      - 5500:5500
oracle-docker/docker-compose.yml(19cの場合)
version: '3'
services:
  database:
    image: oracle/database:19.3.0-ee
    volumes:
      - /home/oracle/oradata:/opt/oracle/oradata
    environment:
      NLS_LANG: "Japanese_Japan.UTF8"
    ports:
      - 1521:1521
      - 5500:5500
$
sudo mkdir -p /home/oracle/oradata
sudo chmod 777 /home/oracle/oradata
docker-compose up -d
docker-compose logs -f
  1. 作成したコンテナに接続し、sysユーザのパスワード変更する。
$ ./setPassword.sh <パスワード>

Oracle Developer Tools for VSCode

VSCodeには、Oracle Developer ToolsというOracle用のDBツールが存在します。使用する際には.NET Core Runtime 3.1が必要になるので、ここの内容に従い、インストールを行ってください。

$ lsb_release -a
→ Ubuntuのバージョンをチェック。今回は20.04の手順で実施。
$ 
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-3.1
→ 公式サイトは6.0なので、3.1に変更している。

スキーマおよびテーブル作成

Oracle Developer Tools for VSCodeをインストールすると、サイドバーに表示されているOracle Explorerが追加されます。そこから、以下の手順に従って、スキーマおよびテーブル作成を行っていきます。

  1. サイドバーにあるOracle Explorerで、DATABASEで+を選択し、DB接続を行う。
    ・Connection Type : Basic
    ・Database host name : localhost
    ・Service name : XEPDB1
    ・Role : SYSDBA
    ・User name : SYS
    ・Password : <SYSのパスワード> ※保存する場合は、Save passwordをチェック
  2. 作成した接続先に対して、右クリックにて「Open New SQL File」を選択し、trainingユーザを作成する。Ctrl-Eで選択したSQLのみ、Ctrl-Rで全SQLが実行できる。
-- スキーマを作成する。
create user training identified by training default tablespace users temporary tablespace temp;
grant create session, resource, unlimited tablespace to training;
-- パスワードを無期限にする。
alter profile default limit password_life_time unlimited;
  1. 作成したスキーマに対して、DB接続する。
    ・Connection Type : Basic
    ・Database host name : localhost
    ・Service name : XEPDB1
    ・Role : Default
    ・User name : TRAINING
    ・Password : TRAINING
  2. 作成したスキーマに対して、テーブル操作を行ってみる。
create table sample (id int);
insert into sample values (1);
select * from sample;
drop table sample;
  1. 他にも、公式サイトには色々な機能が紹介されているので、使ってみてください。
    ・SQLがハイライト表示され、自動補完できる。
    ・SQL実行時にエラーが発生した場合、エラー箇所が赤波線で表示される。
    ・実行結果は、CSVやJSON形式でファイル保存できる。
    ・ファイル保存時のデリミタ(デフォルトはカンマ)や、文字列の修飾子(デフォルトはなし)が設定で変更できる。
    ・自動コミット(デフォルトON)は、設定またはコマンドで変更できる。

おわりに

今回は、ローカル環境で構築したOracleに対してDB操作を行っていますが、クラウド上で構築したOracleに対してもRemote SSHを経由して、同様な操作が可能です。sqlplusより使いやすく、1521ポートも利用しないので、重宝するかと思います。

以前、WSL2上のOracle(localhost:1521)がSQL接続ツールで繋がらなかったのですが、最近は利用できるようなったので、不要な記事を削除しました。余談ですが、私のおすすめツールはSQL Workbench/Jです。

Discussion