关于OB 数据库转储时的常见问题

本文介绍 OceanBase 数据库转储的常见问题。

如何查看分区级转储任务的执行情况?

可以通过查询

__all_virtual_partition_sstable_merge_info

表,其中

merge_percentage

列表示某分区的转储进度。

obclient> SELECT table_id,partition_id,merge_type,merge_percentage FROM __all_virtual_partition_sstable_merge_info WHERE partition_id=$partition_id AND table_id=$table_id; ±--------------±-------------±------------±-----------------+ | table_id | partition_id | merge_type | merge_percentage | ±--------------±-------------±------------±-----------------+ | xxxxxxxxxxxxx | x | major merge | 0 | ±--------------±-------------±------------±-----------------+ 1 rows in set (0.01 sec)

如何查询租户级转储调度情况?

可以通过查询

gv$minor_merge_info

视图来查询租户级转储调度情况,其中

FREEZZE_SNAPSHOT

表示转储的版本号。

您可以忽略

finish_time

为空的行,这是由于在频繁触发的转储的场景下,多个版本的转储任务执行时,OceanBase 数据库会尽可能调度最大可转储范围的快照去转储,因此

gv$minor_merge_info

视图中会记录多个版本转储任务的开启时间,而结束时间只有一条记录。

obclient> SELECT * FROM gv$minor_merge_info WHERE finish_time!=’’; ±---------------±---------±----------±-----------------±---------------------------±---------------------------+ | SVR_IP | SVR_PORT | TENANT_ID | FREEZE_SNAPSHOT | START_TIME | FINISH_TIME | ±---------------±---------±----------±-----------------±---------------------------±---------------------------+ | xxx.xx.xxx.xxx | 2882 | 1 | 1622614004042052 | 2021-06-02 14:06:44.059477 | 2021-06-02 14:07:05.788240 | | xxx.xx.xxx.xxx | 2882 | 1 | 1622614004052052 | 2021-06-02 14:06:44.057896 | 2021-06-02 14:07:05.854671 | | xxx.xx.xxx.xxx | 2882 | 1 | 1622614004042052 | 2021-06-02 14:06:44.060751 | 2021-06-02 14:07:05.380613 | ±---------------±---------±----------±-----------------±---------------------------±---------------------------+ 3 rows in set (0.02 sec)