バックアップが正常に完了した後、業務ニーズに応じてテナントに対してクリーンアップポリシーを設定できます。クリーンアップポリシーが設定されたテナントでは、1時間ごとに自動クリーンアップがトリガーされ、期限切れのバックアップが適時に削除されるようになります。
現在のバージョンでは、期限切れバックアップの手動クリーンアップはサポートされておらず、自動クリーンアップのみがサポートされています。
注意事項
ログアーカイブデータのクリーンアップはデータのバックアップに依存しているため、ログアーカイブデータをクリーンアップする前に、既にデータバックアップファイルが存在していることを確認してください。データバックアップファイルがない場合、ログアーカイブデータをクリーンアップすることはできません。
自動クリーンアップは、
DATA_BACKUP_DESTおよびLOG_ARCHIVE_DESTで設定されたバックアップ宛先およびアーカイブ宛先のデータのみを対象とします。バックアップ宛先またはアーカイブ宛先が変更された場合、元のバックアップパスまたはアーカイブパスのデータはOceanBaseデータベースからクリーンアップできなくなります。自動クリーンアップでは、少なくとも1つの有効なバックアップデータが保持されます。有効なバックアップデータが1つしかない場合、その有効なデータは決してクリーンアップされません。
バックアップメディアによって、バックアップの自動クリーンアップ結果は異なります:
- バックアップメディアがNFSまたはS3互換のオブジェクトストレージ(OBS、GCSなど)の場合、バックアップデータのクリーンアップ時にシステムは要件を満たすバックアップファイルを直接削除します。
- バックアップ宛先がS3/COS(S3プロトコルでアクセス)の場合、バックアップファイルのクリーンアップ方法は
data_backup_destおよびlog_archive_dest内のdelete_modeパラメータの値によって決まります。このパラメータの詳細については、SET LOG_ARCHIVE_DEST および SET DATA_BACKUP_DEST を参照してください。
特に、パス属性に
enable_worm=trueパラメータが設定されている場合、バックアップデータの自動クリーンアップ時にシステムはRECOVERY_WINDOWで指定された時間に基づいて条件を満たすバックアップセットを選択してクリーンアップしますが、最終的にクリーンアップが成功するかどうかは、そのパスに対応するクリーンアップモード(delete_modeパラメータの値)および対応するBucketの保持ポリシーに関係します。注意
enable_worm=trueパラメータは、コンプライアンス保持ポリシー(WORM)が有効な場合に適用されます。V4.3.5バージョンについて、OceanBaseデータベースはV4.3.5 BP2バージョンから、WORMポリシーが設定されたAlibaba Cloud OSS Bucketをバックアップまたはアーカイブパスとしてサポートしています。例えば、あるバックアップセットが
RECOVERY_WINDOWで指定された時間を超えている場合でも、それが依然としてWORM(Write Once Read Many)保持期間内である場合:そのバックアップセットのクリーンアップモードが
deleteの場合、OceanBaseデータベースはそのバックアップセットをクリーンアップしようとして失敗します。そのObjectの保持期間が満了するまで待機し、その後にバックアップセットをクリーンアップする必要があります。そのバックアップセットのクリーンアップモードが
taggingの場合、OceanBaseデータベースはそのバックアップセットにタグを付け、最終的にオブジェクトストレージがライフサイクルの終了時点でWORM保持期間を過ぎた後に削除を実行します。
クリーンアップポリシーの設定
ユーザーテナントにおけるクリーンアップポリシーの設定
ユーザーテナントのテナント管理者がデータベースにログインします。
クリーンアップポリシーを設定することで、テナントの自動クリーンアップ機能を有効にします。
ステートメントは以下のとおりです:
obclient> ALTER SYSTEM ADD DELETE BACKUP POLICY policy_name RECOVERY_WINDOW recovery_window;その中で:
POLICYパラメータはクリーンアップポリシー名を指定するために使用されます。現在はdefaultのみサポートされており、自動クリーンアップの範囲は現在の構成パラメータdata_backup_destおよびlog_archive_dest内のバックアップに限られます。RECOVERY_WINDOWパラメータは、バックアップデータの復元可能な時間窓を制御します。このパラメータの詳細については、recovery_windowパラメータの紹介を参照してください。
例:
obclient> ALTER SYSTEM ADD DELETE BACKUP POLICY 'default' RECOVERY_WINDOW '7d';説明
自動クリーンアップタスクは、バックグラウンドシステムによって毎時定期的にトリガーされるため、クリーンアップポリシーの設定完了後、対応するクリーンアップタスクを確認するまでに一定の時間(1時間以内)を要する場合があります。
システムテナントにおけるクリーンアップポリシーの設定
rootユーザーを使用して、クラスタのsysテナントにログインします。クリーンアップポリシーを設定することで、テナントの自動クリーンアップ機能を有効にします。
ステートメントは以下のとおりです:
obclient> ALTER SYSTEM ADD DELETE BACKUP POLICY policy_name RECOVERY_WINDOW recovery_window TENANT tenant_name;その中で:
POLICYパラメータはクリーンアップポリシー名を指定するために使用されます。現在はdefaultのみサポートされており、自動クリーンアップの範囲は現在の構成パラメータdata_backup_destおよびlog_archive_dest内のバックアップに限られます。RECOVERY_WINDOWパラメータは、バックアップデータの復元可能な時間窓を制御します。このパラメータの詳細については、recovery_windowパラメータの紹介を参照してください。TENANTパラメータは、クリーンアップポリシーが適用されるテナントを指定するために使用されます。ユーザーテナントのテナント名を指定する必要があり、現在は1つのテナント名のみ指定が可能です。注意
現在はテナントレベルのクリーンアップポリシーの設定のみサポートされており、クラスタレベルのクリーンアップポリシーの設定はサポートされていません。各コマンドでは1テナントにつき1つのクリーンアップポリシーしか設定できません。
システムテナントが
MySQLテナントにクリーンアップポリシーを指定する例:obclient> ALTER SYSTEM ADD DELETE BACKUP POLICY 'default' RECOVERY_WINDOW '7d' TENANT MySQL;説明
自動クリーンアップタスクは、バックグラウンドシステムによって毎時定期的にトリガーされるため、クリーンアップポリシーの設定完了後、対応するクリーンアップタスクを確認するまでに一定の時間(1時間以内)を要する場合があります。
設定済みのクリーンアップポリシーを確認する
システムテナントとユーザーテナントは、ビューを照会することで現在設定されているすべてのクリーンアップポリシーを取得できます。
システムテナントまたはユーザーテナントのテナント管理者がデータベースにログインします。
テナントが設定したクリーンアップポリシーを確認します。
システムテナントは、
oceanbase.CDB_OB_BACKUP_DELETE_POLICYビューを使用してすべてのテナントのクリーンアップポリシーを確認します。例:
obclient> SELECT * FROM oceanbase.CDB_OB_BACKUP_DELETE_POLICY; +-----------+-------------+-----------------+ | TENANT_ID | POLICY_NAME | RECOVERY_WINDOW | +-----------+-------------+-----------------+ | 1002 | default | 7d | +-----------+-------------+-----------------+ 1 row in setユーザーテナントは、
oceanbase.DBA_OB_BACKUP_DELETE_POLICYビューまたはsys.DBA_OB_BACKUP_DELETE_POLICYビューを使用して、現在のテナントのクリーンアップポリシーを確認します。MySQLテナント
obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_BACKUP_DELETE_POLICY; +-------------+-----------------+ | POLICY_NAME | RECOVERY_WINDOW | +-------------+-----------------+ | default | 7d | +-------------+-----------------+ 1 row in setOracleテナント
obclient [SYS]> SELECT * FROM sys.DBA_OB_BACKUP_DELETE_POLICY; +-------------+-----------------+ | POLICY_NAME | RECOVERY_WINDOW | +-------------+-----------------+ | default | 7d | +-------------+-----------------+ 1 row in set