SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
2017/11/17
JPOUG in 15 minutes
Oracle Database
(CDB) on Docker
を動かしてみる日本オラクル株式会社
Database ソリューション部
佐々木亨
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので
す。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むこ
とはできません。以下の事項は、マテリアルやコード、機能を提供することをコミット
メント(確約)するものではないため、購買決定を行う際の判断材料になさらな
いで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時
期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。
文中の社名、商品名等は各社の商標または登録商標である場合があります。
2
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
本日お伝えしたいこと(個人の見解です)
1. 「空のデータベースを5分で作成したい」
→Oracle DB用Dockerイメージによるコンテナ作成が便利
2. 「特定のデータを持つデータベースを手軽に作成したい」
→Docker 上で動作する PDB 機能の利用が便利
これらをデータベースの稼働するDocker コンテナを作成す
るデモを通じてお伝えします
3
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
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 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
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
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
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
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
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
を利用
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 ホスト)
– Oracle Linux 7.4 UEK4
– メモリ8GB
– Docker コンテナのローカルディスク用の領
域 40GB
• 仮想マシン上にDocker Engineをイン
ストール済み
13
VirtualBox
仮想マシン(Dockerホスト)
コンテナ1
(デモ①で作成)
Docker Engine
コンテナ2
(デモ②で作成)
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
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
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やデータファイルなどが配置される
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
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
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモで分かったこと
•依頼して5分後にはデータベースが稼働するコンテナ
が出来上がる
•稼働するデータベースはCDB構成である
19
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
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
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;
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を起動するのみの動作となる
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
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;
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
デモで分かったこと
•特定のデータが入ったデータベースが欲しい場合は
PDBのクローンが便利
•Docker コンテナの作成でも可能
26
Copyright © 2017 Oracle and/or its affiliates. All rights reserved.
まとめ
•テスト開発環境としてシングル・インスタンスの
データベースを手軽に作りたい場合にDockerは便利
(でも、MTAも忘れないで)
•データベースの永続化もできる
•RAC は将来サポートされる予定
27
Oracle Database (CDB) on Docker を動かしてみる

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
これで怖くない!?大規模環境で体験するDB負荷対策~垂直から水平の彼方へ~
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
インフラCICDの勘所
インフラCICDの勘所インフラCICDの勘所
インフラCICDの勘所
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
AWSとオンプレミスを繋ぐときに知っておきたいルーティングの基礎知識(CCSI監修!)
 
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
Oracle Database 11g,12cからのアップグレード対策とクラウド移行 (Oracle Cloudウェビナーシリーズ: 2021年7...
 
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
 
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
[dbts-2014-tokyo] 目指せExadata!! Oracle DB高速化を目指した構成
 
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデートAmazon Redshift パフォーマンスチューニングテクニックと最新アップデート
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
サポート エンジニアが Azure Networking をじっくりたっぷり語りつくす会
 

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

20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
Machiko Ikoma
 

Ähnlich wie Oracle Database (CDB) on Docker を動かしてみる (20)

Oracle Big Data SQL3.1のご紹介
Oracle Big Data SQL3.1のご紹介Oracle Big Data SQL3.1のご紹介
Oracle Big Data SQL3.1のご紹介
 
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
【より深く知ろう】活用最先端!データベースとアプリケーション開発をシンプルに、高速化するテクニック
 
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
Oracle Database / Exadata Cloud 技術情報(Oracle Cloudウェビナーシリーズ: 2020年7月9日)
 
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
20210305_MySQLベースのクエリ・アクセラレーターHeatWaveのご紹介
 
Oracle GoldenGate Cloud Serviceユーザーズガイド
Oracle GoldenGate Cloud ServiceユーザーズガイドOracle GoldenGate Cloud Serviceユーザーズガイド
Oracle GoldenGate Cloud Serviceユーザーズガイド
 
最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)
最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)
最強のデータベース基盤“Exadata”をパブリック・クラウドで活用!(Oracle Cloud Days Tokyo 2015)
 
Oracle R Advanced Analytics for Hadoop利用方法
Oracle R Advanced Analytics for Hadoop利用方法Oracle R Advanced Analytics for Hadoop利用方法
Oracle R Advanced Analytics for Hadoop利用方法
 
Oracle Container Engine for Kubernetes (OKE) ご紹介 [2021年2月版]
Oracle Container Engine for Kubernetes (OKE) ご紹介 [2021年2月版]Oracle Container Engine for Kubernetes (OKE) ご紹介 [2021年2月版]
Oracle Container Engine for Kubernetes (OKE) ご紹介 [2021年2月版]
 
Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要Oracle GoldenGate Cloud Service(GGCS)概要
Oracle GoldenGate Cloud Service(GGCS)概要
 
Oracle Cloud Infrastructure:2021年10月度サービス・アップデート
Oracle Cloud Infrastructure:2021年10月度サービス・アップデートOracle Cloud Infrastructure:2021年10月度サービス・アップデート
Oracle Cloud Infrastructure:2021年10月度サービス・アップデート
 
Oracle Database Appliance X5-2 アップデート内容のご紹介
Oracle Database Appliance X5-2 アップデート内容のご紹介Oracle Database Appliance X5-2 アップデート内容のご紹介
Oracle Database Appliance X5-2 アップデート内容のご紹介
 
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデートOracle Cloud Infrastructure:2022年12月度サービス・アップデート
Oracle Cloud Infrastructure:2022年12月度サービス・アップデート
 
