数仓在线运维:如何进行在线增删CN?
摘要:集群运行过程中,根据集群的综合负载和业务接入情况进行分析:增加CN可以适当降低CPU消耗,增大接入连接数,分散CN节点业务压力,根据实际情况来识别是否要增加CN,如果是提升集群容量和扩展比能力,建议进行扩容操作。
本文分享自华为云社区《【玩转PB级数仓GaussDB(DWS)】在线运维-在线增删CN》,作者:sevenjiang。
集群运行过程中,根据集群的综合负载和业务接入情况进行分析:增加CN可以适当降低CPU消耗,增大接入连接数,分散CN节点业务压力,根据实际情况来识别是否要增加CN,如果是提升集群容量和扩展比能力,建议进行扩容操作。
支持在线运维:
在符合增加CN、删除CN界面的准入条件下,找低峰期时间窗进行操作。
准入条件:
1.增加CN要求集群状态正常(集群状态为Normal,非均衡,低性能状态)
2.如果存在一个节点故障,只允许删除该节点的CN
3.如果存在两个以上的节点故障,不允许删除CN
4.增加或删除CN失败,最新版本通过界面重入即可。
5.最少保留两个CN,最大支持20个CN
界面操作步骤:
1.增加cn
找到集群,点击 “更多”

展开更多后,点击“管理cn节点”

展开“管理cn节点”

点击“点击增加cn节点”,选择需要增加cn的个数,“点击确认”即可

2.删除cn
同上,“点击删除cn节点”

勾选需要删除cn的节点前的复选框,“点击确认”即可

