1章 マルチテナントアーキテクチャ
本章では12cの新機能であるマルチテナントアーキテクチャについて学んでいきます。
新機能 マルチテナントアーキテクチャ
Oracle 12cではマルチテナントアーキテクチャと呼ばれる、新しい機能が追加されました。
Oracleのシングルデータベースの構成はインスタンス:データベースは1:1となっています。
RAC構成の場合、インスタンス:データベースは多:1となります。
マルチテナントアーキテクチャは、1:多の構成をとることが出来るアーキテクチャです。
インスタンスはメモリやプロセス郡である為、複数のインスタンスを構成する場合は、それなりのサーバリソースが必要でしたが、この構成であれば、
インスタンスが1つで複数のDBに対応することが出来ます。
マルチコンテナを使用するメリット
・サーバーリソース使用量の削減
- 削減することにより複数DBを1つのサーバに集約することができる
・運用コストの削減
- 分散していたDBが1つのサーバに集約される為、パッチ適用やバックアップを1つにまとめることが出来る
・データ移行の簡略化
- アンプラグ、プラグインなどの方法によりサーバ交換によるデータ移行が簡単
個人的なメリットとしては3点目が大きいと思います。今までEOSL(サーバの保守期間切れ)により、
サーバを新規にする場合、管理者は新規サーバへDBデータを移行する為に、手順を検討しアプリケーションに影響なく、データを移行する必要がありました。
しかし、マルチコンテナを使用することでこの問題が解消されます。
データ移行方式はマルチコンテナを使用すると、ほぼゼロダウンタイムでデータの移行が可能です。
こちらは後ほどご紹介します。
デメリットとしては、ライセンス費用が高いことです。マルチコンテナデータベースを使用する場合、
Enterprise Edition製品かつOracle Mulititenantオプションを購入する必要がある為、高額なライセンス費用がかかります。
マルチコンテナデータベース構成
マルチコンテナデータベースは以下のような構成となっています。
マルチコンテナデータベースを作成すると上記のDBが作成されます。
ルートDBは管理用データベースであり、CDBと呼ばれます。
シードPDBはPDBを作成する為の雛形用のPDBです。そして複数のPDBで構成されます。
PDBは複数作成が可能です。PDBにはユーザオブジェクトを格納します。
CDBは管理用DBであり、通常オブジェクトは作成可能ですが、
ユーザオブジェクトはPDBに作成し、管理DBとユーザDBを分けたほうが運用的にも楽です。
また各DBにSYSTEM、SYSAUX、TEMP表領域が存在しますが、UNDO、REDOログなどはCDB上にのみ存在し、PDBで生成されたREDOログやUNDOはCDB上のREDOログ、UNDOに保持されます。
ただし12cR2(12.2以降)ではローカルUNDOという新機能により各PDBごとにUNDOを構成することができるようになりました。
シードDBはPDBを作成する為のテンプレート用DBであり、読み取り専用となっています。基本的に使用することはありません。
SPFILEも1つのみとなりますが、各PDBごとにパラメータを設定できます。
本章はマルチコンテナデータベースのアーキテクチャとなります。
次章からは実際にコンテナデータベースを作成していきます。