SAPHANA-永続レイヤー
SAP HANAデータベース永続化レイヤーは、すべてのトランザクションのログを管理して、標準のデータバックアップとシステムの復元機能を提供します。
これにより、再起動後またはシステムクラッシュ後にデータベースを最新のコミット状態に復元し、トランザクションを完全にまたは完全に元に戻すことができます。SAP HANA Persistent Layerはインデックスサーバーの一部であり、HANAシステムのデータとトランザクションログボリュームがあり、メモリ内データはこれらのボリュームに定期的に保存されます。HANAシステムには、独自の永続性を持つサービスがあります。また、最後の保存ポイントからのすべてのデータベーストランザクションの保存ポイントとログも提供します。
SAP HANAデータベースに永続レイヤーが必要なのはなぜですか?
メインメモリは揮発性であるため、再起動または停電中にデータが失われます。
データは永続メディアに保存する必要があります。
バックアップと復元が利用可能です。
これにより、再起動後にデータベースが最新のコミット済み状態に復元され、トランザクションが完全に実行されるか、完全に取り消されます。
データとトランザクションログのボリューム
データベース内のデータに対するこれらの変更が定期的にディスクにコピーされるように、データベースは常に最新の状態に復元できます。データの変更と特定のトランザクションイベントを含むログファイルも定期的にディスクに保存されます。システムのデータとログはログボリュームに保存されます。
データボリュームには、SQLデータと取り消しログ情報、およびSAPHANA情報モデリングデータが格納されます。この情報は、ブロックと呼ばれるデータページに保存されます。これらのブロックは、セーブポイントと呼ばれる一定の時間間隔でデータボリュームに書き込まれます。
ログボリュームには、データの変更に関する情報が格納されます。2つのログポイント間で行われた変更は、ログボリュームに書き込まれ、ログエントリと呼ばれます。トランザクションがコミットされると、ログバッファに保存されます。
セーブポイント
SAP HANAデータベースでは、変更されたデータがメモリからディスクに自動的に保存されます。これらの定期的な間隔はセーブポイントと呼ばれ、デフォルトでは5分ごとに発生するように設定されています。SAP HANAデータベースの永続レイヤーは、これらのセーブポイントを定期的に実行します。この操作中に、変更されたデータがディスクに書き込まれ、REDOログもディスクに保存されます。
セーブポイントに属するデータは、ディスク上のデータの一貫した状態を示し、次のセーブポイント操作が完了するまでそこに残ります。永続データへのすべての変更について、REDOログエントリがログボリュームに書き込まれます。データベースが再起動した場合、最後に完了したセーブポイントからのデータをデータボリュームから読み取り、ログエントリをやり直してログボリュームに書き込むことができます。
セーブポイントの頻度は、global.iniファイルで構成できます。セーブポイントは、データベースのシャットダウンやシステムの再起動などの他の操作によって開始できます。以下のコマンドを実行してセーブポイントを実行することもできます-
ALTERシステムのセーブポイント
データとREDOログをログボリュームに保存するには、これらをキャプチャするのに十分なディスク容量があることを確認する必要があります。そうしないと、システムがディスクフルイベントを発行し、データベースが機能しなくなります。
HANAシステムのインストール中に、データおよびログボリュームの保存場所として次のデフォルトディレクトリが作成されます-
- /usr/sap/<SID>/SYS/global/hdb/data
- /usr/sap/<SID>/SYS/global/hdb/log
これらのディレクトリはglobal.iniファイルで定義されており、後の段階で変更できます。
セーブポイントは、HANAシステムで実行されるトランザクションのパフォーマンスに影響を与えないことに注意してください。セーブポイント操作中、トランザクションは通常どおり実行され続けます。HANAシステムが適切なハードウェアで実行されている場合、システムのパフォーマンスに対するセーブポイントの影響はごくわずかです。