システムテナントとユーザーテナントは ALTER SYSTEM MINOR FREEZE コマンドを使用してダンプを手動でトリガーできます。手動ダンプは、テナントレベル、ゾーンレベル、サーバーレベル、ログストリームレベル、およびパーティションレベルをサポートします。
システムテナントによるダンプの開始
システムテナントは、テナントレベル、Zoneレベル、サーバーレベル、ログストリームレベル、および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回につき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;
次のステップ
ダンプを開始した後、ダンプの進捗状況を確認できます。具体的な操作については、ダンプの進捗状況を確認するを参照してください。