SAP HANA システムはデータベース管理システム (DBMS) です。つまり、データベースモデルを管理するサーバコンポーネントです。データベース管理システムは、ユーザ、他のアプリケーション、およびデータベース自体と対話することによって、データを取得および分析します。汎用 DBMS では、データベースの定義、登録、クエリ、更新、および管理が可能です。
DBMS では以下の機能が実行されます。
多数のユーザが同時に同じデータにアクセスできるように、マルチユーザ環境で大量のデータを管理
データ間の関係の更新
ユーザ権限コンセプトを使用したデータへの安全なアクセスの提供
システム障害の後、データを最新の整合性のあるステータスに自動的にリカバリ
データ要求の処理に高いパフォーマンスを実現
SAP HANA には、上記のすべての DBMS 機能があります。市場の汎用 DBMS と SAP HANA の最大の違いは、SAP HANA はすべてのデータをインメモリに格納することです。SAP HANA では、インメモリデータが一次保管場所であり、ディスク上のデータファイルは二次ストレージとみなされます。
注記
単一データベースコンテナと複数データベースコンテナ (MDC)
マルチテナントデータベースコンテナシステムのコンセプトは、単一システム ID を持つ単一の SAP HANA システムまたはデータベース管理システムに基づいています。この単一システム ID には、システムデータベースのほかに、少なくとも 1 つのテナントデータベースが含まれます。システムデータベースには、システム全体のランドスケープ情報が保持され、システム全体に値する設定と監視が提供されます。あるテナントデータベースのユーザが、他のテナントデータベースに接続することはできません。また、システムでデータベース間アクセスが有効化されていない限り、ユーザは他のテナントデータベースのアプリケーションデータにアクセスできません。デフォルトでは、テナントデータベースは、アプリケーションデータとユーザ管理の観点において互いに分離されています。各テナントデータベースは、それぞれ独立してバックアップおよびリカバリすることができます。すべてのテナントデータベースが同じ SAP HANA データベース管理システムに含まれているため、すべて同じ SAP HANA バージョン (リビジョン番号) で実行されます。 さらに、定義された高可用性災害回復シナリオがすべてのテナントデータベースに適用されます。
複数コンテナシステムには、集中システム管理に使用されるシステムデータベースが常に 1 つだけ存在し、テナントデータベースとも呼ばれる任意の数 (ゼロを含む) のマルチテナントデータベースコンテナがあります。マルチコンテナモードでインストールされた SAP HANA システムは、単一システム ID (SID) で識別されます。データベースは SID とデータベース名によって識別されます。管理の観点からは、システムレベルで実行されるタスクとデータベースレベルで実行されるタスクは区別されます。SAP HANA コックピットなどのデータベースクライアントは、特定のデータベースに接続します。
複数コンテナシステムでは、システムデータベースのみがネームサーバを実行します。ネームサーバには、どのテナントデータベースが存在するかを含め、システム全体のランドスケープ情報が含まれます。また、システムデータベースのインデックスサーバ機能も提供されます。単一コンテナシステムのネームサーバとは異なり、複数コンテナシステムのシステムデータベースのネームサーバは、トポロジ情報を所有しません。つまり、データベースのテーブルとテーブルパーティションの場所に関する情報は保持されていません。データベース関連トポロジ情報は、関連するテナントデータベースカタログに保存されます。
テナントデータベースは、それ独自のインデックスサーバのみを必要とします。コンパイルサーバやプリプロセッササーバなどのデータを保持しないサーバは、システムデータベース上で動作し、すべてのデータベースを処理します。SAP HANA 拡張アプリケーションサービスのサーバは、テナントデータベースで実行されます。ただし、必要に応じて別のサービスとして追加することもできます。
注記
SAP HANA 2.0 SPS 01 以降では、複数コンテナデータベースモードが唯一のデータベースモードです。デフォルトでは、インストール時に単一のテナントデータベースが登録されます。アップグレードされたシステムには、古い単一コンテナに対応する 1 つのテナントデータベースが含まれます。SAP HANA コックピットを使用して、後でテナントデータベースを追加できます。
単一コンテナシステムは、更新中にテナントデータベースシステムに自動的に変換されます。単一コンテナシステムのデータベースは、システムデータベースとテナントデータベースに変換されます。アップグレードされたシステムは、古い単一コンテナに対応する 1 つのテナントデータベースで構成されます。システムデータベース (SYSTEMDB) によって新規ユーザ (SYSTEM) が登録されます。更新時に、このユーザのパスワードを指定する必要があります。単一コンテナシステムのデータベーススーパーユーザ (SYSTEM) がテナントデータベースの SYSTEM ユーザになります。新しいシステムデータベースを追加するには、運用コンセプトを調整する必要がある場合があります。
MDC アーキテクチャ

