check系列命令

2.1.17.0 check @@metadata 命令

用于检查meta信息是否存在以及加载的时间。
命令格式:

  • 第一种形式 check @@metadata,返回结果可能是:
    1. 上一次 reload @@metadata 的datatime;
    2. 上一次 reload @@config_all的datatime(注意:在配置没有变更的情况下,不会同步元数据,因此datetime是不会变化的);
    3. 启动时加载meta的datatime
  • 第二种形式check full @@metadata ,并且支持以下过滤条件:

    • where schema=? and table=?
    • where schema=?
    • where reload_time=‘yyyy-MM-dd HH:mm:ss’,where reload_time>=‘yyyy-MM-dd HH:mm:ss’,where reload_time<=‘yyyy-MM-dd HH:mm:ss’
    • where reload_time is null
    • where consistent_in_sharding_nodes=0
    • where consistent_in_sharding_nodes = 1
    • where consistent_in_memory=0
    • where consistent_in_memory = 1
    • If no where, retrun all results.
  • check full @@metadata 结果集如下:

schema table reload_time table_structure consistent_in_sharding_nodes consistent_in_memory
schema table 2018-09-18 11:01:04 CREATE TABLE table`(..... 1 1

column table_structureshow create table命令结果的形式一样
column consistent_in_sharding_nodes 表示不同分片之间的一致性,0为不一致,1为一致
column consistent_in_memory 表示内存中meta与实际后端结点的一致性,0为不一致,1为一致

当table_structure列为null时,consistent_in_sharding_nodes列和consistent_in_memory列没有意义。
当consistent_in_sharding_nodes为0时,consistent_in_memory没有意义。

2.1.17.1 check @@global schema = '' [and table = '']

用于进行手动全局表检查的命令,当即触发一次特定范围的全局表检查,并且将检查结果作为返回值进行展示。
结果如下所示:

mysql> check @@global schema = 'testdb';
+--------+------------+-----------------------------+-------------------+
| SCHEMA | TABLE      | DISTINCT_CONSISTENCY_NUMBER | ERROR_NODE_NUMBER |
+--------+------------+-----------------------------+-------------------+
| testdb | tb_global1 |                           0 |                 0 |
+--------+------------+-----------------------------+-------------------+

SCHEMA: 所检查的SCHEMA名字
TABLE: 所检查的TABLE名字
DISTINCT_CONSISTENCY_NUMBER: 返回有几个不同的检查结果的版本
ERROR_NODE_NUMBER: 在检查过程中有几个节点执行SQL报错
具体最终结果是否符合用户的预期,还是要根据表格的检查SQL和返回信息来进行判断,但一般情况下认为当DISTINCT_CONSISTENCY_NUMBER的值大于1的情况下,表格中的内容一定不一致

results matching ""

    No results matching ""