現在のバージョンでは、バックアップの自動クリーンアップと手動クリーンアップがサポートされています。クリーンアップタスクをキャンセルする際は、以下の点に注意してください。
- 自動クリーンアップの場合、キャンセルしたタスクが再度スケジュールされて実行されるのを防ぐためには、まずクリーンアップポリシーを削除し、次に実行中のクリーンアップタスクを停止する必要があります。実行中のクリーンアップタスクのみをキャンセルしたい場合は、クリーンアップポリシーを削除する必要はありません。
- 手動クリーンアップの場合は、クリーンアップタスクを直接キャンセルするだけで済みます。
システムテナントで実行中のクリーンアップタスクをキャンセルする
rootユーザーでクラスタのsysテナントにログインします。接続例は以下のとおりです。データベースへの接続時は、実際の環境に合わせてください。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A以下のステートメントを実行して、指定されたテナントで実行中のクリーンアップタスクを停止します。
obclient [(none)]> ALTER SYSTEM CANCEL DELETE BACKUP TENANT tenant_name_list;ここで、
TENANTパラメータは、クリーンアップタスクをキャンセルするユーザーテナント名を指定するために使用されます。複数のユーザーテナント名を一度に指定することも可能で、指定されたテナント内で実行中のクリーンアップタスクのみをキャンセルすることを意味します。システムテナントは、
MySQLテナントおよびOracleテナント上で実行中のクリーンアップタスクをキャンセルします。例:obclient [(none)]> ALTER SYSTEM CANCEL DELETE BACKUP TENANT MySQL, Oracle;TENANTパラメータを指定しない場合、すべてのユーザーテナントで実行中のクリーンアップタスクを同時にキャンセルすることを意味します。obclient [(none)]> ALTER SYSTEM CANCEL DELETE BACKUP;クリーンアップタスクが停止したかどうかを確認します。
クリーンアップタスクが実行中かどうかを確認します。
obclient(root@sys)[(none)]> SELECT * FROM oceanbase.CDB_OB_BACKUP_DELETE_JOBS WHERE tenant_id = 1002\Gクエリ結果は次のとおりです:
*************************** 1. row *************************** TENANT_ID: 1002 JOB_ID: 1 INCARNATION: 1 INITIATOR_TENANT_ID: 1002 INITIATOR_JOB_ID: 7 EXECUTOR_TENANT_ID: 1002 TYPE: DELETE OBSOLETE BACKUP PARAMETER: expired_time:2025-09-12 12:09:40.060284 JOB_LEVEL: USER_TENANT START_TIMESTAMP: 2025-09-13 12:09:53.389512 END_TIMESTAMP: STATUS: CANCELING TASK_COUNT: 2 SUCCESS_TASK_COUNT: 1 RESULT: 0 COMMENT: 1 row in setクエリ結果に基づき、
STATUSの対応する値がINIT、DOING、またはCANCELINGの場合、クリーンアップタスクはまだ終了していないことを意味します。クエリ結果が空の場合、上記ビューでテナントが実行中のクリーンアップタスクを検索できないことを意味し、次のステップに進んで、クリーンアップタスクの履歴を確認して実行結果を確認できます。
クリーンアップタスクの履歴を確認します。
obclient(root@sys)[(none)]> SELECT * FROM oceanbase.CDB_OB_BACKUP_DELETE_JOB_HISTORY WHERE tenant_id = 1002\Gクエリ結果は次のとおりです:
*************************** 1. row *************************** TENANT_ID: 1002 JOB_ID: 1 INCARNATION: 1 INITIATOR_TENANT_ID: 1002 INITIATOR_JOB_ID: 7 EXECUTOR_TENANT_ID: 1002 TYPE: DELETE OBSOLETE BACKUP PARAMETER: expired_time:2025-09-12 12:09:40.060284 JOB_LEVEL: USER_TENANT START_TIMESTAMP: 2025-09-13 12:09:53.389512 END_TIMESTAMP: 2025-09-13 12:10:36.829576 STATUS: CANCELED TASK_COUNT: 2 SUCCESS_TASK_COUNT: 2 RESULT: 0 COMMENT: 1 row in setSTATUSの対応する値がCOMPLETED、FAILED、またはCANCELEDの場合、クリーンアップタスクは停止したことを意味します。
ユーザーテナントで実行中のクリーンアップタスクをキャンセルする
ユーザーテナントのテナント管理者がデータベースにログインします。
説明
MySQLテナントの管理者ユーザーは
rootユーザー、Oracleテナントの管理者ユーザーはSYSユーザーです。接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@mysql001#obdemo -p***** -A以下のステートメントを実行して、現在のテナントで実行中のクリーンアップタスクを停止します。
obclient> ALTER SYSTEM CANCEL DELETE BACKUP;クリーンアップタスクが停止したかどうかを確認します。
クリーンアップタスクが実行中かどうかを確認します。
MySQLモードOracleモードMySQLモードでのクエリ例は以下のとおりです:
obclient(root@mysql001)[(none)]> SELECT * FROM oceanbase.DBA_OB_BACKUP_DELETE_JOBS\GOracleモードでのクエリ例は以下のとおりです。
obclient(SYS@oracle001)[SYS]> SELECT * FROM SYS.DBA_OB_BACKUP_DELETE_JOBS\Gクエリ結果によると、
STATUSの値がINIT、DOING、またはCANCELINGの場合、クリーンアップタスクはまだ終了していないことを意味します。クエリ結果が空の場合、上記ビューでテナントが実行中のクリーンアップタスクを検索できないことを意味します。次の手順に進み、クリーンアップタスクの履歴を確認して、クリーンアップタスクの実行結果を確認できます。
クリーンアップタスクの履歴を確認します。
MySQLモードOracleモードMySQLモードでのクエリ例は以下のとおりです:
obclient(root@mysql001)[(none)]> SELECT * FROM oceanbase.DBA_OB_BACKUP_DELETE_JOB_HISTORY\GOracleモードでのクエリ例は以下のとおりです:
obclient(SYS@oracle001)[SYS]> SELECT * FROM SYS.DBA_OB_BACKUP_DELETE_JOB_HISTORY\Gクエリ結果で、
STATUSの値がCOMPLETED、FAILED、またはCANCELEDの場合、クリーンアップタスクは停止したことを意味します。