
# HashBucket表迁移
#### 操作场景
GaussDB支持普通表与HashBucket表类型相互转换，当集群中的普通表需要使用HashBucket相关特性时，需要先将普通表转换成HashBucket表。本章节仅为您介绍如何执行表类型转换操作，HashBucket特性介绍请参考《开发指南》中的[bucket分布表](https://support.huaweicloud.com/distributed-devg-v10-gaussdb/gaussdb-12-0765.html)章节。
#### 注意事项
- 数据库引擎版本大于或等于V2.0-8.100.0的分布式实例支持表类型转换。如何查看实例版本请参见[查看数据库引擎版本](https://support.huaweicloud.com/productdesc-gaussdb/gaussdb_01_012.html#section2)。
- 实例状态异常时不允许进行表类型转换操作。
- 可用磁盘空间大小（可用磁盘空间大小=磁盘空间总量\*磁盘占用率只读检测阈值-已使用磁盘空间大小）需要大于最大单表的1.5倍。 磁盘空间总量和已使用磁盘空间大小可在实例基本信息页面的存储与备份模块查看。磁盘占用率只读检测阈值默认为85%，可以通过[修改实例参数](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_166.html#ZH-CN_TOPIC_0000002649932710__section267472834710)"cms:datastorage_threshold_value_check"进行配置。
  
- 本地迁移对在线业务的平均吞吐量和平均时延的影响，在用户设置的资源管控级别范围内，业务闪断控制在秒级。 资源管控级别可以通过[修改扩容重分布参数](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_166.html#ZH-CN_TOPIC_0000002649932710__section661131371420)"redis_resource_level"进行配置。
  
- 普通表转HashBucket表时，HashBucket表预分配文件会占用额外磁盘空间。因此，每张表需要额外预留100MB\~200MB的空间。
- HashBucket表不支持的表类型均不支持表类型转换（不支持ustore表、不支持range、list分布的表、不支持二级分区表、不支持临时表、unlogged表、不支持外表和密态表）。设置透明加密的表也不支持类型转换。
  
- 当前仅支持普通Astore行存非分区表或分区表，HashBucket非分区表或分区表之间的类型转换。不支持段页式表转换。Astore介绍请参考[Astore简介](https://support.huaweicloud.com/fg-gaussdb-dist-v8/gaussdb-18-0099.html)。
  
- HashBucket表转换为普通表后，段页式的存储空间不会主动释放。
- 单次转换最多支持1000张表。
- 转换期间执行DDL语句可能失败。
 
#### 操作步骤
1. [登录云数据库GaussDB控制台](https://console.huaweicloud.com/gaussdb/?locale=zh-cn#/gaussdb/management/list)。
2. 在"实例管理"页面，单击目标实例名称，进入实例基本信息页面，在页面右上角，单击"HashBucket表迁移"进入HashBucket迁移页面。 
   图1实例基本信息   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002679854511.png "点击放大")
   
   
   
3. 选择表类型，勾选需要转换的表，然后单击"HashBucket表迁移"下发表类型转换操作。 
   表类型：可选普通表和HashBucket表。
   图2HashBucket表迁移   
   ![](https://support.huaweicloud.com/usermanual-gaussdb/figure/zh-cn_image_0000002680014343.png "点击放大")
   
   
   
4. 在实例列表中查看实例运行状态，当实例运行状态为"正常"时，表示表类型转换完成。
 