複数コンテナシステムのインストール中、SystemDB データベースのみが登録されます。このデータベースにはシステム全体とすべてのテナントデータベースの情報が含まれます。これは集中システム管理に使用されます。
SystemDB は、ランドスケープトポロジ情報、システム全体のパラメータ設定を含む管理データベースであり、すべてのテナントデータベースのバックアップとリストアを実行できます。デフォルトのパラメータ設定で実行される SAP HANA データベースでは、1 から 20 の追加テナントデータベースを登録できます。
SystemDB でシステム管理を行い、CPU およびメモリ割当ですべてのテナント DB のリソース管理を実行します。
テナントデータベースはその名称で識別され、テナント固有のパラメータ設定があります。バックアップおよびリストア操作は、テナントごとに個別に実行することができる。
複数コンテナシステムを使用する場合は、異なるテナントデータベースで複数のアプリケーションを実行できます。このデプロイメントオプションを使用して、既存の MCOS オンプレミスシナリオを置き換えることができます。
MDC: ユーザおよび管理レイヤ

システムデータベースで実行される管理タスクは、システム全体とそのすべてのデータベースに適用されます (システムレベルの設定など)。または、特定のテナントデータベース (テナントデータベースのバックアップなど) を対象とすることもできます。
システムデータベース
システムデータベースの登録は、複数コンテナシステムのインストール時、または単一コンテナシステムから複数コンテナシステムへの変換時に行われます。システムデータベースには、システム全体についての情報のほか、すべてのテナントデータベースについての情報が含まれています。これは集中システム管理に使用されます。
複数コンテナシステムには、正確に 1 つのシステムデータベースがあります。これはシステムのインストール中、または単一コンテナシステムからの移行中に登録されます。ここにはシステム管理のデータとユーザが含まれます。SAP HANA コックピットなどのシステム管理ツールはこのデータベースに接続できます。システムデータベースには、システムに存在するテナントデータベースに関する情報など、システムランドスケープ全体の情報が格納されます。ただし、データベース関連のトポロジ情報、つまり、データベースのテーブルとテーブルパーティションの場所に関する情報は所有しません。データベース関連トポロジ情報は、関連するテナントデータベースカタログに保存されます。
システムデータベースで実行される管理タスクは、システム全体とそのすべてのデータベース (システムレベルの設定など) に適用されます。または、特定のテナントデータベース (テナントデータベースのバックアップなど) を対象とすることもできます。
システムデータベースに関する注意点
システムデータベースに関する以下の情報に注意してください。
システムデータベースは、SQL が完全にサポートされているデータベースではありません。フル機能の SQL サポートは、テナントデータベースでのみ使用できます。
システムデータベースを複数のホストに分散できません。スケールアウトはできません。
システムデータベースは、テナントデータベースからの監視データを表示できますが (スキーマ SYS_DATABASES にあるビュー)、テナントデータベースの実際のコンテンツを表示することはできません。
MDC: データベース分離
データベース分離 (Database Isolation) により、マルチテナントデータベースコンテナ SAP HANA システムのオペレーティングシステムレベルでテナントデータベースの分離が指定されます。デフォルトでは、複数コンテナシステムのすべてのデータベースプロセスは OS ユーザ <sid>adm のもとで実行されます。OS メカニズムによるデータベース間攻撃を軽減する場合は、システムの高分離を設定します。この方法では、個別のテナントデータベースのプロセスは専用 OS グループの専用 OS ユーザのもとで実行する必要があります。ファイルシステムのデータベース固有データは、その後、標準 OS ファイルおよびディレクトリの権限を使用して保護されます。

