バックアップパスまたはアーカイブパスを置き換えた後、不要になった元のデータバックアップパスまたはアーカイブパスをクリーンアップできます。データバックアップパスまたはアーカイブパスをクリーンアップすると、そのパス配下のすべてのバックアップセットやログアーカイブファイルが削除されます。
使用上の制限
置き換えられたバックアップまたはアーカイブのパスのみクリーンアップでき、現在使用中のバックアップまたはアーカイブのパスのクリーンアップはサポートされていません。
クリーンアップ中の古いパスをバックアップパスまたはアーカイブパスに再設定することはできません。
バックアップパスのクリア
システムテナントが指定ユーザーテナントのバックアップパスをクリーンアップする
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はクリーンアップ対象のデータバックアップパスを指定するために使用されます。例:
OSSNFSユーザーテナントは、自身のテナントの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モードOracleモード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に変わります。クリーンアップ完了後、対応する行は削除されます。