---
title: 修改索引状态
description: "索引信息中的索引状态反映了索引当前的使用情况，总共有正常、被禁用、异常、正在生成、正在被删除五种状态，可通过命令对状态进行修改。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2300/bds/kunpengbds_omniruntime_20_0203.html
sourcePath: /source/zh/kunpengboostkithistory/2300/bds/kunpengbds_omniruntime_20_0203.html
indexId: c739c8911035cd6641838dd3ab10ddbfe9d9689cae6206e8e74366c30244736d78
---
# 修改索引状态

索引信息中的索引状态反映了索引当前的使用情况，总共有正常、被禁用、异常、正在生成、正在被删除五种状态，可通过命令对状态进行修改。

#### 索引状态介绍

索引状态反映了索引当前的使用情况，全局二级索引支持以下五种状态。

- ACTIVE：索引正常，可以正常读写。
- UNUSABLE：索引被禁用，索引数据会正常更新，但查询时无法使用这个索引。
- INACTIVE：索引异常，索引数据与数据表不一致，索引数据不更新，查询数据时无法使用这个索引。
- BUILDING：索引数据正在生成，索引数据生成工具执行结束会自动转换到ACTIVE状态，存在该状态的索引时，不能对相关数据表进行修改。
- DROPPING：索引正在被删除，查询数据时无法使用这个索引。

索引各种状态之间的转化条件如图1所示。

图1 索引状态转换图


#### 场景介绍

用户可以使用全局二级索引工具或者调用API修改索引状态。


#### 使用方法

执行以下命令可禁用/启用某个索引。

```
hbase com.huawei.boostkit.hindex.mapreduce.GlobalTableIndexer -Dtablename.to.index=
'table'
-D[idx_state_opt]=
'idx1'
```

命令参数说明：

- tablename.to.index：表示需修改索引状态的数据表的名称。
- idx_state_opt：表示修改索引的目标状态，可选参数如下。

  - indexnames.to.inactive：表示将指定的索引转换为INACTIVE状态。
  - indexnames.to.active：表示将指定的索引转换为ACTIVE状态。
  - indexnames.to.unusable：表示将指定的索引转换为UNUSABLE状态。


例如：修改状态为ACTIVE的tablename表的索引idx_1的状态为UNUSABLE。

```
hbase com.huawei.boostkit.hindex.mapreduce.GlobalTableIndexer -Dtablename.to.index='tablename' -Dindexnames.to.unusable='idx_1'
```

执行成功后，再次查看索引信息。

```
hbase com.huawei.boostkit.hindex.mapreduce.GlobalTableIndexer -Dtablename.to.show=tablename
```

结果如下图所示，idx_1的索引状态已被修改为UNUSABLE。

```
The index information of table :
IndexName : idx_0, IndexColumns : [cf_0:q_0 -> type:STRING, cf_0:q_1 -> type:STRING], CoveredColumns : [cf_0:q_0 -> type:STRING], IndexState : ACTIVE
IndexName : idx_1, IndexColumns : [cf_0:q_0 -> type:STRING, cf_0:q_1 -> type:STRING, cf_0:q_2 -> type:STRING], CoveredColumns : [], IndexState : UNUSABLE
```
