Silver SQL 試験勉強用に構築する。
環境
- 2024/02/23 実施
- MacOS Sonoma
- Git導入済み
- Docker / Docker Desktop 導入済み
- From Homebrew
手順
- 1. Oracleプロファイル(アカウント)作成
- 2. Oracle Database 19cのファイルをDL
- 3. リポジトリ取得
- 4. DLしたファイルをリポジトリに配置
- 5. Dockerイメージビルド
- 6. docker-compose.yml作成
- 7. コンテナ作成
- 8. 動作確認
- 9. クライアントツール導入
1. Oracleプロファイル(アカウント)作成
DatabaseのファイルをDLするのに必要。
2. Oracle Database 19cのファイルをDL
バージョンについて
構築時は18c・19c・21c・23cがあった。
- 18c・21cは革命期と呼ばれるバージョンでサポートが短い
- 23cは新しすぎる(し、今回は試験の勉強用なのでそんな新機能いらない)
- 19cがLTS
というわけで、下の方にある19cのやつを選ぶのだが、注意点がいくつか。
- コンテナはLinuxなので、「Linux x86-64」を使う
- エディションは「EE includes SE2」(といっても一つしかないが)
- MacがIntelか、M1チップかで変わる(はまった)
- Intelの人はx86なので、「Oracle Database 19c for Linux x86-64」の方
- M1の人はARM86なので、「Oracle Database 19c for LINUX ARM (aarch64)」の方
3. リポジトリ取得
Database以外にもいろんなものが入っているが、今回はデータベース構築。
docker-images/OracleDatabase/SingleInstanceのREADMEを参考に進める。
git clone https://github.com/oracle/docker-images.git
cd docker-images/OracleDatabase/SingleInstance/dockerfiles
4. DLしたファイルをリポジトリに配置
mv ~/Downloads/LINUX.X64_193000_db_home.zip ./19.3.0/
5. Dockerイメージビルド
READMEに則り。
-v
はバージョン、-e
はEnterprise Edition
(-i
をつけるとchecksumをしないよう。もしエラーが起きたらつけてみて。自分はエラー起きなかった)
./buildContainerImage.sh -v 19.3.0 -e
6. docker-compose.yml作成
自分はvolumeを作成した。
作成場所はどこでもいいが、dockerfiles/配下がわかりやすいかな。(カレントディレクトリ)
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
volumes:
oradata:
7. コンテナ作成
-d
でバックグラウンド実行。
docker compose up -d
下記が出れば完了。(出るまで結構時間かかる)
#########################
DATABASE IS READY TO USE!
#########################
8. 動作確認
sqlplus [ユーザー名]/[パスワード]@[connect_identifier?]
のよう
docker compose exec db sqlplus SYSTEM/Oracle19@ORCLCDB
下記出ればOk。
SQL>
9. クライアントツール導入
色々あるけど、試験勉強なのでOracle SQL Developerは入れておく。
(これはサインイン不要っぽい)
Mac IntelはOSXの方、Mac M1はARM64のほうかな。
インスコしたら、左上の緑+
を押下。
設定項目は下記。
項目 | 入力内容 |
---|---|
Name | Oracle 19c docker(任意) |
データベースのタイプ | Oracle |
ユーザー名 | system |
パスワード | Oracle19 |
ホスト名 | localhost |
ポート | 1521 |
SID | ORCLCDB |
ほかも色々あるけど好みで。自分なら
- (Winのみ)A5:SQL
- (Win/Mac)DBeaver
のどっちかかな(独断と偏見)。設定は項目名とか違えど、大体同じのはず。
参考
https://zenn.dev/msksgm/articles/20211225-oracle-database-19c-docker#3.-%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%97%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E9%85%8D%E7%BD%AE%E3%81%99%E3%82%8B
https://zenn.dev/ncdc/articles/ff5a573eac5d22
https://github.com/oracle/docker-images/tree/main/OracleDatabase/SingleInstance