現在のバージョンでは、自動バックアップクリーンアップタスクのみがサポートされています。自動クリーンアップシナリオにおいて、クリーンアップをキャンセルしたタスクが再度スケジュールされて実行されるのを防ぐためには、まずクリーンアップポリシーを削除し、次に実行中のクリーンアップタスクを停止する必要があります。実行中のクリーンアップタスクのみをキャンセルしたい場合は、クリーンアップポリシーを削除する必要はありません。
クリーンアップポリシーの削除
注意事項および説明
クリーンアップポリシーを削除する際、テナント内のすべてのクリーンアップポリシーを削除すると、そのテナントの自動クリーンアップ機能が無効になります。
クリーンアップポリシーを削除しても、実行中のクリーンアップタスクには影響しません。ただし、次回の自動クリーンアップスケジューリング時に、削除されたクリーンアップポリシーに基づくクリーンアップタスクは生成されなくなります。
システムテナントでのクリーンアップポリシーの削除
rootユーザーでクラスタのsysテナントにログインします。以下のステートメントを実行して、クリーンアップポリシーを削除します。
obclient [(none)]> ALTER SYSTEM DROP DELETE BACKUP POLICY policy_name TENANT tenant_name;ここで:
POLICYパラメータは、削除対象のクリーンアップポリシー名を指定するために使用され、ビューCDB_OB_BACKUP_DELETE_POLICYから取得できます。TENANTパラメータは、ユーザーテナントのテナント名を指定するために使用されます。システムテナントからクリーンアップポリシーを削除する場合は、ユーザーテナント名を指定する必要があり、また指定できるのは1つのユーザーテナント名のみです。
システムテナントが
MySQLテナントのクリーンアップポリシーdefaultを削除する例は以下のとおりです:obclient [(none)]> ALTER SYSTEM DROP DELETE BACKUP POLICY 'default' TENANT MySQL;
ユーザーテナントでのクリーンアップポリシーの削除
テナント管理者がデータベースにログインします。
説明
MySQLテナントの管理者ユーザーは
rootユーザー、Oracleテナントの管理者ユーザーはSYSユーザーです。以下のステートメントを実行して、クリーンアップポリシーを削除します。
ステートメントは以下のとおりです:
obclient [(none)]> ALTER SYSTEM DROP DELETE BACKUP POLICY policy_name;ここで、
POLICYパラメータは、削除対象のクリーンアップポリシー名を指定するために使用されます。現在のテナントで設定されているクリーンアップポリシーは、ビューoceanbase.DBA_OB_BACKUP_DELETE_POLICYまたはsys.DBA_OB_BACKUP_DELETE_POLICYを参照して取得できます。現在のテナントのクリーンアップポリシー
defaultを削除する例は以下のとおりです:obclient [(none)]> ALTER SYSTEM DROP DELETE BACKUP POLICY 'default';
クリーンアップポリシーが削除されたかどうかの確認
クリーンアップポリシーの削除操作を実行した後、ビューを参照してクリーンアップポリシーが削除されたかどうかを確認できます。
システムテナントまたはユーザーテナントのテナント管理者がデータベースにログインします。
クリーンアップポリシーが削除されたかどうかを確認します。
システムテナントでは、
oceanbase.CDB_OB_BACKUP_DELETE_POLICYビューを使用して、指定したテナントのクリーンアップポリシーが削除されたかどうかを確認します。例:
obclient [(none)]> SELECT * FROM oceanbase.CDB_OB_BACKUP_DELETE_POLICY WHERE tenant_id = 1002; Empty setユーザーテナントでは、
oceanbase.DBA_OB_BACKUP_DELETE_POLICYビューまたはsys.DBA_OB_BACKUP_DELETE_POLICYビューを使用して、現在のテナントのクリーンアップポリシーが削除されたかどうかを確認します。MySQLテナント
obclient [(none)]> SELECT * FROM oceanbase.DBA_OB_BACKUP_DELETE_POLICY;Oracleテナント
obclient [SYS]> SELECT * FROM sys.DBA_OB_BACKUP_DELETE_POLICY;
クエリ結果に基づき、ビュー内に該当するテナントのレコードがなくなっていれば、そのテナントのクリーンアップポリシーは正常に削除されたことを意味します。
その後の処理
クリーンアップポリシーを削除した後、バックアップファイルが適時にクリーンアップされないことでディスク容量が上限になり、最終的にバックアップ操作に影響を与えることを避けるため、削除後は速やかに新しいクリーンアップポリシーを設定してください。クリーンアップポリシーの設定手順については、期限切れバックアップの自動クリーンアップを参照してください。
クリーンアップタスクのキャンセル
ユーザーテナントで実行中のクリーンアップタスクをキャンセルする
テナント管理者がデータベースにログインします。
以下のステートメントを実行して、現在のテナントで実行中のクリーンアップタスクを停止します。
obclient [(none)]> ALTER SYSTEM CANCEL DELETE BACKUP;
システムテナントで実行中のクリーンアップタスクをキャンセルする
rootユーザーを使用して、クラスタのsysテナントにログインします。以下のステートメントを実行して、指定されたテナントで実行中のクリーンアップタスクを停止します。
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;
クリーンアップタスクが停止されたことを確認する
クリーンアップタスクの実行を停止した後、システムテナントおよびユーザーテナントはどちらもビューを確認することで、クリーンアップタスクが停止されたかどうかを確認できます。
システムテナントまたはユーザーテナントのテナント管理者がデータベースにログインします。
クリーンアップタスクが停止されたかどうかを確認します。
クリーンアップタスクが実行中かどうかを確認します。
システムテナントは
oceanbase.CDB_OB_BACKUP_DELETE_JOBSビューを使用して、すべてのテナントのクリーンアップタスクの実行状況を確認します。ユーザーテナントはoceanbase.DBA_OB_BACKUP_DELETE_JOBSビューまたはsys.DBA_OB_BACKUP_DELETE_JOBSビューを使用して、現在所属するテナントのクリーンアップタスクの実行状況を確認します。システムテナントが指定したテナントのクリーンアップタスクの実行状況を確認する例は以下のとおりです:
obclient [(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: 2022-05-31 12:09:40.060284 JOB_LEVEL: USER_TENANT START_TIMESTAMP: 2022-06-01 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 [(none)]> SELECT * FROM oceanbase.CDB_OB_BACKUP_DELETE_JOBS where tenant_id = 1002; Empty setクリーンアップタスクの履歴を確認します。
システムテナントは
oceanbase.CDB_OB_BACKUP_DELETE_JOB_HISTORYビューを使用して、すべてのテナントの履歴クリーンアップタスクを確認します。MySQLモードのユーザーテナントはoceanbase.DBA_OB_BACKUP_DELETE_JOB_HISTORYビューを使用し、Oracleモードのユーザーテナントはsys.DBA_OB_BACKUP_DELETE_JOB_HISTORYビューを使用して、所属するテナントの履歴クリーンアップタスクを確認します。システムテナントが指定したテナントのクリーンアップタスクの履歴を確認する例は以下のとおりです:
obclient [(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: 2022-05-31 12:09:40.060284 JOB_LEVEL: USER_TENANT START_TIMESTAMP: 2022-06-01 12:09:53.389512 END_TIMESTAMP: 2022-06-01 12:10:36.829576 STATUS: CANCELED TASK_COUNT: 2 SUCCESS_TASK_COUNT: 2 RESULT: 0 COMMENT: 1 row in setSTATUSに対応する値がCOMPLETED、FAILED、またはCANCELEDの場合、クリーンアップタスクは停止されたことを意味します。