MDC 高分離レベルのプロパティ
分離レベルが高いシステムのプロパティは以下のとおりです。
個別のテナントデータベースのプロセスは、専用 OS グループの専用 OS ユーザのもとで動作します。
ファイルシステムのデータベース固有データは、OS ファイルおよびディレクトリの権限を使用して保護されます。<sid>adm にはテナントデータボリューム、ログボリューム、またはバックアップへの OS アクセス権限がありませんが、テナント固有のトレースファイルおよび設定ファイルにアクセスすることができます。
OS アクセス権限を必要とする操作は、正しい権限を持ったユーザに制限されます。この機能により、テナント間に別の保護レイヤが追加されます。OS へのアクセス権を持つテナント管理者は、OS コマンドを使用して他のテナントまたはシステムデータベースにアクセスできません。
システムデータベースでのポート割当
システムデータベースのポート番号は固定されています。
3<instance>01 (内部)
3<instance>13 (SQL)
3<instance>14 (XS クラシックサーバを介した HTTP)
テナントデータベースのポート割当
すべてのテナントデータベースには、内部通信および外部通信のための独自のポートと接続があります。
すべてのテナントデータベースには、SQL 操作および内部通信のための専用ポートがあります。SAP HANA XS クラシックサーバを介した HTTP ベースのクライアント通信のための専用ポートもあります。これは、インデックスサーバにおいて組込サービスとしてデフォルトで実行されます。
シングルテナントシステムのインストール時に自動的に登録されるテナントデータベースのポート番号は、以下のとおりです。
3<instance>03 (内部通信)
3<instance>15 (SQL)
3<instance>08 (SAP HANA クラシックサーバを介した HTTP)
後で追加されるテナントデータベースのポートは、その時点での可用性に応じて自動的に割り当てられます。
これらの固定割当のほかに、標準のポート番号割当はありません。ポート番号は使用可能なポート番号範囲から、データベースが登録された時間またはサービスが追加された時間の可用性に応じて自動的に割り当てられます。また、管理者はテナントデータベースの登録時またはサービスの追加時に、明示的にどのポート番号を使用するか指定することができます。
テナントデータベースのデフォルトのポート番号範囲は 40 から 3<instance>99 です。テナントごとに 3 つのポートが必要です。つまり、インスタンスごとに登録できる追加テナントデータベースの最大数は 20 です。
ただし、追加のインスタンスのポート番号を予約することにより、これを増やすことができます。コックピットでは、ダイアログによってこの操作が提案されます。または、[multidb] reserved_instance_numbers プロパティを global.ini ファイルで指定することができます。このプロパティのデフォルト値は 0 です。値を 1 に変更すると、さらに 1 つのインスタンスのポート番号が使用可能になります (たとえば、最初のインスタンスが 00 の場合は 30040–30199)。値を 2 に変更すると、2 つの追加インスタンスのポート番号が使用可能になります (たとえば、最初のインスタンスが 00 の場合、30040–30299)。

注記
HTTPS クライアントアクセス
SAP HANA 拡張アプリケーションサービスのサーバでは、Web ベースのアプリケーションが HTTPS を介して SAP HANA にアクセスできます。SAP HANA システムの内部 Web ディスパッチャはこれらの受信 HTTPS 要求を管理します。アプリケーションが複数コンテナシステムの特定のデータベースに要求を送信できるようにするには、各テナントデータベースにエイリアスホスト名が必要です。その後、エイリアスホスト名への要求が、対応するテナントデータベースのサーバに転送されます。HTTP ホストヘッダに物理ホスト名がある要求はシステムデータベース上で実行中のサーバに転送されます。
デフォルトの HTTP ポートは、すべての場合に使用されます。
80<instance> (HTTP)
43<instance> (HTTPS)
エイリアスホスト名は、受信リクエストが正しいデータベースにルーティングされるように、内部 HTTPS ポートにマッピングされます。
各個別テナントデータベースの xsengine.ini ファイルで、テナントデータベースに公式にアクセスできる URL を指定することによって、内部 SAP Web ディスパッチャを設定します。システムデータベースの URL の指定は自動で行われるため、指定する必要はありません。






