TOP>企業情報>コラム>技術情報>徹底解説!Oracle Database 12cのすべて Vol.1

徹底解説!Oracle Database 12cのすべて Vol.1

2013年7月17日、およそ5年半振りのメジャー・バージョンアップとなるOracle Database 12cの国内提供が開始されました。本連載では、500を超える新機能の中から、代表的なものをピックアップしてわかりやすく解説していきます。第1回目となる今回は、12c最大の目玉であるマルチテナント機能について解説します。

Vol.1 クラウド時代の新しいアーキテクチャ、Oracle Database 12cのマルチテナント機能

クラウドのために開発された、初めてのデータベース


Oracle Open World 2012での発表から10ヵ月、ついにOracle Database 12c(以下、12c)の国内提供が開始されました。クラウドの『c』を製品名に掲げ、コンテナ、プラガブル、マルチテナントなど、これまでのOracle Databaseにはなかった多くのコンセプトを引っさげて登場した12cには、実に500を超える新機能が実装されています。

新機能を理解しやすくするために、まずはこれまでのバージョンについて少しだけ振り返ってみましょう。Oracle Databaseは、その時代のトレンドにフィットするための機能を実装しながら進化を続けています。8iと9iではインターネット環境の大量トランザクション、大量データに対応するためにOracle Real Application Clusters(RAC)やPartitioningを実装し、10gと11gではグリッド・コンピューティングに対応するためにGrid InfrastructureやAutomatic Storage Management(ASM)を実装してきました。この流れで考えると、12cにはクラウド対応を考慮した機能が実装されているというのがイメージできるのではないでしょうか。

Oracle Database進化の歴史

Oracle Database進化の歴史

12cの主要な新機能を見てみると、データベースのマルチテナントを実現するOracle Multitenant以外にも、データ運用を自動化するAutomatic Data Optimizationや、動的なデータマスキングを行うData Redactionなど、運用を自動的かつシンプルに行える機能が実装されています。また、データロスのない災害対策構成を採るためのData Guard Far Syncや複数サイトをまとめてサービス化できるGlobal Data Servicesなど、可用性をさらに高める機能もあります。これらすべてが、Oracle Databaseがクラウド対応となるのに必要な機能なのです。

12cの主要な新機能

12cの主要な新機能

とは言え、急にクラウド対応と言われてピンと来ない方もいるかもしれません。ここで言うクラウドとは、パブリック・クラウドだけを指すのではなく、プライベート・クラウドや企業内における複数システムの統合なども含まれます。オンプレミスで稼働させる場合でも、マルチテナントによってデータベースの集約率を高めるといった使い方ができますので、多くのユーザが新機能のメリットを得られるようになっています。

マルチテナントはこうして生まれた


12cにおける最大の特徴は、データベースのマルチテナントを実現する機能が実装された点にあります。マルチテナントとは、1つのシステム上に複数のサービス(ユーザ)が同居している環境のことで、1つの建物内に複数の店舗や企業が同居している雑居ビルによく似ています。集約率が高まるので、運営側にとっては必要な資源や運用コストを削減できるというメリットがあります。利用者側にとっても、自社ビルを建築するよりはワンフロアを借りたほうが安価でビジネスを始められます。

データベースをマルチテナント化するための手法はこれまでいくつか登場しており、代表的なものとして『仮想マシンを複数作成する』、『データベースを複数作成する』、『スキーマを複数作成する』などがあります。これらのメリット、デメリットを整理すると、12cのマルチテナントが理解しやすくなります。以下は1つのサーバ上に3つのサービスを同居させた場合のイメージ図です。

データベースをマルチテナント化するための手法

データベースをマルチテナント化するための手法

サーバ仮想化は、サービスの数だけ仮想マシンを起動し、その上でさらにデータベースを起動するという手法です。OSやデータベースのバージョンが異なっていてもマルチテナント化できるというメリットはありますが、サーバの台数は減っても管理しなければならないOSやデータベースの数は変わらないため、運用管理コストを抑える効果はありません。また、仮想化によるオーバーヘッドがあるため、他の手法と比べて集約率があまり高くならないというデメリットもあります。

データベースを複数作成してマルチテナント化した場合、サーバ仮想化と比べて管理するOSの数は減りますが、データベースの数は変わりません。データベースを起動するにはインスタンスに一定のメモリを割り当てる必要があるため、集約率には限界があります。

スキーマを複数作成した場合は集約率を高めることができますが、スキーマ名が競合している場合はスキーマ統合を検討したり、アプリケーションの改修をしたりといった作業が必要になります。また、仮想化や複数データベースの場合に確保されていた分離性がなくなるため、メモリやCPUといったリソースの割り当て方法やセキュリティ対策を十分に検討しなければなりません。

このように、従来のマルチテナント手法にはメリット、デメリットがあるため、一概に正解を導き出せないという課題がありました。この状況を打破するために登場したのが、12cのOracle Multitenantと呼ばれる機能です。Oracle Multitenantは、Enterprise Editionのオプションとして提供されます。

Oracle Multitenant

Oracle Multitenant

アーキテクチャを大幅に変更


Oracle Multitenantを一言で表現すると、「データベースの中にデータベースを作成する機能」です。11g以前と比較すると、アーキテクチャが大きく変更されていることがわかります。

11g以前とのアーキテクチャ比較

