エンタープライズITの世界では「コンソリデーション(統合)」が1つのキーワードとなっている。しかし、コンソリデーションを進めるにあたって、一筋縄ではいかないのが「データベース統合」の方法論だ。エンタープライズDBとして高いシェアと実績を持つOracle Databaseの最新版「Oracle Database 12c」では、データベース統合や、その後の運用管理を効率化し、さらに進化させるための新たなアーキテクチャを採用している。本連載では、「マルチテナント・アーキテクチャ」をベースに、新たな観点からDB最適化のポイントを検証する。

この数年来、エンタープライズITの世界では「コンソリデーション(統合)」がひとつのキーワードとなっている。

企業で長くITシステムが使われる中で、部署・部門やアプリケーションごとにサイロ状に乱立してしまったシステムをまとめることで、ハードウェアコストや電力コスト、設置スペース、運用管理コストを削減できるといったメリットが、コンソリデーションを進める企業にとっての大きなモチベーションとなっている。

ハードウェアの価格性能比は年々向上しており、仮想化のテクノロジーもかつてより信頼性や柔軟性の高いものへと成熟を続けている。社内で必要となるITリソースを、必要なときにオンデマンドで用意できる「プライベートクラウド」のような仕組みを実現していこうとする際にも、既存システムのコンソリデーションは、その基礎となる重要な取り組みの1つなのだ。

しかしながら、コンソリデーションを進めていくにあたって、考慮すべき事柄や課題が多いことも、日々のシステム管理に携わるIT担当者であれば十分に理解しているだろう。中でも一筋縄にいかないのは、さまざまなシステムの重要なバックエンドとなっている「データベース」の存在である。

従来の方式による「DB統合」に残された課題

一般的に、システム統合を進める際には、仮想化の技術によって作成した「仮想マシン」を使って、1つのハードウェア上で複数のシステムを稼働させるといった方法がとられることが多い。しかし、単純に1つのシステムを1つの仮想マシンに対応させて統合した場合、DBコンソリデーションのメリットを最大限に享受できないケースも多い。

たしかに、ハードウェアコストや設置スペースの削減といったメリットは得られるが、実質的に管理すべきサーバやコンポーネントの数(OS、データベースの種類)は減っていない点が問題だ。各仮想マシン上では、それぞれにOSやミドルウェア、そしてデータベースが稼働している。仮想マシンによるデータベース統合は、標準化が必須ではないため移行の難易度が比較的低く、システムごとの独立性が高いといったメリットがある。しかし一方で、仮想マシンによるリソースのオーバーヘッドが大きく、運用に要求されるスキルセットも集約されないため、運用コストそのものは大きく下がらないといった課題が残る。

一方、よりリソース効率を高めつつ運用コストを削減できるDBコンソリデーションの手法としては「スキーマ統合」がある。しかしながら、この手法は、仮想マシンによる統合に比べて作業が複雑になり、より密接に隣接した環境での同居となるために難易度も高くなってしまうのである。

データベース統合のシステム・アーキテクチャ

スキーマ統合よりも難易度が低く、同時に仮想マシンによる統合よりもリソース効率や管理性が高められる仕組みがあれば、企業はDBコンソリデーションの取り組みから、より高い投資対効果を得られることになる。

オラクルは、エンタープライズDBの分野で高いシェアと実績を持つ「Oracle Database」の最新版である「Oracle Database 12c」において、こうした課題を解決するための新たなアーキテクチャを採用した。それが「マルチテナント・アーキテクチャ」である。

今回は、このマルチテナント・アーキテクチャがどのような点で新しい機構なのか、これを使うことによって、どのようなメリットがあるのかについて、概要を説明しよう。

Oracle Database 12cのマルチテナント・アーキテクチャ

「テナント」という言葉から、ショッピングモールの小分けされたスペースに入った小規模な店舗をイメージした人もいるかもしれない。そのイメージどおり、Oracle Database 12cのマルチテナント・アーキテクチャは、1つのデータベースの中に複数の仮想的なデータベースを持つことができる機能である。

マルチテナント・アーキテクチャ
データベース内に仮想的なデータベースを作る機能

マルチテナント・アーキテクチャでの構成にはMultitenant Container Database (CDB)と呼ばれる新しいデータベースを作成。CDB内にはメモリ領域、プロセス、制御ファイルなどを構成し、各システムはPluggable Database (PDB)と呼ばれる仮想的なデータベース単位で管理。

マルチテナント・アーキテクチャを構成する際には、新たに「マルチテナント・コンテナ・データベース(CDB)」と呼ばれる新しい型のデータベースを作成し、その上に「プラガブルデータベース(PDB)」と呼ばれる、仮想的なデータベースを文字どおり”差し込んで(プラグ)”稼働させるという形をとる。

PDBは、1つのCDB上に複数差し込むことができる。例えば、ERPやCRMといった別のアプリケーションのデータベースを、PDBとして同じCDB(インスタンス)上で動かすことが可能だ。メモリ領域、CPUプロセスといったシステムリソースの管理と共有は、1つのデータベース内で行われる。これにより、仮想マシンを使った従来のDB統合のようなオーバーヘッドが発生せず、効率的にリソースを使うことができる。さらに、データベース機能のアップグレードやパッチ適用については、1つのCDBに対して行えばよいことになる。これにより、運用管理の手間も大幅に削減される。

マルチテナント・アーキテクチャ
運用コストを圧縮してシステムの独立性を保つ、プラガブル・データベースでの統合

さらに、このPDBは、アプリケーションやデータベースを変更することなく、そのまま他のCDB上に移して、稼働させることができる点が大きなポイントだ。詳しい説明は次回になるが、この「PDBをそのまま、他のCDB上に移して使える」という特長によって、Oracle Database 12cのマルチテナント・アーキテクチャは、従来のデータベース運用管理の方法論を大きく進化させることになる。

CDBおよびPDBの管理作業は、オラクル製品の標準管理コンソールである「Oracle Enterprise Manager Database Express」および「Oracle Enterprise Manager Cloud Control」上で、グラフィカルなUIを使って行うことができる。PDBのオープンやクローズ、データベース全体のセキュリティ管理、パフォーマンスモニタリングといった日常的な管理作業は、このEnterprise Managerから一括して行うことができる。データベース管理の初心者にも扱いやすい環境が用意されている点は、管理項目の標準化やコスト削減の観点からもチェックしておきたいポイントだろう。

さて、今回は、システム統合、主に「DBコンソリデーション」の観点から、Oracle Database 12cの新機能である「マルチテナント・アーキテクチャ」がもたらす新しい選択肢について紹介した。次回から2回に分けて、このマルチテナント・アーキテクチャが「DB管理者による運用管理」「アプリケーションのアップデートやテスト」の方法論に、どのような画期的な変化をもたらすのかについて、より具体的に紹介していく。