LoginSignup
1
0

WSL2 で Oracle Database 19c インストール

Posted at

image.png

Oracle Database 19c ダウンロード

Oracle Database 19c for Microsoft Windows x64 (64-bit)をWindowsダウンロードフォルダにダウンロードしておきます。ダウンロードするにはログインが必要になります。
ダウンロード完了したら、LINUX.X64_193000_db_home.zipファイルを存在していることを確認します。

リポジトリのクローン

Ubuntu-22.04で起動してOracleのdocker-imagesリポジトリをクローンします。

PS > wsl --install --distribution Ubuntu-22.04
$ cd $HOME
$ git clone https://github.com/oracle/docker-images.git
Cloning into 'docker-images'...
remote: Enumerating objects: 17409, done.
remote: Counting objects: 100% (1986/1986), done.
remote: Compressing objects: 100% (288/288), done.
remote: Total 17409 (delta 1777), reused 1747 (delta 1686), pack-reused 15423
Receiving objects: 100% (17409/17409), 15.04 MiB | 12.50 MiB/s, done.
Resolving deltas: 100% (10300/10300), done.

ダウンロードしたファイルの配置

$ username=$(powershell.exe -Command 'echo $env:UserName' | tr -d '\r\n')
$ cp /mnt/c/Users/${username}/Downloads/LINUX.X64_193000_db_home.zip ~/docker-images/OracleDatabase/SingleInstance/dockerfiles/19.3.0/

Dockerインストール

別の記事を参照してDockerをインストールします。

ビルド

$ cd ~/docker-images/OracleDatabase/SingleInstance/dockerfiles
$ ./buildContainerImage.sh -v 19.3.0 -e -i

-v : バージョン指定
-e : Enterprise Edition
-i : MD5チェックサム無視

docker-compose.yaml 作成

$ cd $HOME
$ mkdir -p oracledb_19.3.0 && cd oracledb_19.3.0
$ cat << EOF >> docker-compose.yml
version: "3.9"
services:
  db:
    image: oracle/database:19.3.0-ee
    container_name: oracledb
    ports:
      - 1521:1521
      - 5500:5500
    volumes:
      - ./oradata:/opt/oracle/oradata
      - ./startup:/opt/oracle/scripts/startup
    environment:
      - ORACLE_SID=ORCLCDB
      - ORACLE_PDB=ORCLPDB1
      - ORACLE_PWD=password1      
    restart: always
EOF
$ mkdir -p oradata startup
$ chmod 777 oradata startup

コンテナ作成

$ docker compose -f ~/oracledb_19.3.0/docker-compose.yml up -d
$ docker compose -f ~/oracledb_19.3.0/docker-compose.yml logs -f

XDB initializedが見えたら、Ctrl+Cで抜けます。

Oracle 接続確認

$ docker exec -it oracledb sqlplus SYSTEM/password1@ORCLCDB
SQL> exit
$ docker exec -it oracledb sqlplus SYSTEM/password1@ORCLPDB1
SQL> exit

(オプション)パスワード無期限化

$ docker exec -it oracledb /bin/bash
bash-4.2$ sqlplus / as sysdba
SQL> alter session set container=CDB$ROOT;
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
SQL> alter session set container=ORCLPDB1;
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
SQL> exit
bash-4.2$ exit

HRスキーマ追加

$ docker exec -it oracledb /bin/bash
bash-4.2$ cd /opt/oracle/product/19c/dbhome_1/demo/schema/human_resources
bash-4.2$ sqlplus / as sysdba
SQL> alter session set container=ORCLPDB1;
SQL> @hr_main.sql hr users temp /tmp
SQL> GRANT ALL PRIVILEGES TO hr;
SQL> GRANT SELECT ANY DICTIONARY to hr;
SQL> exit
bash-4.2$ exit

システム識別子(SID)による接続設定

$ docker exec -it oracledb /bin/bash
bash-4.2$ cd $ORACLE_HOME/network/admin
bash-4.2$ echo "USE_SID_AS_SERVICE_LISTENER=on" >> listener.ora
bash-4.2$ lsnrctl stop listener
bash-4.2$ lsnrctl start listener
bash-4.2$ exit
$ docker compose -f $HOME/oracledb_19.3.0/docker-compose.yml restart

SQL Developer で接続確認

SQL Developer最新バージョン(23.1)をダウンロードして実行して接続確認します。

ORCLCDB

  • ユーザー名 : SYSTEM
  • パスワード : password1
  • ホスト名 : localhost
  • ポート : 1521
  • SID : ORCLCDB

ORCLPDB1

  • ユーザー名 : SYSTEM
  • パスワード : password1
  • ホスト名 : localhost
  • ポート : 1521
  • SID : ORCLPDB1
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0