脱Excelで部門のデータ管理業務を 効率化するデータ活用クラウド
脱Excelで部門のデータ管理業務を効率化するデータ活用クラウド脱Excelで部門のデータ管理業務を効率化するデータ活用クラウド
脱Excelで部門のデータ管理業務を 効率化するデータ活用クラウド
 
Oracle Cloud Platform:サービス概要と活用ケースのご紹介
Oracle Cloud Platform:サービス概要と活用ケースのご紹介Oracle Cloud Platform:サービス概要と活用ケースのご紹介
Oracle Cloud Platform:サービス概要と活用ケースのご紹介
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
 
エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]
エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]
エンタープライズ・クラウドのシステム・デザイン・パターン [Oracle Cloud Days Tokyo 2016]
 
20170510_ORACLE MASTER Silver Oracle Database 12c 徹底特訓
20170510_ORACLE MASTER Silver Oracle Database 12c 徹底特訓20170510_ORACLE MASTER Silver Oracle Database 12c 徹底特訓
20170510_ORACLE MASTER Silver Oracle Database 12c 徹底特訓
 
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
Oracle Database 12c Release 1 PSR 12.1.0.2 のご紹介
 
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
オラクル・データベース・クラウド~さらなる進化のご紹介(Oracle Cloud Days Tokyo 2015)
 
新機能によるデータベースシステムの改善ポイント
新機能によるデータベースシステムの改善ポイント新機能によるデータベースシステムの改善ポイント
新機能によるデータベースシステムの改善ポイント
 

Mehr von オラクルエンジニア通信

Mehr von オラクルエンジニア通信 (20)

Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデートOracle Cloud Infrastructure:2023年5月度サービス・アップデート
Oracle Cloud Infrastructure:2023年5月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデートOracle Cloud Infrastructure:2023年4月度サービス・アップデート
Oracle Cloud Infrastructure:2023年4月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデートOracle Cloud Infrastructure:2023年3月度サービス・アップデート
Oracle Cloud Infrastructure:2023年3月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデートOracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
 
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデートOracle Cloud Infrastructure:2023年1月度サービス・アップデート
Oracle Cloud Infrastructure:2023年1月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデートOracle Cloud Infrastructure:2022年11月度サービス・アップデート
Oracle Cloud Infrastructure:2022年11月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデートOracle Cloud Infrastructure:2022年10月度サービス・アップデート
Oracle Cloud Infrastructure:2022年10月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデートOracle Cloud Infrastructure:2022年9月度サービス・アップデート
Oracle Cloud Infrastructure:2022年9月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデートOracle Cloud Infrastructure:2022年8月度サービス・アップデート
Oracle Cloud Infrastructure:2022年8月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデートOracle Cloud Infrastructure:2022年7月度サービス・アップデート
Oracle Cloud Infrastructure:2022年7月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデートOracle Cloud Infrastructure:2022年6月度サービス・アップデート
Oracle Cloud Infrastructure:2022年6月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデートOracle Cloud Infrastructure:2022年5月度サービス・アップデート
Oracle Cloud Infrastructure:2022年5月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデートOracle Cloud Infrastructure:2022年4月度サービス・アップデート
Oracle Cloud Infrastructure:2022年4月度サービス・アップデート
 
Oracle Cloud Infrastructure データベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間 (2022年4月版)
Oracle Cloud Infrastructure データベース・クラウド:各バージョンのサポート期間 (2022年4月版)
 
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
MySQL Technology Cafe #14 MySQL Shellを使ってもっと楽をしようの会
 
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデートOracle Cloud Infrastructure:2022年3月度サービス・アップデート
Oracle Cloud Infrastructure:2022年3月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデートOracle Cloud Infrastructure:2022年2月度サービス・アップデート
Oracle Cloud Infrastructure:2022年2月度サービス・アップデート
 
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデートOracle Cloud Infrastructure:2022年1月度サービス・アップデート
Oracle Cloud Infrastructure:2022年1月度サービス・アップデート
 
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
Oracle Databaseはクラウドに移行するべきか否か 全10ケースをご紹介 (Oracle Cloudウェビナーシリーズ: 2021年11月30日)
 
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデートOracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
 

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

  • 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. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので す。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むこ とはできません。以下の事項は、マテリアルやコード、機能を提供することをコミット メント(確約)するものではないため、購買決定を行う際の判断材料になさらな いで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時 期については、弊社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 2
  • 3. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 本日お伝えしたいこと(個人の見解です) 1. 「空のデータベースを5分で作成したい」 →Oracle DB用Dockerイメージによるコンテナ作成が便利 2. 「特定のデータを持つデータベースを手軽に作成したい」 →Docker 上で動作する PDB 機能の利用が便利 これらをデータベースの稼働するDocker コンテナを作成す るデモを通じてお伝えします 3
  • 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. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. Docker StoreのOracle製品 5
  • 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. 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. 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. 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. 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. 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. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. 簡単なDEMO 公開されているイメージファ イルを使ってDB作成
  • 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. 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. 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. 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. 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. 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. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモで分かったこと •依頼して5分後にはデータベースが稼働するコンテナ が出来上がる •稼働するデータベースはCDB構成である 19
  • 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. 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. 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. 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. 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. 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. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. デモで分かったこと •特定のデータが入ったデータベースが欲しい場合は PDBのクローンが便利 •Docker コンテナの作成でも可能 26
  • 27. Copyright © 2017 Oracle and/or its affiliates. All rights reserved. まとめ •テスト開発環境としてシングル・インスタンスの データベースを手軽に作りたい場合にDockerは便利 (でも、MTAも忘れないで) •データベースの永続化もできる •RAC は将来サポートされる予定 27