このセクションでは、レプリカの移行方法について説明します。レプリカの移行は、ゾーン内でのレプリカの配置変更のみを対象とし、レプリカ数やレプリカタイプの変更は含まれません。レプリカの移行は、ノード障害時やロードバランシング時のシナリオに適用されます。
Unit移行
Unit移行とは、単一ゾーン内でUnitがノード間を移動することを指します。テナント内のUnitを移行することで、テナント内のログストリームのレプリカ移行を実現できます。
(オプション)Unit GCの最大待機時間を調整する
OceanBaseデータベースでは、Unit移行が完了すると、システムは自動的に移行前のソースサーバー上のテナントを削除し、そのテナント上のすべてのセッションをKillします。これにより、ユーザーが実行中のクエリ操作に影響が出る可能性があります。この問題を解決するため、OceanBaseデータベースはUnitのスムーズなGC(Garbage Collection)プランを実装しています。つまり、Unit移行が完了すると、Unit GCのカウントダウン状態に入ります。カウントダウン開始後、システムは新しい接続リクエストを受け付けなくなり、同時に実行中のリクエストがある場合は、そのリクエストの実行終了を待ってからGCを行います。
さらに、完全なUnitスムーズGCでは、実行時間が非常に長いタスクに遭遇した場合、長時間GCできない問題が発生する可能性があります。UnitがスムーズにGCできるようにするため、OceanBaseデータベースはクラスタレベル構成パラメータunit_gc_wait_timeを使用してUnit GCの最大待機時間を制御します。最大待機時間を超えると、システムは自動的にGCを行います。構成パラメータunit_gc_wait_timeのデフォルト値は1分です。ユーザーは自身のビジネスニーズに応じて適切に調整できます。
具体的な設定手順は以下のとおりです:
rootユーザーでクラスタのsysテナントにログインします。
接続例:
obclient -h172.30.xxx.xxx -P2883 -uroot@sys#obdemo -pxxxx -A現在の構成パラメータ
unit_gc_wait_timeの値を確認します。obclient> SHOW PARAMETERS LIKE '%unit_gc_wait_time%';構成パラメータ
unit_gc_wait_timeの値を調整します。例:
obclient> ALTER SYSTEM SET unit_gc_wait_time = '1m';
Unit移行の実行
例:テナント mq_t1 内の UNIT_ID = 1006 のUnitを、同一ゾーン内の別ノードに移行します。
rootユーザーでクラスタのsysテナントにログインします。
obclient -h172.30.xxx.xxx -P2883 -uroot@sys#obdemo -pxxxx -Aoceanbaseデータベースに入ります。obclient(root@sys)[(none)]> use oceanbase;テナント
mq_t1のtenant_idを照会します。この例では、テナント
mq_t1のtenant_idは1004です。obclient(root@sys)[oceanbase]> SELECT TENANT_ID, TENANT_NAME, TENANT_TYPE, PRIMARY_ZONE, LOCALITY, STATUS, TENANT_ROLE FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME = 'mq_t1';クエリ結果は次のとおりです:
+-----------+-------------+-------------+----------------------------+--------------------------------------------------------------------+--------+-------------+ | TENANT_ID | TENANT_NAME | TENANT_TYPE | PRIMARY_ZONE | LOCALITY | STATUS | TENANT_ROLE | +-----------+-------------+-------------+----------------------------+--------------------------------------------------------------------+--------+-------------+ | 1004 | mq_t1 | USER | sa128_obv4_1;sa128_obv4_2 | FULL{1}@sa128_obv4_1, FULL{1}@sa128_obv4_2, FULL{1}@@sa128_obv4_3 | NORMAL | PRIMARY | +-----------+-------------+-------------+----------------------------+--------------------------------------------------------------------+--------+-------------+ 1 row in set対応するテナント
mq_t1のUnit情報を確認します。この例では、
UNIT_ID = 1006のUnitは、Zonesa128_obv4_3のxx.xx.xx.19ノードに配置されています。obclient(root@sys)[oceanbase]> SELECT UNIT_ID, TENANT_ID, STATUS, RESOURCE_POOL_ID, UNIT_GROUP_ID, ZONE, SVR_IP, SVR_PORT FROM oceanbase.DBA_OB_UNITS WHERE TENANT_ID = 1004;クエリ結果は次のとおりです:
+---------+-----------+--------+------------------+---------------+--------------+---------------+----------+ | UNIT_ID | TENANT_ID | STATUS | RESOURCE_POOL_ID | UNIT_GROUP_ID | ZONE | SVR_IP | SVR_PORT | +---------+-----------+--------+------------------+---------------+--------------+---------------+----------+ | 1004 | 1004 | ACTIVE | 1005 | 1002 | sa128_obv4_1 | xxx.xx.xxx.47 | 2882 | | 1005 | 1004 | ACTIVE | 1005 | 1002 | sa128_obv4_2 | xxx.xx.xxx.81 | 2882 | | 1006 | 1004 | ACTIVE | 1005 | 1002 | sa128_obv4_3 | xxx.xx.xxx.19 | 2882 | +---------+-----------+--------+------------------+---------------+--------------+---------------+----------+ 3 rows in set移行対象Unitが存在するゾーン内のOBServerノードのサーバーIPを確認します。
この例では、Zone
sa128_obv4_3には2つのOBServerノード、xx.xx.xx.19とxx.xx.xx.158が含まれています。obclient(root@sys)[oceanbase]> SELECT SVR_IP, SVR_PORT, ID, ZONE, SQL_PORT, STATUS FROM oceanbase.DBA_OB_SERVERS;実行結果は次のとおりです:
+--------------+----------+----+--------------+----------+--------+ | SVR_IP | SVR_PORT | ID | ZONE | SQL_PORT | STATUS | +--------------+----------+----+--------------+----------+--------+ | xx.xx.xx.81 | 2882 | 6 | sa128_obv4_2 | 2881 | ACTIVE | | xx.xx.xx.19 | 2882 | 4 | sa128_obv4_3 | 2881 | ACTIVE | | xx.xx.xx.158 | 2882 | 6 | sa128_obv4_3 | 2881 | ACTIVE | | xx.xx.xx.43 | 2882 | 6 | sa128_obv4_1 | 2881 | ACTIVE | | xx.xx.xx.106 | 2882 | 6 | sa128_obv4_2 | 2881 | ACTIVE | | xx.xx.xx.47 | 2882 | 6 | sa128_obv4_1 | 2881 | ACTIVE | +--------------+----------+----+--------------+----------+--------+ 6 rows in setテナント
mq_t1内のUNIT_ID = 1006のUnitを、同一ゾーン内の別ノードに移行します。obclient(root@sys)[oceanbase]> ALTER SYSTEM migrate unit = 1006 destination = 'xx.xx.xx.158:2882';Unit移行の状態を確認します。
obclient(root@sys)[oceanbase]> SELECT * FROM oceanbase.DBA_OB_UNIT_JOBS WHERE JOB_TYPE = 'MIGRATE_UNIT';実行結果は次のとおりです:
+--------+--------------+------------+-------------+----------+----------------------------+----------------------------+-----------+---------+----------+------------+--------------+-------------+ | JOB_ID | JOB_TYPE | JOB_STATUS | RESULT_CODE | PROGRESS | START_TIME | MODIFY_TIME | TENANT_ID | UNIT_ID | SQL_TEXT | EXTRA_INFO | RS_SVR_IP | RS_SVR_PORT | +--------+--------------+------------+-------------+----------+----------------------------+----------------------------+-----------+---------+----------+------------+--------------+-------------+ | 4 | MIGRATE_UNIT | INPROGRESS | NULL | 0 | 2023-01-04 17:22:02.208219 | 2023-01-04 17:22:02.208219 | 1004 | 1006 | NULL | NULL | xx.xx.xx.106 | 2882 | +--------+--------------+------------+-------------+----------+----------------------------+----------------------------+-----------+---------+----------+------------+--------------+-------------+ 1 row in setクエリ結果によると、
JOB_STATUSの値がINPROGRESSは移行中を示し、この値がSUCCESSの場合、移行が成功したことを意味します。Unit移行後の情報を確認します。
obclient(root@sys)[oceanbase]> SELECT UNIT_ID, TENANT_ID, STATUS, RESOURCE_POOL_ID, UNIT_GROUP_ID, ZONE, SVR_IP, SVR_PORT FROM oceanbase.DBA_OB_UNITS WHERE UNIT_ID = 1006;実行結果は次のとおりです:
+---------+-----------+--------+------------------+---------------+--------------+----------------+----------+ | UNIT_ID | TENANT_ID | STATUS | RESOURCE_POOL_ID | UNIT_GROUP_ID | ZONE | SVR_IP | SVR_PORT | +---------+-----------+--------+------------------+---------------+--------------+----------------+----------+ | 1006 | 1004 | ACTIVE | 1005 | 1002 | sa128_obv4_3 | xxx.xx.xxx.158 | 2882 | +---------+-----------+--------+------------------+---------------+--------------+----------------+----------+ 1 row in setクエリにより、
UNIT_ID = 1006がxx.xx.xx.19からxx.xx.xx.158に変更されたことが確認できます。Unit移行は成功しました。
レプリカの手動移行
Unit移行などにより、レプリカの配置場所がそのUnitの配置場所と一致しなくなった場合、ALTER SYSTEM MIGRATE REPLICAコマンドを使用して該当するレプリカを指定した場所に移行できます。
使用上の制限
システムテナント(sysテナント)はすべてのテナントのログストリームに対してレプリカ移行操作を実行できますが、ユーザーテナントは自身のテナントのログストリームに対してのみレプリカ移行操作を実行できます。
テナント内の同一ログストリームについて、レプリカ移行タスクは複数並列実行可能ですが、その他のディザスタリカバリタスク(レプリカの追加、削除、レプリカタイプの変更、ログストリームの法定メンバー数の変更など)は、1回につき1つしか実行できません。
sysテナントはビュー
CDB_OB_LS_REPLICA_TASKSを参照することで、実行中のディザスタリカバリタスクがあるかどうかを確認できます。ユーザーテナントはビューDBA_OB_LS_REPLICA_TASKSを参照することで、実行中のディザスタリカバリタスクがあるかどうかを確認できます。レプリカ移行は同一ゾーン間でのみ行えます。
前提条件
レプリカ移行操作を実行する前に、現在のユーザーが
ALTER SYSTEM権限を持っていることを確認してください。持っていない場合はALTER SYSTEM MIGRATE REPLICAコマンドを実行できません。ビューをクエリする前に、現在のユーザーが以下のビューに対する
SELECT権限を持っていることを確認してください。持っていない場合は関連情報をクエリできません。DBA_OB_TENANTSDBA_OB_LS/CDB_OB_LSGV$OB_UNITSDBA_OB_LS_LOCATIONS/CDB_OB_LS_LOCATIONS
レプリカ移行操作を実行する前に、ターゲットサーバー上にユーザーが利用可能なリソース、すなわちUnitが存在し、かつそのUnit上に当該ログストリームのレプリカが存在しないことを保証する必要があります。
複数のレプリカ移行タスクを同時に実行する必要がある場合、テナントのロールがプライマリテナントの場合は、当該テナントの構成パラメータ
replica_parallel_migration_modeの値をonに設定する必要があります。テナントのロールがスタンバイテナントの場合は、当該テナントの構成パラメータreplica_parallel_migration_modeの値をonまたはautoに設定する必要があります。テナントレベル構成パラメータreplica_parallel_migration_modeの詳細および設定方法については、replica_parallel_migration_modeを参照してください。
手順
現在、テナント tenant1が存在し、Unit移行コマンド ALTER SYSTEM MIGRATE UNIT= 1003 DESTINATION = '100.xx.xx.002:5072'; を使用して、unit_id が 1003 のUnitをターゲットサーバー 100.xx.xxx.002:5072 に移行しました。異常な理由により、システムはレプリカの移行を正常に完了できませんでした。そのため、手動でレプリカをターゲットサーバー 100.xx.xxx.002:5072 に移行する必要があります。
ユーザーがクラスタに対応するテナントにログインします。
接続例:
obclient -h172.30.xxx.xxx -P2883 -uroot@tenant1#obdemo -pxxxx -Aデータベースへの接続操作の詳細については、データベース接続の概要(MySQLモード)およびデータベース接続の概要(Oracleモード)を参照してください。
操作対象テナントのテナントID情報を取得します。
システムテナント
obclient(root@sys)[oceanbase]> SELECT TENANT_NAME, TENANT_ID FROM oceanbase.DBA_OB_TENANTS WHERE TENANT_NAME='tenant1';ユーザーテナント
MySQLモードOracleモードMySQLモードで以下のステートメントを実行します:
obclient(root@tenant1)[oceanbase]> SELECT TENANT_NAME, TENANT_ID FROM oceanbase.DBA_OB_TENANTS;Oracleモードで以下のステートメントを実行します:
obclient(SYS@tenant1)[SYS]> SELECT TENANT_NAME, TENANT_ID FROM SYS.DBA_OB_TENANTS;クエリ結果の例:
+-------------+-----------+ | TENANT_NAME | TENANT_ID | +-------------+-----------+ | tenant1 | 1002 | +-------------+-----------+ 1 row in setクエリ結果によると、該当テナントのテナントIDは
1002です。ビュー
DBA_OB_TENANTSの各フィールドの詳細については、DBA_OB_TENANTSを参照してください。
操作対象テナントのすべてのログストリーム情報を確認します。
システムテナント
obclient(root@sys)[oceanbase]> SELECT * FROM oceanbase.CDB_OB_LS WHERE TENANT_ID=1002;ビュー
CDB_OB_LSの各フィールドの詳細については、CDB_OB_LSを参照してください。ユーザーテナント
MySQLモードOracleモードMySQLモードで以下のステートメントを実行します。
obclient(root@tenant1)[oceanbase]> SELECT * FROM oceanbase.DBA_OB_LS;Oracleモードで以下のステートメントを実行します:
obclient(SYS@tenant1)[SYS]> SELECT * FROM SYS.DBA_OB_LS;クエリ結果の例:
+-------+--------+--------------+---------------+-------------+---------------------+----------+---------------------+---------------------+-----------+----------------+ | LS_ID | STATUS | PRIMARY_ZONE | UNIT_GROUP_ID | LS_GROUP_ID | CREATE_SCN | DROP_SCN | SYNC_SCN | READABLE_SCN | FLAG | UNIT_LIST | +-------+--------+--------------+---------------+-------------+---------------------+----------+---------------------+---------------------+-----------+----------------+ | 1 | NORMAL | z1;z2 | 0 | 0 | NULL | NULL | 1712455113896017202 | 1712455113896017202 | | | | 1001 | NORMAL | z1;z2 | 0 | 1001 | 1712125812893680165 | NULL | 1712455113896017202 | 1712455113896017202 | | 1002,1004,1006 | | 1002 | NORMAL | z1;z2 | 0 | 1002 | 1712125812908098857 | NULL | 1712455114041323052 | 1712455113540551113 | | 1001,1003,1005 | | 1003 | NORMAL | z1;z2 | 0 | 0 | 1712125828880850585 | NULL | 1712455113896017202 | 1712455113896017202 | DUPLICATE | | +-------+--------+--------------+---------------+-------------+---------------------+----------+---------------------+---------------------+-----------+----------------+ 4 rows in setクエリ結果によると、tenant1テナントには、ログストリーム1、ログストリーム1001、ログストリーム1002、およびログストリーム1003のブロードキャストログストリームが1つずつ存在します。
ビュー
DBA_OB_LSの各フィールドの詳細については、DBA_OB_LSを参照してください。
操作対象テナントのUnitリソースを確認します。
システムテナント
obclient(root@sys)[oceanbase]> SELECT SVR_IP, SVR_PORT, UNIT_ID, TENANT_ID, ZONE, ZONE_TYPE, STATUS FROM oceanbase.GV$OB_UNITS WHERE TENANT_ID=1002;ユーザーテナント
MySQLモードOracleモードMySQLモードで以下のステートメントを実行します。
obclient(root@tenant1)[oceanbase]> SELECT SVR_IP, SVR_PORT, UNIT_ID, TENANT_ID, ZONE, ZONE_TYPE, STATUS FROM oceanbase.GV$OB_UNITS;Oracleモードで以下のステートメントを実行します。
obclient(SYS@tenant1)[SYS]> SELECT SVR_IP, SVR_PORT, UNIT_ID, TENANT_ID, ZONE, ZONE_TYPE, STATUS FROM SYS.GV$OB_UNITS;クエリ結果の例:
+----------------+----------+---------+-----------+-------+-----------+--------+ | SVR_IP | SVR_PORT | UNIT_ID | TENANT_ID | ZONE | ZONE_TYPE | STATUS | +----------------+----------+---------+-----------+-------+-----------+--------+ | 100.xx.xxx.012 | 5070 | 1002 | 1002 | z1 | ReadWrite | NORMAL | | 100.xx.xxx.002 | 5072 | 1004 | 1002 | z2 | ReadWrite | NORMAL | | 100.xx.xxx.003 | 5073 | 1003 | 1002 | z2 | ReadWrite | NORMAL | | 100.xx.xxx.001 | 5071 | 1001 | 1002 | z1 | ReadWrite | NORMAL | | 100.xx.xxx.004 | 5074 | 1006 | 1002 | z3 | ReadWrite | NORMAL | | 100.xx.xxx.005 | 5075 | 1005 | 1002 | z3 | ReadWrite | NORMAL | +----------------+----------+---------+-----------+-------+-----------+--------+ 6 rows in setクエリ結果によると、現在のテナントは
100.xx.xxx.012:5070、100.xx.xxx.002:5072、100.xx.xxx.003:5073、100.xx.xxx.001:5071、100.xx.xxx.004:5074、100.xx.xxx.005:5075などのサーバーに利用可能なUnitリソースを持っています。また、unit_idが1003のUnitは100.xx.xxx.003:5073サーバー上にあります。ビュー
GV$OB_UNITSの各フィールドの詳細については、GV$OB_UNITSを参照してください。
前段階で取得したテナントのログストリーム情報に基づき、ログストリーム1002のレプリカ分散状況を確認します。
システムテナント
obclient(root@sys)[oceanbase]> SELECT * FROM oceanbase.CDB_OB_LS_LOCATIONS WHERE LS_ID=1002 AND TENANT_ID=1002;ビュー
CDB_OB_LS_LOCATIONSの各フィールドの詳細については、CDB_OB_LS_LOCATIONSを参照してください。ユーザーテナント
MySQLモードOracleモードMySQLモードで以下のステートメントを実行します:
obclient(root@tenant1)[oceanbase]> SELECT * FROM oceanbase.DBA_OB_LS_LOCATIONS WHERE LS_ID=1002;Oracleモードで以下のステートメントを実行します:
obclient(SYS@tenant1)[SYS]> SELECT * FROM SYS.DBA_OB_LS_LOCATIONS WHERE LS_ID=1002;クエリ結果の例:
+----------------------------+----------------------------+-------+----------------+----------+----------+------+----------+-------------------------------------------------------------------------------------------------+----------------------+--------------+--------------+---------+ | CREATE_TIME | MODIFY_TIME | LS_ID | SVR_IP | SVR_PORT | SQL_PORT | ZONE | ROLE | MEMBER_LIST | PAXOS_REPLICA_NUMBER | REPLICA_TYPE | LEARNER_LIST | REBUILD | +----------------------------+----------------------------+-------+----------------+----------+----------+------+----------+-------------------------------------------------------------------------------------------------+----------------------+--------------+--------------+---------+ | 2023-11-05 23:52:15.716363 | 2023-11-05 23:52:24.212243 | 1002 | 100.xx.xxx.003 | 5073 | 5107 | z2 | LEADER | 100.xx.xxx.003:5073:1699199535653021,100.xx.xxx.012:5070:1,100.xx.xxx.004:5074:1699194477097063 | 3 | FULL | | FALSE | | 2023-11-05 22:05:20.420160 | 2023-11-05 23:52:24.807711 | 1002 | 100.xx.xxx.012 | 5070 | 5105 | z1 | FOLLOWER | NULL | NULL | FULL | | FALSE | | 2023-11-05 22:27:57.157395 | 2023-11-05 23:52:24.361105 | 1002 | 100.xx.xxx.004 | 5074 | 5109 | z3 | FOLLOWER | NULL | NULL | FULL | | FALSE | +----------------------------+----------------------------+-------+----------------+----------+----------+------+----------+-------------------------------------------------------------------------------------------------+----------------------+--------------+--------------+---------+ 3 rows in setクエリ結果によると、
100.xx.xxx.003:5073上のレプリカを移行する必要があります。レプリカはz2にあるため、前段階でクエリしたUnit情報と照らし合わせ、同一ゾーン内で利用可能なUnitを見つけて、レプリカを100.xx.xxx.002:5072に移行できます。
レプリカ移行コマンドを実行します。
ステートメントは以下のとおりです:
ALTER SYSTEM MIGRATE REPLICA LS [=] ls_id SOURCE [=] 'svr_ip:svr_port' DESTINATION [=] 'destination_ip:destination_port' [DATA_SOURCE [=] 'data_source'] [TENANT [=] 'tenant_name']ステートメントの使用方法:
ls_id:移行対象レプリカのログストリームIDを指定します。svr_ip:svr_port:移行対象レプリカが存在するサーバーのIPアドレスとポート番号を指定します。例:100.xx.xxx.003:5073。destination_ip:destination_port:移行対象レプリカのターゲットサーバーのIPアドレスとポート番号を指定します。例:100.xx.xxx.002:5072。data_source:レプリカのデータソースアドレスを指定します。ログストリーム内の他の任意のレプリカをデータソースアドレスとして選択できます。業務の実際の状況に応じて選択してください。例:100.xx.xxx.004:5074。指定したデータソースが利用不可の場合、システムはエラーを返します。この値を明示的に指定しない場合、システムは利用可能なデータソースを自動的に選択します。
tenant_name:操作対象のテナントを指定します。システムテナントは他のテナントを指定できますが、ユーザーテナントは自身のテナントのみを指定できます。操作対象のテナントを明示的に指定しない場合、デフォルトのテナント名は現在のテナントになります。このステートメントでは、all、all_user、all_metaなどを使用してすべてのテナント、ユーザーテナント、およびすべてのMetaテナントを指定することはできません。このステートメントでは、1回につき1つのログストリームレプリカしか移行できません。複数のレプリカを移行する必要がある場合は、このステートメントを複数回実行する必要があります。
例:
obclient> ALTER SYSTEM MIGRATE REPLICA LS = 1002 SOURCE='100.xx.xxx.003:5073' DESTINATION = '100.xx.xxx.002:5072'実行が成功した後、再度そのログストリームのレプリカ分散状況を確認します。
システムテナント
obclient(root@sys)[oceanbase]> SELECT * FROM oceanbase.CDB_OB_LS_LOCATIONS WHERE LS_ID=1002 AND TENANT_ID=1002;ユーザーテナント
MySQLモードOracleモードMySQLモードで以下のステートメントを実行します:
obclient(root@tenant1)[oceanbase]> SELECT * FROM oceanbase.DBA_OB_LS_LOCATIONS WHERE LS_ID=1002;Oracleモードで以下のステートメントを実行します:
obclient(SYS@tenant1)[SYS]> SELECT * FROM SYS.DBA_OB_LS_LOCATIONS WHERE LS_ID=1002;クエリ結果の例:
+----------------------------+----------------------------+-------+----------------+----------+----------+------+----------+-------------------------------------------------------------------------------------------------+----------------------+--------------+--------------+---------+ | CREATE_TIME | MODIFY_TIME | LS_ID | SVR_IP | SVR_PORT | SQL_PORT | ZONE | ROLE | MEMBER_LIST | PAXOS_REPLICA_NUMBER | REPLICA_TYPE | LEARNER_LIST | REBUILD | +----------------------------+----------------------------+-------+----------------+----------+----------+------+----------+-------------------------------------------------------------------------------------------------+----------------------+--------------+--------------+---------+ | 2023-11-06 00:05:39.520972 | 2023-11-06 00:05:49.101503 | 1002 | 100.xx.xxx.002 | 5072 | 5106 | z2 | LEADER | 100.xx.xxx.002:5072:1699200339454143,100.xx.xxx.012:5070:1,100.xx.xxx.004:5074:1699194477097063 | 3 | FULL | | FALSE | | 2023-11-05 22:05:20.420160 | 2023-11-06 00:05:50.037494 | 1002 | 100.xx.xxx.012 | 5070 | 5105 | z1 | FOLLOWER | NULL | NULL | FULL | | FALSE | | 2023-11-05 22:27:57.157395 | 2023-11-06 00:05:49.484669 | 1002 | 100.xx.xxx.004 | 5074 | 5109 | z3 | FOLLOWER | NULL | NULL | FULL | | FALSE | +----------------------------+----------------------------+-------+----------------+----------+----------+------+----------+-------------------------------------------------------------------------------------------------+----------------------+--------------+--------------+---------+ 3 rows in set結果によると、テナント1002のログストリームの元々
100.xx.xxx.003:5073上にあったレプリカは100.xx.xxx.002:5072に移行され、移行は成功しました。