このセクションでは、物理バックアップの方法とそのアーキテクチャについて説明します。
物理バックアップ
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)をチェックし、不要なデータバックアップを削除します。データバックアップを削除する際、システムは保持されているデータバックアップのうち最も古い再生可能ポイントに基づいて、不要なログバックアップも自動的に削除します。