针对业务的影响:
pg_advisory_lock影响的操作:用户业务等待锁不报错(设置了enable_online_ddl_waitlock ), 影响用户DDL,DCL,truncate,vacuum,analyze,lock等操作(非DML操作)
影响时间:锁集群时间=增量build耗时,一般小于20分钟。
可能出现的情况:
1.增量build CN阶段之前会进行短暂的锁集群(pg_advisory_lock),如果有长事务中未提交的业务一直在执行,就会出现等锁的情况,重试3次每次1个小时,还是不能加上锁,增加CN操作会失败回滚退出。
备注:每个CN都有可能出现等锁的现象,如果要查询可以通过如下语句进行查询
select * from pg_locks where classid=65535 and classid=65535 and locktype='advisory' and mode = 'ShareLock' and granted='t';
2.增量build CN阶段,如果业务下发了DDL操作,会出现界面端没有返回成功的情况,类似于hang的现象,等待增量build完成,DDL提交成功,业务界面侧返回成功。
3.删除CN,如果使用到了LVS负载均衡,因为lvs存在重试机制,cn会出现短暂的连接失败。
4.业务低峰期和高峰期,分别进行增加CN的操作,全量build耗时可能存在超过1倍以上的耗时差异,感知上时间会增长,是因为业务并发过大时,会与cn的build阶段进行IO争抢,增加cn加锁阶段也会有所延迟。
5.增删CN阶段,不支持其他类集群运维操作,例如:升级、扩容、温备修复、快照等
数仓在线运维:如何进行在线增删CN?的更多相关文章
- MySQL数据库运维课程
MySQL数据库运维课程 http://www.dataguru.cn/article-4834-1.html?union_site=comm100 课程大纲 第一课:机器选型.系统规划 第二课:安装 ...
- 数据库 OR 运维 ____bayaim
最近一直在思考,想想未来的道路和自己努力的方向.马云曾说过现在的年轻人缺少“慢下来”,只有人慢下来才能更好思考,想好方法和目标才更靠近才成功.如果,一直不停的努力,在错误的道路越走越远,势必会浪费时间 ...
- MARK 一条关于Linux 运维方面个人向收藏网址
吴钧泽博客 https://wujunze.com/archives.html Linux运维笔记 https://blog.linuxeye.cn/ Linux中文网 http://www.ppze ...
- 运维派 企业面试题4&5 创建10个 用户 ; ping探测主机是否在线
Linux运维必会的实战编程笔试题(19题) 企业面试题4: 批量创建10个系统帐号oldboy01-oldboy10并设置密码(密码为随机8位字符串). #!/bin/bash # ;i<=; ...
- 【数仓运维实践】关于GaussDB(DWS)单SQL磁盘空间管控
摘要:本文主要讲解数仓运维中遇到单SQL磁盘空间管控问题的解析和方案. 本文分享自华为云社区<GaussDB(DWS)运维 -- 单SQL磁盘空间管控>,作者: 譡里个檔. [问题描述] ...
- Python运维开发基础10-函数基础【转】
一,函数的非固定参数 1.1 默认参数 在定义形参的时候,提前给形参赋一个固定的值. #代码演示: def test(x,y=2): #形参里有一个默认参数 print (x) print (y) t ...
- Python运维开发基础09-函数基础【转】
上节作业回顾 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 实现简单的shell命令sed的替换功能 import ...
- 数栈运维实例:Oracle数据库运维场景下,智能运维如何落地生根?
从马车到汽车是为了提升运输效率,而随着时代的发展,如今我们又希望用自动驾驶把驾驶员从开车这项体力劳动中解放出来,增加运行效率,同时也可减少交通事故发生率,这也是企业对于智能运维的诉求. 从人工运维到自 ...
- 基于MaxCompute的数仓数据质量管理
声明 本文中介绍的非功能性规范均为建议性规范,产品功能无强制,仅供指导. 参考文献 <大数据之路——阿里巴巴大数据实践>——阿里巴巴数据技术及产品部 著. 背景及目的 数据对一个企业来说已 ...
- 技术沙龙|京东云DevOps自动化运维技术实践
自动化测试体系不完善.缺少自助式的持续交付平台.系统间耦合度高服务拆分难度大.成熟的DevOps工程师稀缺,缺少敏捷文化--这些都是DevOps 在落地过程中,或多或少会碰到的问题,DevOps发展任 ...
随机推荐
- SSH 免秘钥登录
yum -y install expect ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa for i in 192.168.1.11 1 ...
- unity2017自定义编译dll
适用于自定义编译平台和编译符合,把C#源码文件编译成dll.(用于InjectFix之类的热更方案) 适用于unity2017环境,代码暂时不方便贴出记述一下思路. 参考:Unity官方C#源码 ht ...
- nodejs修改npm包安装位置
适用于非个人电脑.便携使用 npm config set cache D:\nodejs\node_cache npm config set prefix D:\nodejs npm config s ...
- [Python急救站]文本进度条
完游戏的朋友们,是不是看到那种加载加载进度条,感觉特别不错呢,所以今天就来看看文本进度条怎么做. 1.基本的多行文本进度条 import time scale = 10 # 变量scale表示输出进度 ...
- animate.css 动画库的下载与使用
作者:WangMin 格言:努力做好自己喜欢的每一件事 animate.css是什么? animate.css 是一个有趣,酷炫的,跨浏览器的动画库,里面包含了许多常用的css动画.你可以将它用于你的 ...
- 龙芯发布 .NET 8 SDK 8.0.100-rc2 LoongArch64
随着.NET 8的发布的临近,国内的社区朋友们也很关心龙芯.NET 团队对于Loongarch .NET 8的发布时间,目前从龙芯.NET编译器团队的可靠信息,Loongarch .NET 8的发布会 ...
- CSP-S 考前备战——常考知识点串烧
1.树形结构 与 树形dp PS :在CSP-S 2019,CSP-J 2020,CSP-S 2020,CSP-S 2021 均有考查 此类问题的做题方法就是将问题转化成树上的问题,然后进行深度优先遍 ...
- Promise规范与原理解析
摘要 Promise对象用于清晰的处理异步任务的完成,返回最终的结果值,本次分享主要介绍Promise的基本属性以及Promise内部的基础实现,能够帮我们更明确使用场景.更快速定位问题. Promi ...
- Jenkins从Ubuntu迁移至AlmaLinux问题及相关解决记录
相关背景 之前在Ubuntu平台上搭建了Jenkins(在Ubuntu机器上使用war包安装Jenkins),现在由于一些需求,需要将系统迁移到AlmaLinux平台.由于AlmaLinux属于Cen ...
- 31. 干货系列从零用Rust编写正反向代理,HTTP限流的实现(limit_req)
wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ...