関連ビュー
sysテナントでは、ビューoceanbase.DBA_OB_ROOTSERVICE_EVENT_HISTORYを使用してRoot Serviceがスケジュールした移行/複製/再構築タスクを確認できます。
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は、実行中のすべての移行/複製/再構築タスクを記録しています。特定のタスクに問題があると疑われる場合は、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*