2.21.3 Azure環境でHADBサーバを使用する場合
- 〈この項の構成〉
(1) Azure環境でHADBサーバを使用する際の条件
- ■DBエリアのデータの格納場所
-
Azure環境でHADBサーバを使用する場合,次のDBエリアのデータをAzure Blob Storageまたはマネージドディスクのどちらかに格納します(どちらに格納するかを選択します)。
-
データ用DBエリア
-
マスタディレクトリ用DBエリア
-
ディクショナリ用DBエリア
-
システム表用DBエリア
- 重要
-
-
上記のDBエリアのデータをAzure Blob Storageに格納する場合は,HADBオプションをインストールしてクラウドストレージ機能を使用する必要があります。クラウドストレージ機能を使用してAzure Blob StorageにDBエリアのデータを格納する場合は,「(2) Azure Blob StorageにDBエリアのデータを格納する場合(クラウドストレージ機能を使用する場合)」を参照してください。
-
上記のDBエリアのデータをマネージドディスクに格納する場合は,クラウドストレージ機能を使用する必要はありません。そのため,HADBオプションのインストールも必要ありません。マネージドディスクにDBエリアのデータを格納する場合は,「(3) マネージドディスクにDBエリアのデータを格納する場合(クラウドストレージ機能を使用しない場合)」を参照してください。
-
-
- ■適用OS
-
クラウドストレージ機能を使用する場合は,適用OSがRHEL 9となります。
クラウドストレージ機能を使用しない場合は,適用OSがRHEL 7,RHEL 8,またはRHEL 9となります。
(2) Azure Blob StorageにDBエリアのデータを格納する場合(クラウドストレージ機能を使用する場合)
AzureのAzure Blob StorageにDBエリアのデータを格納できます。この場合,HADBオプションをインストールして,クラウドストレージ機能を使用できるようにする必要があります。
(a) クラウドストレージ機能とは
クラウドストレージ機能とは,クラウドベンダが提供しているオブジェクトストレージのオブジェクトにDBエリアのデータを格納できるようにする機能です。クラウドストレージ機能を使用すると,AzureのAzure Blob Storageに次のDBエリアのデータを格納できます。
-
データ用DBエリア
-
マスタディレクトリ用DBエリア
-
ディクショナリ用DBエリア
-
システム表用DBエリア
AzureのAzure Blob Storageなどのオブジェクトストレージを使用すると,Azureのマネージドディスクなどのブロックストレージを使用するときに比べて,クラウドサービスの利用コストを低減できます。
クラウドストレージ機能を使用してAzure Blob StorageにDBエリアのデータを格納する場合の例を次の図に示します。
- [説明]
-
-
オブジェクトストレージであるAzure Blob StorageにDBエリア(作業表用DBエリアを除く)のデータを格納します。
-
作業表用DBエリアのデータは,性能面を考慮してAzure Blob StorageではなくAzureのブロックストレージであるマネージドディスクに格納します。作業表用DBエリアのデータは,Azure Blob Storageには格納されません。
- メモ
-
-
クラウドストレージ機能を使用する場合,DBエリア(作業表用DBエリアを除く)のデータをレギュラーファイルまたはブロックスペシャルファイルに格納することはできません。
-
作業表用DBエリアについては,作業表用DBエリアファイルをレギュラーファイルまたはブロックスペシャルファイルのどちらかに割り当てる必要があります。
-
-
- ■HADBオプションとは
-
クラウドストレージ機能を使用する場合,HADBオプションをインストールする必要があります。HADBオプションをインストールすると,クラウドストレージ機能で使用する次に示すクラウドストレージ機能用ライブラリがインストールされます。
-
libadbcldstge-azure.so(Azure Blob Storage用ライブラリ)
-
libazure-storage-blobs.so(Azure SDK for C++ BLOBストレージライブラリ)
-
libazure-storage-common.so(Azure SDK for C++ ストレージ共通ライブラリ)
-
libazure-identity.so(Azure SDK for C++ 資格情報ライブラリ)
-
libazure-core.so(Azure SDK for C++ コアライブラリ)
クラウドストレージ機能用ライブラリとは,上記の5つのライブラリの総称です。
-
- メモ
-
-
クラウドストレージ機能を使用したシステムの構築方法および運用方法については,「21. クラウド環境の構築(クラウドストレージ機能を使用する場合)」および「22. クラウドストレージ機能を使用している場合の運用」を参照してください。
-
クラウドストレージ機能を使用したマルチノード構成の構築方法および運用方法については,「18.35 Azure環境でのマルチノード機能の運用」を参照してください。
-
クラウドストレージ機能を使用したコールドスタンバイ構成の構築方法および運用方法については,「19.23 Azure環境でのコールドスタンバイ構成の運用」を参照してください。
-
(b) DBエリアのデータの格納形式(コンテナーおよびBLOB)
クラウドストレージ機能を使用する場合,次のDBエリアのデータはAzure Blob Storageのコンテナー内のBLOBに格納されます。
-
データ用DBエリア
-
マスタディレクトリ用DBエリア
-
ディクショナリ用DBエリア
-
システム表用DBエリア
DBエリアのデータの格納形式の概要を次の図に示します。
- [説明]
-
-
各DBエリアのデータが,複数のBLOBに分割して格納されます。1セグメントのデータが,1つのBLOBに格納されます。
-
ユーザは,BLOBを格納するコンテナーだけを作成します。コンテナーに格納されるBLOBはHADBサーバが作成します。また,どのDBエリアのデータが,どのBLOBに格納されているかをユーザが意識する必要はありません。
-
- ■仮想DBエリアファイルとは
-
仮想DBエリアファイルとは,各DBエリア(作業表用DBエリアを除く)のデータを格納しているBLOB群を格納する概念的なDBエリアファイルのことです。クラウドストレージ機能を使用する場合,DBエリアファイルは物理的には作成されませんが,各DBエリアのデータを格納するBLOB群は,概念的なDBエリアファイルである仮想DBエリアファイルに格納されます。
- メモ
-
-
adbinitコマンドでデータベースを初期設定すると,各DBエリアに1個の仮想DBエリアファイルが作成されます。DBエリアごとに仮想DBエリアファイルの容量が次のように異なります。
・データ用DBエリア:約1ペタバイト
・マスタディレクトリ用DBエリア:約1テラバイト
・ディクショナリ用DBエリア:約16テラバイト
・システム表用DBエリア:約16テラバイト
したがって,上記の図のデータ用DBエリア1の容量は約1ペタバイト,データ用DBエリア2の容量は約3ペタバイトになります。
-
adbmodareaコマンドでデータ用DBエリアを追加すると,そのデータ用DBエリアに1個の仮想DBエリアファイル(約1ペタバイト)が作成されます。
-
adbmodareaコマンドでデータ用DBエリアを拡張すると,拡張したデータ用DBエリアに仮想DBエリアファイル(約1ペタバイト)が1個追加されます。上記の図のデータ用DBエリア2は,仮想DBエリアファイルが3つあるため,DBエリアの拡張を2回実行しています。
-
(c) キャッシュファイル
キャッシュファイルとは,コンテナー内の一部のBLOBのデータを格納するファイルです。1つのキャッシュファイルには,1つのBLOBのデータが格納されます。対応するキャッシュファイルとBLOBには,同じデータが格納されます。キャッシュファイルは,HADBサーバによってマネージドディスクまたは一時ディスク上のレギュラーファイルとして作成されます。
HADBサーバがデータを検索する際,検索に必要なデータがキャッシュファイル中にある場合は,キャッシュファイルのデータにアクセスします。検索に必要なデータがキャッシュファイル中にない場合は,検索に必要なデータを格納しているBLOBにアクセスし,そのBLOBのデータを格納したキャッシュファイルを新たに作成します。HADBサーバは,新たに作成したキャッシュファイルのデータにアクセスします。
キャッシュファイルの概要を次の図に示します。
- [説明]
-
-
キャッシュファイルは,グローバルバッファとオブジェクトストレージであるAzure Blob Storageの間に位置するファイルになります。コンテナー内の一部のBLOBのデータを格納します。
-
ユーザは,キャッシュファイルをマネージドディスクまたは一時ディスクのどちらに作成するかを決定し,キャッシュファイルを格納するディレクトリパスを次のオペランドに指定します。
-
adbinitコマンドでデータベースを初期設定する際に指定する初期設定オプションのadb_init_cld_cache_pathオペランド
-
サーバ定義のadb_sys_cld_cache_pathオペランド
なお,キャッシュファイルの格納先ディスクには,セクターサイズが512バイトまたは4,096バイトのディスクが使用できます。
-
-
キャッシュファイルの総容量の上限をサーバ定義のadb_sys_cld_cache_total_sizeオペランドに指定します。キャッシュファイルの総容量が上限値を超えた場合,最後にアクセスした時間がいちばん古いキャッシュファイルを削除したあとに新しいキャッシュファイルを作成することで,キャッシュファイルの総容量の上限を超えないようにします。
-
データインポートなどでDBエリアにデータを格納する場合は,キャッシュファイルにデータをいったん格納し,コミットが完了するまでの間にコンテナーにデータを格納します。
-
- 重要
-
キャッシュファイルは,HADBサーバの正常開始または再開始時に削除されます。そのため,前回の稼働時に作成されたキャッシュファイルを次回のHADBサーバの開始以降に利用することはありません。したがって,マネージドディスクなどの永続ディスク上にキャッシュファイルを作成する必要性はありません。必要に応じて,一時ディスク上にキャッシュファイルを作成することも検討してください。
- メモ
-
マネージドディスクまたは一時ディスクにキャッシュファイルを作成することによって,Azure Blob Storageへのアクセス回数を削減できるため,次のメリットがあります。
-
クラウドサービスの利用コストの低減が見込まれる
-
性能向上が見込まれる
-
(d) 制限事項および留意事項
クラウドストレージ機能を使用する場合,次に示す制限事項と留意事項があります。
- ■制限事項
-
クラウドストレージ機能を使用する場合,次に示すことができません。
-
追加モードでのデータインポート(adbimportコマンド)
-
アーカイブマルチチャンク表の定義
-
テキストインデクスの定義
-
同義語検索
-
- ■留意事項
-
-
クラウドストレージ機能を使用した場合,クラウドストレージ機能を使用しない場合に比べて,SQL文やコマンドを実行して表のデータを操作する時間が掛かることがあります。
-
クラウドストレージ機能を使用した場合,SQL文やコマンドをキャンセルしたり,SQL文やコマンドにエラーが発生したりすると,ロールバック処理に時間が掛かることがあります。
-
データ用DBエリア数が増えるに従って,HADBサーバの開始,adbdbstatusコマンドの実行,およびチャンクの更新または削除などの各種の処理時間が長くなるおそれがあります。そのため,「5.6 データ用DBエリアの設計」を参照して,データ用DBエリアは必要な数だけ作成するようにしてください。
-
クラウドストレージ機能を使用する場合,データ用DBエリアのページサイズは32キロバイト固定になります。また,1セグメントの容量も32メガバイト固定になります。
-
- ■INSERT文,UPDATE文,およびDELETE文を実行する場合の留意事項
-
クラウドストレージ機能を使用する場合,次の点に留意してください。
-
INSERT文,UPDATE文,およびDELETE文をなるべく実行しない運用にしてください。
クラウドストレージ機能を使用する場合,これらのSQL文を実行する際にBLOB単位(1つのBLOBには,1セグメントのデータが格納されている)の操作が発生します。クラウドストレージ機能を使用しない場合にこれらのSQL文を実行する際は,ページ単位のI/Oの発生だけで済みますが,クラウドストレージ機能を使用する場合はさらにセグメント単位のI/Oと通信が発生します。そのため,INSERT文,UPDATE文,およびDELETE文の実行性能が低下することがあり,特に少量のデータを更新する運用には適していません。
-
INSERT文,UPDATE文,およびDELETE文の実行対象となる表は,B-treeインデクスおよびレンジインデクスの定義数をなるべく少なくしてください。
B-treeインデクスやレンジインデクスの定義数が多くなるほど,INSERT文,UPDATE文,およびDELETE文の実行性能が低下します。
INSERT文,UPDATE文,およびDELETE文の実行回数を少なくできない場合は,「(3) マネージドディスクにDBエリアのデータを格納する場合(クラウドストレージ機能を使用しない場合)」で説明するクラウドストレージ機能を使用しないAzure環境でHADBサーバを使用することを検討してください。
-
(e) HADBのマニュアルを読む際の留意事項
クラウドストレージ機能を使用する場合,DBエリア(作業表用DBエリアを除く)のDBエリアファイルは作成されません。代わりに,仮想DBエリアファイルが作成されます。それに伴い,HADBのマニュアルを読む際の留意事項を次に示します。
-
DBエリアファイルに関する留意事項
HADBのマニュアル中の「DBエリアファイル」を「仮想DBエリアファイル」に読み替えてください。
なお,作業表用DBエリアのDBエリアファイルは作成されるため,作業表用DBエリアのDBエリアファイルについては読み替えをする必要はありません。
読み替えの例を次に示します。
- (例1)
-
データ用DBエリアまたはデータ用DBエリアのDBエリアファイルの数が上限値を超えています。
上記の場合,「データ用DBエリアまたはデータ用DBエリアの仮想DBエリアファイルの数が上限値を超えています。」と読み替えてください。
- (例2)
-
dbarea_file_num:表を格納するデータ用DBエリアのDBエリアファイル数
上記の場合,「表を格納するデータ用DBエリアの仮想DBエリアファイル数」と読み替えてください。
- メモ
-
メモリ所要量などの計算式の変数の説明で,例2のような読み替えがあります。
-
レギュラーファイル,ブロックスペシャルファイルに関する留意事項
-
DBエリア(作業表用DBエリアを除く)のDBエリアファイルは作成されないため,レギュラーファイルまたはブロックスペシャルファイルに関する説明は該当しません。作業表用DBエリア以外のDBエリアについては,「クラウドストレージ機能を使用している場合」の説明をお読みください。
-
作業表用DBエリアファイルは,レギュラーファイルまたはブロックスペシャルファイルのどちらかに割り当てるため,レギュラーファイルまたはブロックスペシャルファイルのどちらか該当する方の説明をお読みください。
読み方の例を次に示します。
- (例1)
- (例2)
-
(3) マネージドディスクにDBエリアのデータを格納する場合(クラウドストレージ機能を使用しない場合)
AzureのマネージドディスクにDBエリアのデータを格納できます。この場合,クラウドストレージ機能を使用する必要はありません。
マネージドディスクにDBエリアのデータを格納する場合の例を次の図にしまします。
- [説明]
-
-
ブロックストレージであるマネージドディスクにDBエリアのデータを格納できます。
-
クラウドストレージ機能を使用しないため,HADBオプションのインストールは必要ありません。
-