このセクションでは、物理バックアップの方法とそのアーキテクチャについて説明します。
物理バックアップ
OceanBaseデータベースは、オンライン物理バックアップ機能を提供しており、この機能はログアーカイブとデータバックアップという2つのサブ機能で構成されています。ログバックアップはテナントが生成するログを継続的に維持し、データバックアップはスナップショットポイントのバックアップを維持します。これら2つを組み合わせることで、バックアップ時点以降の任意の時間まで復旧する機能を提供します。
ログアーカイブ
OceanBaseデータベースは、テナントレベルでのログアーカイブ機能を提供しています。
ログアーカイブの処理は、ログストリームのリーダー複製が担当します。ログストリームごとにログをバックアップすることで、Log Entryレベルの物理バックアップが実現されます。
ログバックアップの周期はデフォルトで2分であり、準リアルタイムのバックアップ機能を提供します。また、デフォルトでは24時間ごとにディレクトリを分割する機能が備わっており、ユーザーがバックアップデータを管理するのに便利です。
以前のバージョン(V2.2.xおよびV3.x)のOceanBaseデータベースと比較して、V4.0.0ではパーティションレベルのログ管理に基づくログアーカイブが廃止されたため、アーカイブ時のI/O回数が大幅に削減され、バックアップメディアへの性能要件も効果的に低減されました。
データバックアップ
OceanBaseデータベースは、テナントレベルでのデータバックアップ機能を提供しています。
データバックアップのプロセスはすべてRoot Serviceノードによってスケジュールされ、ログストリームごとにバックアップが行われます。バックアップデータには、パーティションのメタ情報とマクロブロックデータが含まれます。物理バックアップとはマクロブロックデータの物理的なバックアップを指し、メタ情報はメモリシリアライズ後の値です。
OceanBaseデータベースのベースラインマクロブロックには、グローバルに一意の論理識別子が付与されており、この論理識別子により増分バックアップでマクロブロックを再利用する機能が提供されます。OceanBaseデータベースにおいて、1回の増分バックアップとは、フルメタ情報のバックアップと増分データマクロブロックのバックアップを指します。増分バックアップの復旧とフルバックアップの復旧はプロセスが基本的に同一であり、性能上の差異もありませんが、論理識別子に基づいて異なるbackup_set間でマクロブロックが読み取られます。
以前のバージョン(V2.2.xおよびV3.x)のOceanBaseデータベースと比較して、V4.xではデータバックアップにおけるデータスナップショットポイント保持への依存性がなくなり、データバックアップ中にMajor Freezeを開始してもノード容量の膨張が発生しなくなりました。
V4.xバージョンでは、OceanBaseデータベースはバックアップサーバーを選択する際に、ログストリームのフォロワー複製を優先的に考慮します。これにより、ログストリームのリーダー複製の負荷が軽減され、バックアップ効率が向上します。具体的には、システムはまず条件を満たすすべてのフォロワー複製をバックアップ対象とし、必要に応じてのみリーダー複製を選択します。この戦略により、バックアッププロセスがより効率的かつ安定します。
データクリーンアップ
OceanBaseデータベースは、現在の設定パス下で自動クリーンアップ機能を提供しており、この機能はRoot Serviceが定期的にユーザーが設定したバックアップクリーンアップポリシー(DELETE BACKUP POLICY)をチェックし、不要なデータバックアップを削除します。データバックアップを削除すると同時に、システムは保持されているデータバックアップの中で最小の再生ポイントに基づいて、不要なログバックアップも自動的に削除します。