バックアップとリカバリの実行

ログバックアップの設定

Objective

After completing this lesson, you will be able to ログ領域のバックアップを設定します。

ログ管理

ビジネスシナリオ

SAP HANA の自動ログバックアップメカニズムとさまざまなログモードを理解し、バックアップおよびリカバリ方針に従ってログバックアップを設定できるようになる必要があります。

ログ書込

データの変更はすべて REDO ログバッファに記録されます。データベーストランザクションがコミットされると、REDO ログバッファはディスクのログセグメントに保存されます。また、REDO ログバッファが一杯になると、コミットが送信されていない場合でも、REDO ログバッファはディスクに書き込まれます。

通常、複数のログバッファがログセグメントに結合されます。ログセグメントサイズは、パラメータ log_segment_size_mb を使用して設定することができます。インデックスサーバの場合、デフォルトのログセグメントサイズは 1 GB です。

自動ログバックアップ

enable_auto_log_backup パラメータを使用して、自動ログバックアップを有効または無効にすることができます。デフォルト設定はenable_auto_log_backup = yesです。

ログセグメントを再利用できるようにするために、自動ログバックアップが実行されます。ログバックアップ時に、ログセグメントが basepath_logvolume ロケーションからロケーション basepath_logbackup にコピーされます。

注記

RAM にデータを格納するすべての SAP HANA サービスには、専用のログセグメントとログバックアップを含む独自のトランザクションログメカニズムがあります。

ログセグメントは、以下の状況で自動的にバックアップされます。

  • ログセグメントが満杯になったとき

  • 設定されたタイムアウトのしきい値を超えたためログセグメントがクローズされたとき

  • データベースが起動されたとき

ログセグメントは、バックアップ後にシステムによってのみ上書きできます。通常のログバックアップが実行されない場合、ファイルシステム basepath_logvolume が満杯になるリスクがあります。

注意

ログセグメントはオペレーティングシステムレベルの basepath_logvolume からは削除しないでください。削除すると、ログ領域が使用できなくなり、データベースが停止するためです。

ロケーション basepath_logbackup が満杯にならないように、バックアップおよびリカバリ方針で定義されたバックアップサイクルに従ってログバックアップをアーカイブしてください。

注記

サードパーティツールを使用して作成されたバックアップでは、常に宛先が使用されます。 /usr/sap/<SID>/SYS/global/hdb/backint

ログモード

ログモード

ログセグメントによってログボリュームで占有されている領域を再利用することができます。log_mode パラメータは、ログセグメントの再利用方法を制御します。

log_mode = normal

ログバックアップが実行されるとすぐに、設定 log_mode = normal によりログセグメントが解放されます。これはデフォルトのログモードであり、リカバリできるようにする必要があるすべてのシステムに必要です。

log_mode = normal を使用して、ポイントインタイムリカバリ、フルリカバリ、および特定のデータバックアップへのリカバリが可能です。

log_mode = normal はデフォルトモードであり、以下の機能をサポートしています。

  • バックアップされるまでログセグメントを保持します。

  • ログセグメントが満杯になった場合、またはログセグメントが 15 分以上経過すると、ログバックアップが自動的に実行されます。ログバックアップのタイムアウトは、パラメータ log_backup_timeout_s を使用して設定することができます。

  • パラメータで設定されたログバックアップディレクトリ basepath_logbackup

  • バックアップカタログを更新します。

  • ログ再生のある使用可能なデータバックアップを、コミット済みの最新の状態に復元します。

  • ログ再生のない使用可能なすべてのデータバックアップをリストアします。

ログ領域のログセグメントは、ログバックアップが正常に実行された後にのみ、上書きのためにリリースされます。状況によっては、ログセグメントのバックアップを待機しているため、リリースに遅延が生じる場合があります。この遅延により、ログ領域が大きくなる可能性があります。SAP HANA によって新しいログセグメントが自動的に登録されるよりも迅速にログセグメントのバックアップおよびリリースができない場合、ログボリューム領域が満杯になるまで新しいログセグメントを追加することで作業を続行できます。

本稼動システムでは、通常のログモードを使用してください。これは、SAP HANA データベースのリカバリ中のデータの復元に最高のセキュリティが提供されるためです。通常のログモードでは、データバックアップに加えて、リカバリに使用できるログバックアップが自動的に登録されます。ただし、ログバックアップのため、このログモードではさらに多くのバックアップ領域が必要です。したがって、データバックアップおよびログバックアップを管理するための操作コンセプトは、通常のログモードを使用するための前提条件です。

ログモードパラメータを変更した後、データベースシステムを再起動して変更を有効化します。また、データベースのフルデータバックアップを作成します。

注記

