Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
2017/11/17
JPOUG in 15 minutes
Oracle Database
(CDB) o...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので
す。また、情報提供を唯一の目的とするも...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
本日お伝えしたいこと(個人の見解です)
1. 「空のデータベースを5分で作成したい」
→Oracle DB用...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
OracleとDockerの関係
• https://developer.oracle.com/docker...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
Docker StoreのOracle製品
5
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
Oracle Database on Docker の対応状況
• My Oracle Support No...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
Docker Imageの入手方法は2通り
下記のいずれかがOracle公式のもの
1. ビルド済みのイメー...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
Docker Store / Oracle Container Repository
• Docker St...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
イメージの制限事項と考慮事項
• Oracle Container レジストリ/Docker Store で...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
GitHub上でDocker ビルドファイルが利用可能
• リポジトリ: https://github.co...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
Docker 上の Oracle Database の使い道
11
開発端末 ネットワーク
設定
開発リソー...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
簡単なDEMO
公開されているイメージファ
イルを使ってDB作成
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモ環境
• Laptop上のVirtualBoxを利用
• 仮想マシン(Docker ホスト)
– Ora...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
ディスク領域
14
Docker ホスト
/
home
oracle
oradata
oradata2
va...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモ内容①(DB12.2 EEの環境を5分で作成・引渡)
• Oracle Database 12.2.0....
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモ内容①(DB12.2 EEの環境を5分で作成・引渡)
• Docker Imageの確認(既にダウンロー...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモ内容①(DB12.2 EEの環境を5分で作成・引渡)
• コンテナ作成の進捗はコマンドで確認できる
17...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモ内容①(DB12.2 EEの環境を5分で作成・引渡)
• PDBに接続してデータをロード
18
SQL>...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモで分かったこと
•依頼して5分後にはデータベースが稼働するコンテナ
が出来上がる
•稼働するデータベース...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモ内容②(①で作成したDBの複製を作成・引渡)
20
コンテナ1
(dockerDB1)
コンテナ2
(d...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモ内容②(①で作成したDBの複製を作成・引渡)
• 既存のPDBの複製を作る
21
SQL> create...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモ内容②(①で作成したDBの複製を作成・引渡)
• PDBをオープン
22
SQL> alter plug...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモ内容②(①で作成したDBの複製を作成・引渡)
• 同じデータベースを持つ新規コンテナを作成する
• ①で...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
コンテナ作成完了を待っている間に・・・
なぜCDB構成?Dockerとの使い分けは?開発部門の答え
「不必要...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモ内容②(①で作成したDBの複製を作成・引渡)
• コンテナへの接続
25
# docker exec -...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモで分かったこと
•特定のデータが入ったデータベースが欲しい場合は
PDBのクローンが便利
•Docker...
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
まとめ
•テスト開発環境としてシングル・インスタンスの
データベースを手軽に作りたい場合にDockerは便利...
Oracle Database (CDB) on Docker を動かしてみる
Upcoming SlideShare
Loading in …5
×

Oracle Database (CDB) on Docker を動かしてみる

2,704 views

Published on

日本オラクル株式会社Database ソリューション部
佐々木亨

Published in: Data & Analytics
  • Be the first to comment

Oracle Database (CDB) on Docker を動かしてみる

  1. 1. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 2017/11/17 JPOUG in 15 minutes Oracle Database (CDB) on Docker を動かしてみる日本オラクル株式会社 Database ソリューション部 佐々木亨
  2. 2. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので す。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むこ とはできません。以下の事項は、マテリアルやコード、機能を提供することをコミット メント(確約)するものではないため、購買決定を行う際の判断材料になさらな いで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時 期については、弊社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 2
  3. 3. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 本日お伝えしたいこと(個人の見解です) 1. 「空のデータベースを5分で作成したい」 →Oracle DB用Dockerイメージによるコンテナ作成が便利 2. 「特定のデータを持つデータベースを手軽に作成したい」 →Docker 上で動作する PDB 機能の利用が便利 これらをデータベースの稼働するDocker コンテナを作成す るデモを通じてお伝えします 3
  4. 4. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. OracleとDockerの関係 • https://developer.oracle.com/docker • OracleはOracle製品をDockerコンテナ リポジトリに多く登録しています • Oracle Database, Linux, MySQL, WebLogic 等 4
  5. 5. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. Docker StoreのOracle製品 5
  6. 6. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. Oracle Database on Docker の対応状況 • My Oracle Support Note – “Oracle Support for Database Running on Docker” (Doc ID 2216342.1) – “Docker(ドッカー)上で動作するOracleデータベースのサポートについて” (Doc ID 2220780.1) • Docker 上の Oracle Database は下記条件でサポートされる – Linux のバージョン(Dockerホスト) • Oracle Linux 7 - UEK 4 • Red Hat Enterprise Linux 7 – RAC構成はサポートしていない 6 Oracle RAC support is coming
  7. 7. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. Docker Imageの入手方法は2通り 下記のいずれかがOracle公式のもの 1. ビルド済みのイメージをダウンロード – Oracle Container Registry https://container-registry.oracle.com – Docker Store https://store.docker.com 2. ビルド用のファイルを入手して自分でイメージを作成 – GitHub上のDocker ビルドファイル https://github.com/oracle/docker- images 7
  8. 8. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. Docker Store / Oracle Container Repository • Docker Store レジストリまたは、Oracle Container レジストリでOracle Database Enterprise Edition 12.2.0.1 Image が利用可能 – https://store.docker.com – https://container-registry.oracle.com 8
  9. 9. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. イメージの制限事項と考慮事項 • Oracle Container レジストリ/Docker Store で提供されているイメージでは下記機能は サポートされません – RAC 構成 – Data Guard 構成 – DB Option とパッチ適用 • 考慮事項 – デフォルトだとコンテナ削除するとDBも削除される。コンテナ削除後もDBを残したい場合はコンテナ作成時に オプション指定して別VolumeにDB作成する • リソース要件 – ディスクスペース:8GB以上、メモリ:2GB以上 9 [参考] https://store.docker.com/images/ oracle-database-enterprise-edition
  10. 10. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. GitHub上でDocker ビルドファイルが利用可能 • リポジトリ: https://github.com/oracle/docker-images • 自分でOracle DatabaseのDockerイメージを作成する方法 • 12.2.0.1 EE/SE2, 12.1.0.2 EE/SE2, 11.2.0.2 XE のためのビルドファイル 10
  11. 11. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. Docker 上の Oracle Database の使い道 11 開発端末 ネットワーク 設定 開発リソースの準備 VMイメージの確認 追加の設定など (VM/OS/DB) ネットワーク 接続 VMのサーバー ストレージ などサイジング リソースの 払い出し依頼 Dockerや Oracle Cloud データセンターやサーバールームの準備 開発端末開発チーム 開発チーム DockerやOracle Cloudの準備 数週間 数週間 開発リソースの準備 数時間 セットアップ • セルフサービスですぐに 払い出し • 必要に応じたリソースの 拡張縮退 • Oracle CloudならHW 資産の管理低減、利用 した分の従量課金 課題の例 Dockerや Oracle Cloud を利用
  12. 12. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 簡単なDEMO 公開されているイメージファ イルを使ってDB作成
  13. 13. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモ環境 • Laptop上のVirtualBoxを利用 • 仮想マシン(Docker ホスト) – Oracle Linux 7.4 UEK4 – メモリ8GB – Docker コンテナのローカルディスク用の領 域 40GB • 仮想マシン上にDocker Engineをイン ストール済み 13 VirtualBox 仮想マシン(Dockerホスト) コンテナ1 (デモ①で作成) Docker Engine コンテナ2 (デモ②で作成)
  14. 14. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. ディスク領域 14 Docker ホスト / home oracle oradata oradata2 var lib docker … • コンテナ1 • コンテナ2 ローカルスト レージ領域 コンテナ1 (dockerDB1) コンテナ2 (dockerDB2) /ORCL (DB用) /ORCL (DB用) /dev/sdb 40G 3.4G 35G 9% /var/lib/docker /dev/sdc 12G 18M 9.6G 1% /home/oracle/oradata /dev/sdd 12G 18M 10G 1% /home/oracle/oradata2
  15. 15. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモ内容①(DB12.2 EEの環境を5分で作成・引渡) • Oracle Database 12.2.0.1 EE の環境を 5分で作成して開発チームに引き渡す – Oracle Container レジストリの公式イメージ を使う – Oracle Database (Single Instance) が動作す るコンテナを作成する – コンテナ内に接続し、データベースに接続する – データを投入する 15 コンテナ1 (dockerDB1) /ORCL (DB用) ORCL
  16. 16. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモ内容①(DB12.2 EEの環境を5分で作成・引渡) • Docker Imageの確認(既にダウンロードしてきている) 16 [root@mydocker ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE store/oracle/database-enterprise 12.2.0.1 12a359cd0528 2 months ago 3.44 GB • Docker コンテナの作成 # docker run -d --name dockerDB -v /home/oracle/oradata:/ORCL store/oracle/database-enterprise:12.2.0.1 • “–v” オプションで外部ボリュームとして /home/oracle/oradataを指定、コン テナ内の /ORCL にマウントする – Docker コンテナ作成時に/ORCLに$ORACLE_HOMEやデータファイルなどが配置される
  17. 17. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモ内容①(DB12.2 EEの環境を5分で作成・引渡) • コンテナ作成の進捗はコマンドで確認できる 17 # docker logs dockerDB # docker ps -a • コンテナへの接続 # docker exec -it dockerDB bash • データベースに接続 $ sqlplus / as sysdba SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 READ WRITE NO
  18. 18. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモ内容①(DB12.2 EEの環境を5分で作成・引渡) • PDBに接続してデータをロード 18 SQL> alter session set container=ORCLPDB1; SQL> create user demo1 identified by Oracle12c; SQL> grant connect, resource to demo1; SQL> alter user demo1 quota unlimited on users; SQL> conn demo1/Oracle12c@ORCLPDB1 SQL> create table demo1 (col1 number); SQL> insert into demo1 values (1); SQL> commit; SQL> select * from demo1; • PDBへの接続用のTNSNAMES.ORAエントリはコンテナ作成時点で追加済 – /u01/app/oracle/product/12.2.0/dbhome_1/admin/ORCLCDB/tnsnames.ora
  19. 19. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモで分かったこと •依頼して5分後にはデータベースが稼働するコンテナ が出来上がる •稼働するデータベースはCDB構成である 19
  20. 20. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモ内容②(①で作成したDBの複製を作成・引渡) 20 コンテナ1 (dockerDB1) コンテナ2 (dockerDB2) /ORCL (DB用) /ORCL (DB用) ORCLPDB1 ORCLPDB2 A) PDB 複製 Docker ホスト / home oracle oradata oradata2 var lib docker … • コンテナ1 • コンテナ2 ローカルスト レージ領域 B) データを丸ごと コピーして、 新規コンテナ作成 ORCLPDB1
  21. 21. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモ内容②(①で作成したDBの複製を作成・引渡) • 既存のPDBの複製を作る 21 SQL> create pluggable database ORCLPDB2 from ORCLPDB1 FILE_NAME_CONVERT=('/u02/app/oracle/oradata/ORCLCDB/orclpdb1/','/u0 2/app/oracle/oradata/ORCLCDB/orclpdb2/'); Pluggable database created. SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB1 READ WRITE NO 4 ORCLPDB2 MOUNTED
  22. 22. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモ内容②(①で作成したDBの複製を作成・引渡) • PDBをオープン 22 SQL> alter pluggable database ORCLPDB2 open; • 新規PDBに接続し、データ確認 SQL> !vi /u01/app/oracle/product/12.2.0/dbhome_1/admin/ORCLCDB/tnsnames.ora SQL> conn demo1/Oracle12c@ORCLPDB2 SQL> show con_name SQL> select * from demo1;
  23. 23. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモ内容②(①で作成したDBの複製を作成・引渡) • 同じデータベースを持つ新規コンテナを作成する • ①で作成したデータベースを停止する 23 # cp -rp /home/oracle/oradata/* /home/oracle/oradata2/ • コピーしたファイルを使う新規コンテナを作成 # docker run -d --name dockerDB2 -v /home/oracle/oradata2:/ORCL store/oracle/database-enterprise:12.2.0.1 • Dockerホスト上でDB用の外部ディスク上のデータをコピー SQL> conn / as sysdba; SQL> shutdown immediate; • コンテナ作成時に、/ORCL 内にソフトウェア、データファイルが存在する場合 は、新規にイメージの解凍はせず、配置済みのDBを起動するのみの動作となる
  24. 24. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. コンテナ作成完了を待っている間に・・・ なぜCDB構成?Dockerとの使い分けは?開発部門の答え 「不必要な複製を避ける点でDockerとMTAは共通点がある」 「DBをプロビジョニングするベストな方法はMTA。共存は可能」 • サーバーのリソースを有効活用するという点では MTA(Datafile複製) > Docker(DBソフト複製) > VM(OS複製) • OSを分離する必要が無いなら MTA で既存PDBを複製すれば良い • OSを(見かけ上)分離したいなら、OSが丸ごと複製されるVMより、Docker コンテナを使ったほうがリソース効率が良い 24
  25. 25. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモ内容②(①で作成したDBの複製を作成・引渡) • コンテナへの接続 25 # docker exec -it dockerDB2 bash • PDBへ接続 $ sqlplus / as sysdba SQL> show pdbs SQL> conn demo1/Oracle12c@ORCLPDB1 SQL> select * from demo1;
  26. 26. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモで分かったこと •特定のデータが入ったデータベースが欲しい場合は PDBのクローンが便利 •Docker コンテナの作成でも可能 26
  27. 27. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. まとめ •テスト開発環境としてシングル・インスタンスの データベースを手軽に作りたい場合にDockerは便利 (でも、MTAも忘れないで) •データベースの永続化もできる •RAC は将来サポートされる予定 27

×