関連ビュー
sys テナントでは、ビュー oceanbase.DBA_OB_ROOTSERVICE_EVENT_HISTORY を使用して、Root Serviceがスケジュールした移行/レプリケーション/Rebuildタスクを確認できます。
obclient(root@sys)[oceanbase]>
select TIMESTAMP,MODULE,EVENT,VALUE1 tenant_id,VALUE2 ls_id,NAME3,VALUE3,NAME4,VALUE4,NAME5,VALUE5,NAME6,VALUE6 from DBA_OB_ROOTSERVICE_EVENT_HISTORY where module like '%disaster%';
クエリ結果は次のとおりです:
+----------------------------+-------------------+-----------------------+-----------+-------+---------+-----------------------------------+-------------+------------------+-------------+-------------------+----------------+-----------------------------------------+
| TIMESTAMP | MODULE | EVENT | tenant_id | ls_id | NAME3 | VALUE3 | NAME4 | VALUE4 | NAME5 | VALUE5 | NAME6 | VALUE6 |
+----------------------------+-------------------+-----------------------+-----------+-------+---------+-----------------------------------+-------------+------------------+-------------+-------------------+----------------+-----------------------------------------+
| 2023-06-07 16:12:58.254734 | disaster_recovery | start_add_ls_replica | 1 | 1 | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | destination | "x.x.xx.43:2882" | data_source | "x.x.xx.106:2882" | comment | add paxos replica according to locality |
| 2023-06-07 16:14:04.202678 | disaster_recovery | finish_add_ls_replica | 1 | 1 | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | destination | "x.x.xx.43:2882" | data_source | "x.x.xx.106:2882" | execute_result | ret:0; elapsed:65947960; |
+----------------------------+-------------------+-----------------------+-----------+-------+---------+-----------------------------------+-------------+------------------+-------------+-------------------+----------------+-----------------------------------------+
2 rows in set (0.04 sec)
表内のデータはRoot Serviceがスケジュールしたタスクを示しており、event、source、destinationなどの重要なフィールドに注目する必要があります。
その中で value6 からタスクの実行結果を確認でき、ret はそのタスクが成功したかどうかを示し、elapsed はタスクの実行時間を示します。失敗した場合、ret_comment フィールドに失敗したステップが直接反映されていることがあります。
ビュー oceanbase.DBA_OB_SERVER_EVENT_HISTORY では、Root Serviceがスケジュールしたタスクが対応するノードでスケジュールおよび実行された状況を確認できます。例えば、上記の task_id が YB4206013B6A-0005FC571364EFE0-0-0 のタスクをクエリします。
obclient(root@sys)[oceanbase]> select * from DBA_OB_SERVER_EVENT_HISTORY where VALUE5='YB4206013B6A-0005FC571364EFE0-0-0';
クエリ結果は次のとおりです:
+----------------------------+-----------+----------+------------+---------------------------------+-----------+--------+-------+--------+-------+-------------------+-------+------------------+---------+-----------------------------------+-------------------+--------+------------+
| TIMESTAMP | SVR_IP | SVR_PORT | MODULE | EVENT | NAME1 | VALUE1 | NAME2 | VALUE2 | NAME3 | VALUE3 | NAME4 | VALUE4 | NAME5 | VALUE5 | NAME6 | VALUE6 | EXTRA_INFO |
+----------------------------+-----------+----------+------------+---------------------------------+-----------+--------+-------+--------+-------+-------------------+-------+------------------+---------+-----------------------------------+-------------------+--------+------------+
| 2023-06-07 16:12:58.324433 | x.x.xx.43 | 2882 | storage_ha | ls_ha_start | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | is_failed | 0 | ADD_LS_OP |
| 2023-06-07 16:12:58.325473 | x.x.xx.43 | 2882 | storage_ha | initial_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | is_failed | 0 | ADD_LS_OP |
| 2023-06-07 16:12:58.616840 | x.x.xx.43 | 2882 | storage_ha | start_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | data_tablet_count | 830 | ADD_LS_OP |
| 2023-06-07 16:12:58.642320 | x.x.xx.43 | 2882 | storage_ha | sys_tablets_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | is_failed | 0 | ADD_LS_OP |
| 2023-06-07 16:13:03.754195 | x.x.xx.43 | 2882 | storage_ha | data_tablets_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | is_failed | 0 | ADD_LS_OP |
| 2023-06-07 16:13:04.348244 | x.x.xx.43 | 2882 | storage_ha | tablet_group_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | tablet_count | 101 | ADD_LS_OP |
| 2023-06-07 16:13:04.360507 | x.x.xx.43 | 2882 | storage_ha | tablet_group_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | tablet_count | 101 | ADD_LS_OP |
| 2023-06-07 16:13:04.382052 | x.x.xx.43 | 2882 | storage_ha | tablet_group_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | tablet_count | 101 | ADD_LS_OP |
| 2023-06-07 16:13:04.422866 | x.x.xx.43 | 2882 | storage_ha | tablet_group_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | tablet_count | 101 | ADD_LS_OP |
| 2023-06-07 16:13:04.425482 | x.x.xx.43 | 2882 | storage_ha | tablet_group_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | tablet_count | 101 | ADD_LS_OP |
| 2023-06-07 16:13:04.426223 | x.x.xx.43 | 2882 | storage_ha | tablet_group_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | tablet_count | 101 | ADD_LS_OP |
| 2023-06-07 16:13:04.432973 | x.x.xx.43 | 2882 | storage_ha | tablet_group_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | tablet_count | 101 | ADD_LS_OP |
| 2023-06-07 16:13:04.433154 | x.x.xx.43 | 2882 | storage_ha | tablet_group_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | tablet_count | 101 | ADD_LS_OP |
| 2023-06-07 16:13:04.519100 | x.x.xx.43 | 2882 | storage_ha | tablet_group_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | tablet_count | 22 | ADD_LS_OP |
| 2023-06-07 16:13:20.152015 | x.x.xx.43 | 2882 | storage_ha | migration_finish_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | is_failed | 0 | ADD_LS_OP |
| 2023-06-07 16:13:20.152624 | x.x.xx.43 | 2882 | storage_ha | initial_complete_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | is_failed | 0 | ADD_LS_OP |
| 2023-06-07 16:14:04.198183 | x.x.xx.43 | 2882 | storage_ha | start_complete_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | is_failed | 0 | ADD_LS_OP |
| 2023-06-07 16:14:04.198518 | x.x.xx.43 | 2882 | storage_ha | finish_complete_migration_task | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | is_failed | 0 | ADD_LS_OP |
| 2023-06-07 16:14:04.203593 | x.x.xx.43 | 2882 | storage_ha | ls_ha_finish | tenant_id | 1 | ls_id | 1 | src | "x.x.xx.106:2882" | dst | "x.x.xx.43:2882" | task_id | YB4206013B6A-0005FC571364EFE0-0-0 | is_failed | 0 | ADD_LS_OP |
+----------------------------+-----------+----------+------------+---------------------------------+-----------+--------+-------+--------+-------+-------------------+-------+------------------+---------+-----------------------------------+-------------------+--------+------------+
19 rows in set (0.40 sec)
例えば、ビュー oceanbase.DBA_OB_SERVER_EVENT_HISTORY を使用して、タスクが停止していないか確認します。
Root Serviceによってスケジュールされたがまだ完了していないタスクのリスト(
tenant_id、ls_id)を取得します。obclient(root@sys)[oceanbase]> (select value1, value2 from DBA_OB_ROOTSERVICE_EVENT_HISTORY where event like '%add_ls%') except (select value1, value2 from DBA_OB_SERVER_EVENT_HISTORY where module like 'storage_ha' and event like '%finish_complete%');エラーが発生した移行/レプリケーションタスクを取得し、分析します。
obclient(root@sys)[oceanbase]> select * from DBA_OB_SERVER_EVENT_HISTORY where event like '%migrat%' and name6 like '%fail%' and value6=1;
ビュー DBA_OB_LS_REPLICA_TASKS は、実行中のすべての移行/レプリケーション/rebuildタスクを記録しています。特定のタスクに問題が疑われる場合は、task_id を使用して対応する期間のログを検索できます。
過去のタスクエラー原因の調査
以下のSQLを使用して、特定のログストリームの移行/レプリケーション/Rebuildタスクの実行履歴を確認できます。
obclient(root@sys)[oceanbase]> select * from DBA_OB_ROOTSERVICE_EVENT_HISTORY
where module like "%disaster%" and value1 = $TENANT_ID and value2 = $LS_ID;
ここで、finish イベントの name6 と value6 はタスクの実行結果を記録しています。ret フィールドが 0 の場合、そのタスクは正常に実行されたことを示します。0 以外の場合は、タスクの実行にエラーが発生したことを示します。elapsed フィールドはタスクの実行時間を記録しています。ret_comment は失敗の原因を説明しています。失敗したエラー情報がない場合は、対応する task_id を使用して、当時のRoot Serviceで関連するログを検索できます。
grep "$TASK_ID" rootservice.log*