本文介绍 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)