11g以前とのアーキテクチャ比較

メモリ領域とバックグラウンド・プロセス群から構成されるOracleインスタンスは特に変更されていませんが、データベースがコンテナ・データベース(CDB)という名前になり、その中にあるデータ・ファイルがプラガブル・データベース(PDB)として独立しています。アプリケーションから見ると、PDBの数だけデータベースがあるように見えるという仕組みです。

1番のポイントは、PDBがいくつあってもインスタンスは1つだけというところです。PDBごとにメモリやプロセスを割り当てていたのでは、従来型のデータベースを複数作成する場合と同じで無駄なリソースを多く使用してしまいます。インスタンスを各PDBが共同利用することで、リソースを節約しようというのがOracle Multitenantの考え方なのです。こうして集約率を高め、さらにPDBとして独立性を持たせることで、スキーマ名の競合やセキュリティの見直しといった統合にありがちな課題まで、まとめて解決することができます。

12cのマルチテナントでは運用も簡単になる


Oracle Multitenantでは11g以前と比べてアーキテクチャが大きく変更されましたが、パッチ適用やアップグレード、バックアップといった運用手順はこれまでと変わりません。それどころか、むしろ簡単になる場合もあります。例えばパッチ適用やアップグレードを行う場合、PDBがいくつ作成されていたとしても、作業は1回で済みます。PDB1つひとつにパッチを適用するといった面倒な作業は必要ありません。

マルチテナントのアップグレード、パッチ適用

マルチテナントのアップグレード、パッチ適用

マルチテナントのバックアップにはRecovery Manager(RMAN)やEnterprise Manager Cloud Controlを使用します。RMANでは『BACKUP DATABASE』コマンドを実行するだけで、1度にすべてのPDBのバックアップを取得することができます。また、『PDBごとにバックアップ開始時間を変えたい』、『PDBごとにバックアップ頻度を変えたい』といった運用に対応するため、RMANに『BACKUP PLUGGABLE DATABASE』コマンドが追加されています。PDB単位でリカバリを行うこともできます。

マルチテナントのバックアップ

マルチテナントのバックアップ

さらに、プラガブル(着脱可能)という発想を活かしたユニークな機能も備わっています。作成したPDBは取り外しが可能で、別のCDBに簡単に移動させることができます。PDBは1つひとつが独立してデータを保持しているため、USBメモリのように抜き差しするだけで移動が完了します。PDBを取り外すことを『Unplug』、取り付けることを『Plug』と呼びます。

PDBのUnplugとPlug

PDBのUnplugとPlug

このUnplugとPlugは移行やバージョンアップ、パッチ適用において効果を発揮します。例えば、ハードウェアの入替えによってデータ移行が必要になる場合、これまではExport/ImportユーティリティやData Pumpなどを利用していましたが、それがUnplugとPlugだけで済むようになります。なお、バージョンアップやパッチ適用はPDBではなくCDBに対して1度行うだけで良いため、あらかじめバージョンアップ済のCDBを別の場所に用意しておけば、UnplugとPlugでバージョンが違う環境にPDBを移動させることができます。「このPDBだけは暫く旧バージョンで稼働させておきたい」という場合や、「バージョンアップした環境で問題が起きたらすぐ切り戻しをしたい」という場合にも対応できます。

また、PDBにはコピー(クローニング)機能もあり、開発やテストのために同じデータを持ったPDBを複数作成することができます。

PDBのコピー

PDBのコピー

同一のCDB内にコピーを作成できるのはもちろんのこと、ネットワーク上にある別のCDBにコピーを作成することもできます。コピーはPDBのサイズが大きいほど時間が掛かりますが、ストレージのスナップショット(Oracle ASM Cluster File System、ZFS、NetApp)に対応したコマンドも用意されているため、それらを組み合わせると短時間でコピーを作成できます。

今回はマルチテナント機能の概要についてお伝えしました。次回はマルチテナントの環境を実際に構築し、Unplug/Plugなどの操作を行いながら内部動作を解説します。


執筆者紹介

岸和田隆

岸和田 隆(Takashi Kishiwada)

株式会社アシスト データベース技術本部

アシスト入社後、Oracle Database の研修講師、フィールド・ サポート、新バージョンの検証を経て、2007年 自社ブランド 「DODAI」の準アプライアンス製品の企画・開発、2009年 PostgreSQL、2011年 EDB Postgres、MySQL / MariaDB の事業立上を担当。 現在は「データベースのアシスト」を目指した活動を行っている。

岸和田の紹介記事はこちら



関 俊洋(Toshihiro Seki)

株式会社アシスト データベース技術本部

2006年、株式会社アシスト入社。データベース・システムの構築や運用トラブルの解決といったフィールド・サポート業務を経験し、その後は新製品の検証やハードウェアとデータベースを組み合わせたソリューション(DODAI)の立ち上げに従事。現在はデータベースの価値や魅力を伝えるための執筆・講演活動を行っている。『SQL逆引き大全363の極意』共著。

関の紹介記事はこちら

「徹底解説!Oracle Database 12cのすべて」 連載記事一覧

関連製品


Facebookで情報をお届けしています

Facebookでは、アシストの「今」を週3回のペースでお届けしています。「めげない、逃げない、あまり儲けない」を合言葉に日々頑張っておりますので、応援よろしくお願いします。



ページの先頭へ戻る