インストール後、SAP HANA は一時的にログ上書きモードで実行されます。最初のフルデータバックアップを登録すると、SAP HANA は自動的にデフォルトの通常ログモードに切り替わります。

log_mode = overwrite

この設定を使用すると、ログセグメントがセーブポイントによって解放され、ログバックアップを実行する必要がなくなります。このログモードは、リカバリする必要がないテストインストールやトレーニングシステムなどに役立ちます。

log_mode = overwrite では、ログバックアップが登録されていないため、ポイントインタイムリカバリは実行できません。リカバリには、完全データバックアップのみを使用できます。リカバリに使用できるオプションは、Recover to a specific data backup のみです。

注意

上書きモード (log_mode = overwrite) は、本稼働システムでは推奨されません。

ログバックアップのタイムアウトパラメータ

global.ini 設定ファイルのパラメータ log_backup_timeout_s によって、ログバックアップが登録される間隔が定義されます。デフォルトのログバックアップ間隔は 15 分 (900 秒) です。

ログバックアップの適切な間隔を指定すると、適切なリカバリポイント目標 (RPO) を使用して SAP HANA データベースをリカバリすることができます。データベース障害が発生した場合、RPO は、ログ領域をリカバリに使用できず、データバックアップ、デルタバックアップ、およびログバックアップのみが利用可能な場合に失われるデータの最大タイムスパンです。

注記

ログバックアップ間隔前にログセグメントが満杯になると、ログは自動的にバックアップされます。時間間隔が 0 の場合、ログバックアップは、ログセグメントが満杯になったときと、サービスが再起動された場合にのみ作成されます。

注記

log_backup_timeout_s パラメータは、enable_auto_log_backup が設定されている場合にのみ有効になります。

log_mode = normal の場合、これらのパラメータには以下の値を設定する必要があります。

  • enable_auto_log_backup = yes

  • log_backup_timeout_s > 0

完全なポイントインタイムリカバリ性を実現するには、本稼動システムで自動ログバックアップを有効にします。自動ログバックアップが無効になると、管理者にアラートが通知されます。

注記

BACKINT 使用時のログバックアップの改善点は以下のとおりです。

  • 2 つの SAP HANA データベースサービスが同じテープからログバックアップを要求したときに、サードパーティバックアップツールでデッドロックが発生する場合があります (テープへの同時アクセスはありません)。テープを使用するサードパーティバックアップツールからログバックアップを取得する際のデッドロック状況を回避するために、SAP HANA の内部リカバリ処理が調整されました。

  • シナリオによっては、ログバックアップ用のサードパーティバックアップエージェントの開始に、実際のログバックアップ自体よりも時間がかかる場合があります。これにより、高負荷時に多数の保留ログバックアップが発生し、最悪のケースではログが満杯になる可能性があります (ログセグメントは、ログバックアップが正常に実行された後でのみ上書きのためにリリースされます)。SAP HANA では、バックアップ可能なサービスのすべてのログセグメントに対して、サードパーティエージェントへの単一のバックアップ呼出が使用されるようになりました。

統合ログバックアップ

適切に運用された SAP HANA システムでは、多数のログバックアップが登録されます。通常、1 日あたり 2,000 を超えるバックアップファイルがあります。外部バックアップツールには、これほど多くのファイルのデジタル化に関する問題がある場合があります。SAP HANA では、作成されるバックアップファイルの数を減らすために複数のオプションが使用されます。

ログバックアップのパフォーマンスを改善するために、SAP HANA では、特定の時間にバックアップ可能なサービスのすべてのログセグメントを 1 つのログバックアップに書き込むことができます。この単一ログバックアップの最大サイズを定義することができます。このオプションは、ファイルベースのバックアップとサードパーティツールの両方でサポートされています。

注記

ログバックアップを統合するオプションは、主に、短時間で小さなバックアップを多数登録するサードパーティバックアップツールでの使用を目的としています。ただし、統合ログバックアップは、サードパーティバックアップツールとファイルシステムバックアップの両方でサポートされています。

パラメータ log_backup_interval_mode により、ログバックアップをいつトリガするかが定義されます。

log_backup_interval_mode = immediate
"immediate" モードでは、ログセグメントが満杯になった直後、または、ログセグメントのサービス固有のタイムアウトに達するまでにログバックアップが実行されます。
log_backup_interval_mode = service
"service" モードでは、サービス固有のタイムアウトに達した後にのみログバックアップが実行されます。このバックアップでは、すべてのログセグメントが "writing"、"closed"、および "truncated" のステータスで囲まれます。

単一のバックアップ操作で処理されるログセグメントの最大サイズは、global.ini ファイルの backup セクションのパラメータ max_log_backup_size によって定義されます。デフォルト値は 16 GB です。