GaussDB-在线表类型转换
GaussDB-在线表类型转换
可获得性
本特性自505.0.0版本开始引入。
特性简介
支持普通表与hashbucket表在线本地进行表类型相互转换。
客户价值
随着hashbucket特性的演进,GaussDB提供将数据库中已有的普通表,在线本地转换为hashbucket表的能力,以便用户后续使用hashbucket特性。
特性描述
通过重分布的原理支持在线本地表类型转换。普通表与hashbucket表在线本地进行表类型相互转换,用户可以使用此特性将集群中已存在的普通表转换为hashbucket表,并在此基础上利用hashbucket扩容特性。
特性约束
- 集群状态必须为Normal或者Degraded状态,集群Degraded状态只是实例异常引起的集群状态异常,不支持VM异常引起的集群状态异常(VM异常指非软件类异常,例如:磁盘故障、通信故障),请确保实例状态异常节点的网络正常。
- 实例状态:CN全部正常,GTM、CMS至少有主节点存活。
- 重分布状态必须为No。
- 集群配置文件的配置信息正确并且和当前集群配置一致。
- 资源管控对象redisuser,redisrespool,redisclass,redisgrp不能被占用。
- 迁移失败后集群不回滚,需重入迁移操作。
- 当前仅支持普通astore行存非分区表或分区表,hashbucket非分区表或分区表之间的类型转换。不支持段页式表的转换。支持迁移的表类型继承hashbucket表约束,不支持ustore表、不支持range和list分布的表、不支持二级分区表、不支持临时表、不支持unlogged表、不支持透明加密表的转换。
- 迁移操作要求整个集群没有被锁定(没有业务持有集群锁禁用DDL)。
- 迁移操作仅支持分布式部署的集群。
- 迁移操作要求集群不能处于只读模式。
- 迁移失败后的待重入阶段禁止使用gs_om的managecn功能删除CN。
- 在线本地迁移磁盘空间要求预留最大单表的1.5倍、锁资源约束继承逻辑在线扩容的规格。
- 对业务的影响:本地迁移对在线业务的平均吞吐量和平均时延的影响,在用户设置的资源管控级别范围内,业务闪断控制在秒级。
- 资源使用情况:
- 离线场景不控制I/O资源使用。
- 在线场景I/O占用控制在用户下发的资源管控参数范围内。
- 普通表转hashbucket表,磁盘膨胀与参数enable_segment_datafile_preallocate对磁盘预分配的影响相关。参数为on时,hashbucket表预分配文件占用额外磁盘空间。
- 性能规格:在f模式下,单DN 1TB在线本地数据迁移耗时是逻辑扩容的两倍。
具体场景:(此场景同在线扩容已商用特性的发布规格,未新增场景)
集群数据节点读带宽500MB/s、写带宽800MB/s,万兆网络,CPU和内存不是瓶颈,业务负载低峰且不做资源管控(资源管控级别为f,表内并发度为8,扫描并发度为4)时,单DN分片1TB在线本地数据迁移6小时完成。
- 转换前后hashbucket表的约束继承hashbucket特性本身的约束;hashbucket表不支持的表类型均不支持表类型迁移。
- 在线迁移正常运行过程中,用户修改转换文件无效。异常发生后,若重分布已开始不允许修改文件中表的转换类型及新增表,可删除未转换的表信息;重分布前允许用户更改文件内容(增、删、改)。
特性增强
无
依赖关系
无。

浙公网安备 33010602011771号