システムテナントとユーザーテナントは ALTER SYSTEM MINOR FREEZE コマンドを使用してダンプを手動でトリガーできます。手動ダンプは、テナントレベル、ゾーンレベル、サーバーレベル、ログストリームレベル、およびパーティションレベルをサポートしています。
システムテナントによるダンプの開始
システムテナントは、テナントレベル、ゾーンレベル、サーバーレベル、ログストリームレベル、およびTabletレベルのダンプを開始できます。
rootユーザーでクラスタのsysテナントにログインします。業務要件に応じて、適切なダンプ操作を選択します。
テナントレベルのダンプの開始
指定した1つまたは複数のテナントに対してダンプを実行できます。SQLステートメントは以下のとおりです。
obclient> ALTER SYSTEM MINOR FREEZE TENANT [=] all_user | all | all_meta | tenant_name [, tenant_name ...];例:
システムテナントが自身に対してダンプを開始する場合
obclient> ALTER SYSTEM MINOR FREEZE;システムテナントがすべてのユーザーテナントに対してダンプを開始する場合
obclient> ALTER SYSTEM MINOR FREEZE TENANT = all_user;または
obclient> ALTER SYSTEM MINOR FREEZE TENANT = all;説明
OceanBaseデータベースはV4.2.1バージョンから、
TENANT = all_userとTENANT = allの意味は同じです。有効範囲をすべてのユーザーテナントに設定する必要がある場合は、TENANT = all_userの使用を推奨します。TENANT = allは今後廃止されます。システムテナントがすべてのMetaテナントに対してダンプを開始する場合
obclient> ALTER SYSTEM MINOR FREEZE TENANT = all_meta;システムテナントが指定したテナントに対してダンプを開始する場合
obclient> ALTER SYSTEM MINOR FREEZE TENANT = tenant1;
Zoneレベルのダンプを開始する
指定したZoneに対してダンプを実行できます。毎回、1つのZoneのみを指定できます。SQLステートメントは以下のとおりです。
obclient> ALTER SYSTEM MINOR FREEZE ZONE [=] zone_name;例:
obclient> ALTER SYSTEM MINOR FREEZE ZONE = zone1;Serverレベルのダンプを開始する
指定した1つまたは複数のOBServerノードに対してダンプを実行できます。SQLステートメントは以下のとおりです。
obclient> ALTER SYSTEM MINOR FREEZE SERVER = ('ip:port' [, 'ip:port'...]);例:
obclient> ALTER SYSTEM MINOR FREEZE SERVER = ('xx.xx.xx.xx:2882','xx.xx.xx.xx:2882');ログストリームレベルのダンプを開始する
指定したテナントの指定されたログストリームに対してダンプを実行できます。SQLステートメントは以下のとおりです。
ALTER SYSTEM MINOR FREEZE TENANT [=] tenant_name LS [=] ls_id;ここで、
tenant_nameは指定したテナントのテナント名、ls_idは指定したテナントのログストリームIDです。テナントのログストリームIDは、oceanbase.CDB_OB_TABLE_LOCATIONSビューをクエリすることで取得できます。例:
obclient> ALTER SYSTEM MINOR FREEZE TENANT = t1 LS = 1001;ステートメント実行後、システムは指定したテナントの指定されたログストリームのすべてのTabletに対してダンプを実行します。
パーティションレベルのダンプを開始する
OceanBaseデータベースでは、パーティションとTabletは一対一で対応しています。
指定したテナントの指定されたTabletに対してダンプを実行できます。SQLステートメントは以下のとおりです。
ALTER SYSTEM MINOR FREEZE TENANT [=] tenant_name TABLET_ID = tablet_id;または、指定したテナントの指定されたログストリーム内の指定されたTabletに対してダンプを実行することもできます。SQLステートメントは以下のとおりです。
ALTER SYSTEM MINOR FREEZE TENANT [=] tenant_name LS [=] ls_id TABLET_ID = tablet_id;ここで、
tenant_nameは指定したテナントのテナント名、ls_idは指定したテナントのログストリームID、tablet_idは指定されたログストリーム内のTablet IDです。テナントのログストリームIDとTablet IDは、CDB_OB_TABLE_LOCATIONSビューをクエリすることで取得できます。ビューCDB_OB_TABLE_LOCATIONSの各フィールドの詳細については、oceanbase.CDB_OB_TABLE_LOCATIONS を参照してください。指定したテナントの指定されたTabletに対するダンプの例は次のとおりです:
obclient> ALTER SYSTEM MINOR FREEZE TENANT = tenant1 TABLET_ID = 200001;指定したテナントの指定されたログストリーム内の指定されたTabletに対するダンプの例は次のとおりです:
obclient> ALTER SYSTEM MINOR FREEZE TENANT = tenant1 LS = 1001 TABLET_ID = 200001;
ユーザーテナントによるダンプの開始
ユーザーテナントは、自身のテナントに対してのみ、テナントレベルおよびパーティションレベルのダンプを開始できます。
テナント管理者がクラスタのMySQLテナントまたはOracleテナントにログインします。
業務ニーズに応じて、適切なダンプ操作を選択します。
テナントレベルのダンプ
obclient> ALTER SYSTEM MINOR FREEZE;パーティションレベルのダンプ
OceanBaseデータベースでは、パーティションとTabletは一対一で対応しています。
ご自身のテナント内の指定されたTabletに対してダンプを開始できます。ステートメントは以下のとおりです:
ALTER SYSTEM MINOR FREEZE TABLET_ID = tablet_id;ここで、
tablet_idはビューDBA_OB_TABLE_LOCATIONSをクエリすることで取得できます。ビューDBA_OB_TABLE_LOCATIONSの各フィールドの詳細については、DBA_OB_TABLE_LOCATIONSを参照してください。例:
obclient> ALTER SYSTEM MINOR FREEZE TABLET_ID = 200001;
次のステップ
ダンプを開始した後、ダンプの進捗状況を確認できます。具体的な操作については、ダンプの進捗状況を確認するを参照してください。