バックアップパスまたはアーカイブパスを置き換えた後、不要になった元のデータのバックアップパスまたはアーカイブパスをクリーンアップできます。データのバックアップパスまたはアーカイブパスをクリーンアップすると、そのパス配下のすべてのバックアップセットやログアーカイブファイルが削除されます。
使用上の制限
置き換えられたバックアップまたはアーカイブパスのみをクリーンアップできます。現在使用中のバックアップまたはアーカイブパスのクリーンアップはサポートされていません。
クリーンアップ中の古いパスをバックアップパスまたはアーカイブパスに再設定することはできません。
バックアップパスのクリーンアップ
システムテナントが指定ユーザーテナントのバックアップパスをクリーンアップする場合
rootユーザーでクラスタのsysテナントにログインします。接続例は以下のとおりです。データベースへの接続時は、実際の環境に従ってください。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -Aテナント情報を確認し、テナントの
TENANT_IDを取得します。このドキュメントでは、テナントが
mysql001の場合を例に説明します。クエリ例は以下のとおりです:obclient(root@sys)[(none)]> SELECT TENANT_ID, TENANT_NAME, TENANT_TYPE FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'mysql001';クエリ結果は次のとおりです:
+-----------+-------------+-------------+ | TENANT_ID | TENANT_NAME | TENANT_TYPE | +-----------+-------------+-------------+ | 1002 | mysql001 | USER | +-----------+-------------+-------------+ 1 row in setクエリ結果によると、このテナントの
TENANT_IDは1002です。クリーンアップ対象のバックアップパスを取得します。
指定したテナントのすべてのバックアップパス情報を確認します。
obclient(root@sys)[(none)]> SELECT TENANT_ID, PATH, DEST_TYPE, STATUS FROM oceanbase.CDB_OB_BACKUP_STORAGE_INFO WHERE TENANT_ID = 1002 AND DEST_TYPE = 'backup_data';クエリ結果は次のとおりです:
+-----------+-------------------------------+-------------+--------+ | TENANT_ID | PATH | DEST_TYPE | STATUS | +-----------+-------------------------------+-------------+--------+ | 1002 | file:///data/nfs/backup/data2 | backup_data | NORMAL | | 1002 | file:///data/nfs/backup/data1 | backup_data | NORMAL | +-----------+-------------------------------+-------------+--------+ 2 rows in setクエリ結果によると、このテナントには2つのバックアップパス情報があります。
指定したテナントが現在使用中のバックアップパスを確認します。
obclient(root@sys)[(none)]> SELECT * FROM oceanbase.CDB_OB_BACKUP_PARAMETER WHERE TENANT_ID = 1002;クエリ結果は次のとおりです:
+-----------+------------------+-------------------------------+ | TENANT_ID | NAME | VALUE | +-----------+------------------+-------------------------------+ | 1002 | data_backup_dest | file:///data/nfs/backup/data2 | +-----------+------------------+-------------------------------+ 1 row in setクエリ結果によると、現在使用中のバックアップパスは
file:///data/nfs/backup/data2です。したがって、クリーンアップ対象のバックアップパスfile:///data/nfs/backup/data1は現在使用中のものではないため、クリーンアップできます。
以下のコマンドを実行して、指定されたバックアップパスをクリアします。
ステートメントは以下のとおりです:
ALTER SYSTEM DELETE BACKUP ALL DATA_BACKUP_DEST [=] 'data_backup_path' TENANT [=] tenant_name;ここで:
data_backup_path:クリアするデータバックアップパスを指定します。tenant_name:データバックアップパスをクリアするユーザーテナントを指定します。
例:
OSSNFSシステムテナントがテナント
mysql001のOSSバックアップパスoss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.comをクリアします。obclient(root@sys)[(none)]> ALTER SYSTEM DELETE BACKUP ALL DATA_BACKUP_DEST ='oss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.com' TENANT = mysql001;システムテナントがテナント
mysql001のNFSバックアップパスfile:///data/nfs/backup/data1をクリアします。obclient(root@sys)[(none)]> ALTER SYSTEM DELETE BACKUP ALL DATA_BACKUP_DEST ='file:///data/nfs/backup/data1' TENANT = mysql001;コマンドの実行が成功した後、ビューを使用してクリア中のパス情報を確認できます。
obclient(root@sys)[(none)]> SELECT TENANT_ID, PATH, DEST_TYPE, STATUS FROM oceanbase.CDB_OB_BACKUP_STORAGE_INFO WHERE TENANT_ID = 1002 AND PATH = 'file:///data/nfs/backup/data1';クエリ結果の例は以下のとおりです:
+-----------+-------------------------------+-------------+----------+ | TENANT_ID | PATH | DEST_TYPE | STATUS | +-----------+-------------------------------+-------------+----------+ | 1002 | file:///data/nfs/backup/data1 | backup_data | DELETING | +-----------+-------------------------------+-------------+----------+ 1 row in setクエリ結果から、パスのクリア処理中に、対応するパスの
STATUSフィールドの値がDELETINGに変わることが確認できます。クリアが完了すると、対応する行は削除されます。
ユーザーテナントが自身のテナントのバックアップパスをクリアする場合
ユーザーテナントのテナント管理者がデータベースにログインします。
説明
MySQLテナントの管理者ユーザーは
rootユーザー、Oracleテナントの管理者ユーザーはSYSユーザーです。接続の例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@mysql001#obdemo -p***** -Aクリーンアップ対象のバックアップパスを取得します。
このテナント配下のすべてのバックアップパス情報を確認します。
MySQLモードOracleモードMySQLモードでのクエリ例は以下のとおりです:
obclient(root@mysql001)[(none)]> SELECT PATH, DEST_TYPE, STATUS FROM oceanbase.DBA_OB_BACKUP_STORAGE_INFO WHERE DEST_TYPE = 'backup_data';Oracleモードでのクエリ例は以下のとおりです:
obclient(SYS@oracle001)[SYS]> SELECT TENANT_ID, PATH, DEST_TYPE, STATUS FROM SYS.DBA_OB_BACKUP_STORAGE_INFO WHERE DEST_TYPE = 'backup_data'\Gクエリ結果の例は以下のとおりです:
+-------------------------------+-------------+--------+ | PATH | DEST_TYPE | STATUS | +-------------------------------+-------------+--------+ | file:///data/nfs/backup/data2 | backup_data | NORMAL | | file:///data/nfs/backup/data1 | backup_data | NORMAL | +-------------------------------+-------------+--------+ 2 rows in setクエリ結果によると、このテナント配下には2つのバックアップパス情報があります。
このテナントが現在使用しているバックアップパスを確認します。
MySQLモードOracleモードMySQLモードでのクエリ例は以下のとおりです:
obclient(root@mysql001)[(none)]> SELECT * FROM oceanbase.DBA_OB_BACKUP_PARAMETER;Oracleモードでのクエリ例は以下のとおりです:
obclient(SYS@oracle001)[SYS]> SELECT * FROM SYS.DBA_OB_BACKUP_PARAMETER;クエリ結果の例は以下のとおりです:
+------------------+-------------------------------+ | NAME | VALUE | +------------------+-------------------------------+ | data_backup_dest | file:///data/nfs/backup/data2 | +------------------+-------------------------------+ 1 row in setクエリ結果によると、現在使用中のバックアップパスは
file:///data/nfs/backup/data2であるため、クリーンアップ対象のバックアップパスfile:///data/nfs/backup/data1は使用中ではなく、クリーンアップできます。
以下のコマンドを実行して、指定されたバックアップパスをクリアします。
ステートメントは以下のとおりです:
ALTER SYSTEM DELETE BACKUP ALL DATA_BACKUP_DEST [=] 'data_backup_path';
ここで、data_backup_path はクリア対象のデータバックアップパスを指定するために使用されます。
例:
ユーザーテナントが自身のテナントのOSSバックアップパス oss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.com をクリアします。
obclient> ALTER SYSTEM DELETE BACKUP ALL DATA_BACKUP_DEST ='oss://oceanbase-test-bucket/backup/data?host=****.aliyun-inc.com';
ユーザーテナントが自身のテナントのNFSバックアップパス file:///data/nfs/backup/data1 をクリアします。
obclient> ALTER SYSTEM DELETE BACKUP ALL DATA_BACKUP_DEST ='file:///data/nfs/backup/data1';
- コマンドの実行が成功した後、ビューを通じてクリア中のパス情報を確認できます。
MySQLモードでのクエリ例は以下のとおりです:
obclient(root@mysql001)[(none)]> SELECT PATH, DEST_TYPE, STATUS FROM oceanbase.DBA_OB_BACKUP_STORAGE_INFO WHERE PATH = 'file:///data/nfs/backup/data1';
Oracleモードでのクエリ例は以下のとおりです:
obclient(SYS@oracle001)[SYS]> SELECT PATH, DEST_TYPE, STATUS FROM SYS.DBA_OB_BACKUP_STORAGE_INFO WHERE PATH = 'file:///data/nfs/backup/data1';
クエリ結果の例は以下のとおりです:
+-------------------------------+-------------+----------+
| PATH | DEST_TYPE | STATUS |
+-------------------------------+-------------+----------+
| file:///data/nfs/backup/data1 | backup_data | DELETING |
+-------------------------------+-------------+----------+
1 row in set
クエリ結果からわかるように、パスのクリア処理中、対応するパスの STATUS フィールドの値が DELETING に変わります。クリアが完了すると、対応する行は削除されます。
アーカイブパスのクリーンアップ
システムテナントが指定したユーザーテナントのアーカイブパスをクリーンアップする場合
rootユーザーでクラスタのsysテナントにログインします。接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -Aテナント情報を確認し、テナントの
TENANT_IDを取得します。このドキュメントでは、テナント
mysql001を例に説明します。クエリ例は以下のとおりです:obclient(root@sys)[(none)]> SELECT TENANT_ID, TENANT_NAME, TENANT_TYPE FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'mysql001';クエリ結果は次のとおりです:
+-----------+-------------+-------------+ | TENANT_ID | TENANT_NAME | TENANT_TYPE | +-----------+-------------+-------------+ | 1002 | mysql001 | USER | +-----------+-------------+-------------+ 1 row in setクエリ結果によると、このテナントの
TENANT_IDは1002です。クリーンアップ対象のアーカイブパスを取得します。
指定したテナントのすべてのアーカイブパスを確認します。
obclient(root@sys)[(none)]> SELECT TENANT_ID, PATH, DEST_TYPE, STATUS FROM oceanbase.CDB_OB_BACKUP_STORAGE_INFO WHERE TENANT_ID = 1002 AND DEST_TYPE = 'archive_log';クエリ結果の例は次のとおりです:
+-----------+----------------------------------+-------------+---------+ | TENANT_ID | PATH | DEST_TYPE | STATUS | +-----------+----------------------------------+-------------+---------+ | 1002 | file:///data/nfs/backup/archive2 | archive_log | NORMAL | | 1002 | file:///data/nfs/backup/archive1 | archive_log | NORMAL | +-----------+----------------------------------+-------------+---------+ 1 row in setクエリ結果によると、このテナントには2つのアーカイブパス情報があります。
指定したテナント内で使用中のアーカイブパスを確認します。
obclient(root@sys)[(none)]> SELECT TENANT_ID, NAME, VALUE FROM oceanbase.CDB_OB_ARCHIVE_DEST WHERE TENANT_ID = tenant_id AND NAME = 'path';クエリ結果の例は次のとおりです:
+-----------+------+------------------------------------+ | TENANT_ID | NAME | VALUE | +-----------+------+------------------------------------+ | 1002 | path | file:///data/nfs/backup/archive2 | +-----------+------+------------------------------------+ 1 row in setクエリ結果によると、使用中のアーカイブパスは
file:///data/nfs/backup/archive2であり、クリーンアップ対象のパスfile:///data/nfs/backup/archive1は使用中のアーカイブパスではないため、クリーンアップできます。
以下のコマンドを実行して、指定したアーカイブパスをクリーンアップします。
ステートメントは以下のとおりです:
ALTER SYSTEM DELETE BACKUP ALL LOG_ARCHIVE_DEST [=] 'log_archive_path' TENANT [=] tenant_name;その中で:
log_archive_path:クリーンアップ対象のアーカイブパスを指定します。tenant_name:クリーンアップ対象のアーカイブパスのユーザーテナントを指定します。
例:
OSSNFSシステムテナントがテナント
mysql001のOSSアーカイブパスoss://oceanbase-test-bucket/backup/archive?host=****.aliyun-inc.comをクリーンアップします。obclient(root@sys)[(none)]> ALTER SYSTEM DELETE BACKUP ALL LOG_ARCHIVE_DEST ='oss://oceanbase-test-bucket/backup/archive?host=****.aliyun-inc.com' TENANT = mysql001;システムテナントがテナント
mysql001のNFSアーカイブパスfile:///data/nfs/backup/archive1をクリーンアップします。obclient(root@sys)[(none)]> ALTER SYSTEM DELETE BACKUP ALL LOG_ARCHIVE_DEST ='file:///data/nfs/backup/archive1' TENANT = mysql001;コマンド実行が成功した後、ビューを通じてクリーンアップ中のパス情報を確認できます。
obclient(root@sys)[(none)]> SELECT TENANT_ID, PATH, DEST_TYPE, STATUS FROM oceanbase.CDB_OB_BACKUP_STORAGE_INFO WHERE TENANT_ID = 1002 AND PATH = 'file:///data/nfs/backup/archive1';クエリ結果の例は以下のとおりです:
+-----------+----------------------------------+-------------+-----------+ | TENANT_ID | PATH | DEST_TYPE | STATUS | +-----------+----------------------------------+-------------+-----------+ | 1002 | file:///data/nfs/backup/archive1 | archive_log | DELETING | +-----------+----------------------------------+-------------+-----------+ 1 row in setクエリ結果から、パスのクリーンアップ処理中に、該当パスの
STATUSフィールドの値がDELETINGに変わることが確認できます。クリーンアップ完了後、該当行は削除されます。
ユーザーテナントが自身のテナントのアーカイブパスをクリーンアップする場合
ユーザーテナントのテナント管理者がデータベースにログインします。
説明
MySQLテナントの管理者ユーザーは
rootユーザー、Oracleテナントの管理者ユーザーはSYSユーザーです。接続例は以下のとおりです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@mysql001#obdemo -p***** -Aクリーンアップ対象のアーカイブパスを取得します。
自身のテナントのすべてのアーカイブパスを確認します。
MySQLモードOracleモードMySQLモードでのクエリ例は以下のとおりです:
obclient(root@mysql001)[(none)]> SELECT PATH, DEST_TYPE, STATUS FROM oceanbase.DBA_OB_BACKUP_STORAGE_INFO WHERE DEST_TYPE = 'archive_log';Oracleモードでのクエリ例は以下のとおりです:
obclient(SYS@oracle001)[SYS]> SELECT PATH, DEST_TYPE, STATUS FROM SYS.DBA_OB_BACKUP_STORAGE_INFO WHERE DEST_TYPE = 'archive_log';クエリ結果の例は以下のとおりです:
+----------------------------------+-------------+---------+ | PATH | DEST_TYPE | STATUS | +----------------------------------+-------------+---------+ | file:///data/nfs/backup/archive2 | archive_log | NORMAL | | file:///data/nfs/backup/archive1 | archive_log | NORMAL | +----------------------------------+-------------+---------+ 2 rows in setこのテナントが現在使用しているアーカイブパスを確認します。
MySQLモードOracleモードMySQLモードでのクエリ例は以下のとおりです:
obclient(root@mysql001)[(none)]> SELECT NAME, VALUE FROM oceanbase.DBA_OB_ARCHIVE_DEST WHERE NAME = 'path';Oracleモードでのクエリ例は以下のとおりです:
obclient(SYS@oracle001)[SYS]> SELECT NAME, VALUE FROM SYS.DBA_OB_ARCHIVE_DEST WHERE NAME = 'path';クエリ結果の例は以下のとおりです:
+------+------------------------------------+ | NAME | VALUE | +------+------------------------------------+ | path | file:///data/nfs/backup/archive2 | +------+------------------------------------+ 1 row in setクエリ結果に基づき、クリーンアップ対象のバックアップパスが通常使用されていないバックアップパスであることを確認し、削除できます。
以下のコマンドを実行して、指定されたアーカイブパスをクリーンアップします。
ステートメントは以下のとおりです:
ALTER SYSTEM DELETE BACKUP ALL LOG_ARCHIVE_DEST [=] 'log_archive_path';ここで、
log_archive_pathはクリーンアップ対象のアーカイブパスを指定するために使用されます。例:
OSSNFSユーザーテナントは、自身のテナントのOSSアーカイブパス
oss://oceanbase-test-bucket/backup/archive?host=****.aliyun-inc.comをクリアします。obclient> ALTER SYSTEM DELETE BACKUP ALL LOG_ARCHIVE_DEST ='oss://oceanbase-test-bucket/backup/archive?host=****.aliyun-inc.com';ユーザーテナントは、自身のテナントのNFSアーカイブパス
file:///data/nfs/backup/archive1をクリアします。obclient> ALTER SYSTEM DELETE BACKUP ALL LOG_ARCHIVE_DEST ='file:///data/nfs/backup/archive1';コマンドの実行が成功すると、ビューを通じてクリア中のパス情報を確認できます。
MySQLモードOracleモードMySQLモードでのクエリ例は以下のとおりです:
obclient(root@mysql001)[(none)]> SELECT PATH, DEST_TYPE, STATUS FROM oceanbase.DBA_OB_BACKUP_STORAGE_INFO WHERE PATH = 'file:///data/nfs/backup/archive1';Oracleモードでのクエリ例は以下のとおりです:
obclient(SYS@oracle001)[SYS]> SELECT PATH, DEST_TYPE, STATUS FROM SYS.DBA_OB_BACKUP_STORAGE_INFO WHERE PATH = 'file:///data/nfs/backup/archive1';クエリ結果の例は以下のとおりです:
+----------------------------------+-------------+-----------+ | PATH | DEST_TYPE | STATUS | +----------------------------------+-------------+-----------+ | file:///data/nfs/backup/archive1 | archive_log | DELETING | +----------------------------------+-------------+-----------+ 1 row in setクエリ結果から、パスのクリア処理中に対応するパスの
STATUSフィールドの値がDELETINGに変わることが確認できます。クリアが完了すると、対応する行が削除されます。