Oracleと比べたHANAの特徴
Q1. システムクラッシュ対策について
HANAは揮発性メモリ上にデータを保持していますが、電源断等システムクラッシュに対する対策はどうなっていますか?
A1. HANAには「永続化アーキテクチャ」と呼ばれる仕組みがあります。Oracleの場合メモリ上のデータ変更をディスクに書き込むことで永続化を行っていますが、HANAの場合も基本的に同じです。
タイミングや粒度の違いで「セーブポイント」「スナップショット」「ロギング」と呼ばれる永続化の仕組みが存在します。特にロギングはOracleのREDOログに相当するもので、この仕組みによりHANAもコミット済みトランザクションの永続性を保証しています。また、バックアップも永続化アーキテクチャの延長線上にあります。永続化アーキテクチャは非常に重要な仕組みなので詳細は別途回を改めて説明します。
Q2. バックアップについて
SAP HANAのバックアップにはどのようなものがありますか?
A2. HANAにはOracleのRMANに相当する「ファイルベース・バックアップ」とユーザ管理バックアップに相当する「ストレージスナップショットベース・バックアップ」があります。
前者にはOracleと同様に「全体」「増分」「差分」のバックアップが存在し、後者はストレージのスナップショット機能を利用したバックアップです。また、ログ(ロギングの結果)を自動的にバックアップすることでトランザクション単位のリカバリが可能です。
Q3. シェアード・エブリシング構成について
HANAにはOracle RACのような構成はありますか?
A3. HANAにはRACに相当するシェアード・エブリシング構成(機能)はありません。複数ノードから構成されるクラスタ構成はありますが、各ノードに異なるデータを保持しクラスタ全体でデータベースを構成するシェアード・ナッシング構成となります。
Q4. その他の高可用性ソリューションについて
HANAにはData Guardのような構成ははありますか?
A4. HANAにも物理的に異なる場所にあるプライマリ−セカンダリサイト間でデータを転送・同期する「システムレプリケーション」と呼ばれる機能があります。
永続化と同様にデータ転送の粒度とタイミングにより、「イニシャルデータ転送」「デルタデータ転送」「ログ転送」の3段階で同期を行います。さらに、プライマリサイト障害時にセカンダリサイトへフェイルオーバー(HANAではテイクオーバーと呼びます)する場合、サービス再開のために実行される「ログリプレイ」があります。
Q5. マルチテナント構成について
HANAにはOracle12cのようなマルチテナント構成はありますか?
A5. あります。1つのHANAインスタンスで、セキュリティ的に分離された複数のテナントDBを利用することができるのはOracleと同じです。
Oracleマルチテナント・アーキテクチャにおけるCDBに相当するのが「システムDB」、PDBに相当するのが「テナントDB」です。OracleのバックグラウンドプロセスやSGAは複数のPDBで共有されますが、HANAの場合プロセス、メモリ(データストア)、ボリューム(ディスク)の総体であるコンテナはテナントDB毎に独立しています。つまりHANAのテナントDBは独立して運用され、バックアップ/リカバリもテナントDB毎に行われます。
Q6. プロセス構成について
Oracle(UNIX系)のバックグラウンドプロセスは機能毎に複数存在していますが、HANAの場合はどうなっていますか?
A6. データベースプロセスの本体は「Index Server」と呼ばれるプロセスからなります。Oracleのように機能毎に分かれていません。
スケールアウト構成やマルチテナント構成の管理等は「Name Server」が行います。クラスタ構成においては、各ノード上のIndex ServerとName Serverが協調して動作します。図1のように、これら以外にもプロセスは存在しますが(詳細説明は割愛します)、コアとなるプロセスはこの2つです。
Q7. 管理情報について
HANAにはOracleのデータ・ディクショナリに相当する情報はありますか?
A7. あります。これらはシステムビューと呼ばれ、情報はローストアで管理されるテーブルに格納されています。
Q8. ローストアについて
HANAはすべてのテーブルをカラムストアで管理しているのではないのですか?
A8. HANAでは、データストアにローストア、カラムストアのいずれかを選択することができますが、通常はカラムストアを使用します。
ローストアは、システムビューや少量かつ更新頻度の高いデータで使用されます。
Q9. HANAのOLAPモデルについて
Oracle等のローストア・データベースでは、アプリケーション・サーバ層でOLAP分析を行うのが一般的ですが、HANAの場合はどうなっていますか?
A9. HANAでは従来のアプリケーション・サーバ層やBIサーバ層で行われていたOLAP分析処理をDBサーバ層に落と(プッシュダウン)して実行しています。つまり層間のネットワーク転送ボトルネックを解消することで高速化を実現しています。(アプリケーション・プッシュダウン)
また、カラムストアにあるデータの実体を、多次元分析ビューとして見せる処理部分を「インフォメーションビュー」と呼ばれるDBオブジェクトとして定義します。このビューをSQLで使用することによりOLAP分析を行います。これらの特徴を持つOLAPモデルをHANAでは「Virtual Data Model」と呼びます。
Q10. SAP HANAの提供形態について
HANAの提供形態にはそれぞれどのようなものがありますか?
A10. HANAには、「オンプレミス」と「クラウド」の二つの提供形態があります。
オンプレミスには「アプライアンス」と「テイラード・データセンタ・インテグレーション:TDI」の形態があります。前者は、SAPのハードウェア・パートナーがIntelベースまたはIBM PowerベースのハードウェアプラットフォームにOS、SAP HANAをプリインストールし、ハードウェア特性に応じた最適な設定を行った上で提供されるモデルです。
後者はより柔軟なモデルで、認定済みサーバ、ストレージおよび承認済みOSに対して、認定ハードウェア・パートナーまたは認定保持者によりインストールされたSAP HANAを使用するモデルで、ユーザの資産を有効に活用することができます。ちなみに後述する本ブログ執筆に際し準備した検証環境はIBM Power Systems上に構築したTDIモデルです。
また、SAP社はクラウドにも注力しておりHANAは2014年からオープンソースPaasソフトウェアであるクラウドファウンドリー(Cloud Foundry)のクラウドプロバイダインターフェイス(CPI)を介し、SAP社以外のクラウドサービス、例えばAmazon Web Services、Microsoft Azure、Google Cloud Platformでのサービス提供を進めています。認定アプライアンスとクラウドサービスの一覧は下記から参照することができます。