---
title: 索引一致性检查与修复
description: "使用OmniHBaseGSI全局二级索引工具检查用户数据和索引数据的一致性，如果索引数据与用户数据不一致，可使用工具修复索引数据。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0616.html
sourcePath: /source/zh/kunpengboostkithistory/2400/bds/kunpengbds_omniruntime_20_0616.html
indexId: cc585f209433e8e639eaf8b2bb958caebfe1ac93e5c1b32d6eca0e9168bf35dd78
---
# 索引一致性检查与修复

使用OmniHBaseGSI全局二级索引工具检查用户数据和索引数据的一致性，如果索引数据与用户数据不一致，可使用工具修复索引数据。

#### 场景介绍

可使用OmniHBaseGSI全局二级索引工具检查用户数据和索引数据的一致性，如果索引数据与用户数据不一致，可用于修复索引数据。


#### 功能说明

请避免在使用该功能的同时进行put/delete操作，会导致结果异常。

索引修复功能主要为put/delete操作时发生的异常情况而设计。对于人为破坏索引表的行为，可能导致无法正确修复，此时推荐删除并重建索引。例如工具会将verified状态的索引列视为正常，如果人为修改了该索引列的覆盖列，该功能是无法检查出来的。


#### 使用方法

使用前需要修改Hadoop配置文件mapred-site.xml，在mapreduce.application.classpath属性中添加HBase的“lib”目录（默认OmniHBaseGSI的JAR包也放在“/usr/local/hbase/lib”中，如果放在其他目录，也需要单独将二级索引JAR包配置到classpath中）。配置完成之后请重启Hadoop和HBase。

执行以下命令可检查数据一致性，若不一致，将重新构建索引数据。一致性检查结果会保存到“default:INDEX_CONSISTENCY_RECORD_TABLE”和“default:INDEX_CONSISTENCY_RECORD_METADATA”表中。

```
hbase com.huawei.boostkit.hindex.mapreduce.consistency.GlobalHIndexConsistencyTool -dt table1 -it idx3 -src BOTH -r
```

命令参数说明：

- -dt,--data-table：要进行一致性检查的数据表名称。
- -it,--index-table：要进行一致性检查的索引名称。
- 可选：-src,--source：检查模式选择，默认为“BOTH”，支持以下模式。

  - INDEX_TABLE_SOURCE：索引表作为源表。
  - DATA_TABLE_SOURCE：数据表作为源表。
  - BOTH：索引表和数据表均作为源表。
- 可选：-r,--repair：索引数据修复选项，添加此参数，表示检查后进行修复。
- 可选：-sc,--scan-caching ：一致性检查/修复的MapReduce任务中scan caching大小。
- 可选：-h, --help：查看一致性工具可用的选项。
