GBase8a 数据库集群v953扩容案例问题分享

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: GBase8a 数据库集群v953扩容案例问题分享

概述
某个项目的GBase8a集群v953版本计划在多vc其中的vc1扩容3节点双实例,分享如何回退重分布,及无法取消重分布如何手工介入解决。

问题分析及处理
集群总体环境如下:

集群版本:GBase8a_MPP_Cluster-953.27.20-patch6.2

集群操作系统:kylin v10

1.回退重分布
参照v95扩容步骤在重分布过程中采用rebalance database dbname的方式以库为单位扩容,期间观察扩容节点的空间变化,发现重分布完成后空间没有变化,查询gbase.table_distribution发现大部分都是随机表,当前版本的gcluster_rebalancing_random_table_quick_mode参数默认值是1开启的状态,

关于该参数的说明参考如下:

因为随机分布表的特性,数据在任何节点都不影响查询结果,而且大部分随机分布表都是大表,也就是不适合选择某个列做Hash分布表。而这种表因为磁盘占用大,如果参与重分布,则需要大量的时间,所以数据库提供了参数,默认随机分布表做快速重分布,不重新分散数据,而是保留现有数据状态。

调整随机表参数
Set global gcluster_rebalancing_random_table_quick_mode = 0;

此时需要回退重分布的随机表

获取切片id
查看gcadmin showdistribution vc vc1 查看对应的切片信息, State: old获取对应的 Distribution ID: 1

清理重分布任务表
delete from gclusterdb.rebalancing_status;

回退重分布
命令

rebalance {instance|database dbname|table tbname} [to distributionID]

说明

该重分布命令,默认是将老的分布策略(distributionid 较小的),重分布到新的(较大的),在某些情况下,也存在要回退的可能性,比如随机分布表默认是快速重分布,但现场因为磁盘空间问题做的扩容,参数忘记设置了,而此时只有部分表做了重分布操作。清理现有任务,避免后续的重分布 delete from rebalancing_status; 回退到老的分布策略 通过rebalance table to 方法,将表回退到1,注意其中的gclusterdb.rebalancing_status不能手工回退。

gbase.table_distribution查找对应db的随机表名称并拼接sql批量执行 : rebalance table tablename to 1;

再次清理重分布任务表
delete from gclusterdb.rebalancing_status;

重新开始重分布
参考重分布方案,不再重复。

2.手动介入取消重分布
由于大表重分布过程中遇到跑批锁表情况,需要取消重分布释放锁。

cancel reablance table tablename 指定表名的方式取消重分布

正常情况下会回滚取消,现场取消等待接近一个小时还未回滚完成,检查数据节点空间也没有任何释放。

通过查询所有vc1的数据节点执行:

gncli -ugbase -pxxxxxx -e”show processlist”|grep -iv sleep

查看任务存在:

select * from db.tablename limit 0,1000000000 target into server字样的任务正在rollback回滚的状态

gncli执行 kill 对应会话id后释放任务

再观察gclusterdb.rebalacing_status的状态已经取消了。

相关文章
|
25天前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
2月前
|
存储 数据库
快速搭建南大通用GBase 8s数据库SSC共享存储集群
本文介绍如何GBase8s 数据库 在单机环境中快速部署SSC共享存储集群,涵盖准备工作、安装数据库、创建环境变量文件、准备数据存储目录、修改sqlhost、设置onconfig、搭建sds集群及集群检查等步骤,助你轻松完成集群功能验证。
|
2月前
|
Shell 数据库
GBase8a 数据库新集群第一次创建dblink
GBase8a 数据库新集群第一次创建dblink
|
2月前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
2月前
|
存储 SQL 数据库
Sybase数据恢复—Sybase数据库常见问题之数据库无法启动的恢复案例
Sybase数据库数据恢复环境: Sybase数据库版本:SQL Anywhere 8.0。 Sybase数据库故障&分析: Sybase数据库无法启动。 使用Sybase Central连接报错。 数据库数据恢复工程师经过检测,发现Sybase数据库出现故障的原因是:异常断电造成Sybase数据库无法回写正常数据,导致多个存储页数据不一致,系统表描述和存储表不一致,部分存储页底层数据完全杂乱。
|
2月前
|
存储 缓存 网络安全
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
|
2月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL的数据库集群
PostgreSQL的逻辑存储结构涵盖了数据库集群、数据库、表、索引、视图等对象,每个对象都有唯一的oid标识。数据库集群是由单个PostgreSQL实例管理的所有数据库集合,共享同一配置和资源。集群的数据存储在一个称为数据目录的单一目录中,可通过-D选项或PGDATA环境变量指定。
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
2月前
|
存储 Oracle 关系型数据库
oracle数据恢复—Oracle数据库文件大小变为0kb的数据恢复案例
存储掉盘超过上限,lun无法识别。管理员重组存储的位图信息并导出lun,发现linux操作系统上部署的oracle数据库中有上百个数据文件的大小变为0kb。数据库的大小缩水了80%以上。 取出&并分析oracle数据库的控制文件。重组存储位图信息,重新导出控制文件中记录的数据文件,发现这些文件的大小依然为0kb。
|
30天前
|
存储 Oracle 关系型数据库
服务器数据恢复—华为S5300存储Oracle数据库恢复案例
服务器存储数据恢复环境: 华为S5300存储中有12块FC硬盘,其中11块硬盘作为数据盘组建了一组RAID5阵列,剩下的1块硬盘作为热备盘使用。基于RAID的LUN分配给linux操作系统使用,存放的数据主要是Oracle数据库。 服务器存储故障: RAID5阵列中1块硬盘出现故障离线,热备盘自动激活开始同步数据,在同步数据的过程中又一块硬盘离线,RAID5阵列瘫痪,上层LUN无法使用。