システムテナントとユーザーテナントは、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;
ゾーンレベルのダンプの開始
指定されたゾーンに対してダンプを実行できます。一度に指定できるのは1つのゾーンのみです。SQL文は以下のとおりです。
obclient> ALTER SYSTEM MINOR FREEZE ZONE [=] zone_name;例:
obclient> ALTER SYSTEM MINOR FREEZE ZONE = zone1;サーバーレベルのダンプの開始
指定された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;
次のステップ
ダンプを開始した後、ダンプ状況を確認できます。具体的な操作については、ダンプ進捗状況の確認を参照してください。