米Oracle製DBMSの最新バージョン「Oracle Database 12c」の国内販売が開始された。最大の特徴である「マルチテナント・アーキテクチャ」によって、構築の仕方、リソース制御、接続の仕方、パッチ適用やバージョンアップ、バックアップの仕方がどう変わるのかを、製品担当者が解説する。
Oracle Database 12cは、前版のOracle Database 11gのリリース以来、約5年ぶりのメジャーバージョンである。末尾の「c」はクラウドを意味する。つまり、12cは、クラウド環境のために開発されたDBMSなのである。
12cに追加した新機能は、セキュリティ向上や高可用性のための機能など合計で約500個に上る。その中で最も重要なのが、クラウドの運用で必要となる「マルチテナント・アーキテクチャ」だ(図1)。以下ではマルチテナント・アーキテクチャについて、実際の構築・運用のイメージを通して紹介したい。
11gまでとの違いは何か?
→一つのインスタンスで複数DBを稼働
12cで採用されたマルチテナント・アーキテクチャについて、11gと比較して解説する。
Oracle DBの実体は、「Oracleインスタンス」である。これは、メモリー領域やバックグラウンドプロセスなどから構成される。11gで複数DBを構築するには、その数と同じだけOracleインスタンスが必要だった。サーバーリソースもOracleインスタンス数に応じて必要である(図2左)。
これに対して12cのマルチテナント・アーキテクチャでは、「マルチテナント・コンテナ・データベース(CDB)」という方式を採用している。この方式により、一つのOracleインスタンスに「プラガブル・データベース(PDB)」と呼ぶ仮想DBを複数構築できる。メモリー領域やバックグラウンドプロセスは全PDBで共有するので、サーバーリソースを最小限に抑えられる。
CDBの構成要素をもう少し詳しく見てみよう。CDBは、ルート、PDB、シードの三つの要素からなる(図2右)。
ルートにあるのは、PDB間で共有すべきファイル。具体的には、制御ファイル、REDOログファイル、アーカイブREDOログファイル、データファイルだ。
PDBは仮想DBで、データファイルやユーザー情報などからなる。一つのCDBで最大252個のPDBを作成可能だ(シードとルートは除く)。
シードは、PDBを新規作成するときに使うテンプレートである。CDB作成時に一つだけ作成される。読み取り専用のため、新規のオブジェクトを追加することはできない。
データファイルはPDBにもルートにもある。USERSなどのユーザーのデータはPDBのデータファイルに、全PDBで共有して保持すべきデータはルートのデータファイルに格納する。CDBのデータを利用できるようにするため、PDBのデータファイルにはCDBのデータファイルへのポインタ情報を格納している。
このようにデータを2層に分けることで、全体の運用管理に必要なデータと、個々のシステム(テナント)を管理するのに必要なデータを分け、テナントごとの独立性を保っている。