当前位置: 首页 > news >正文

Greenplum的数据库年龄检查处理

概述

Greenplum是基于Postgresql数据库的分布式数据库,而PG数据库在事务及多版本并发控制的实现方式上很特别,采用的是递增事务id的方法,事务id大的事务,认为比较新,反之事务id小,认为比较旧。

事务id的上限是21亿,正常使用时,事务id只增不减,到达一定程度时,就会触发数据库告警直至数据库只读,无法创建新事务

减少事务id的方法是执行提供的回收命令。

gp一共是21亿可以使用,使用超过5亿就告警,超过11亿就锁库

两个重要参数

postgres=# show xid_warn_limit;xid_warn_limit
----------------500000000
(1 row)postgres=# show xid_stop_limit;xid_stop_limit
----------------1000000000
(1 row)

这个两个参数是控制事务id剩余值多少时数据库会告警,或切换为只读的

注意:事务id的总值是21亿

xid_warn_limit 当距离stop的值不足5亿时,数据库会触发年龄告警
xid_stop_limit 当距离21亿总值的剩余值不足10亿时,数据库会切换为只读

简单来说,针对默认的设置:

年龄1-5亿:无年龄问题
年龄5-11亿:会触发年龄告警,但不影响数据库使用
年龄11-21亿:数据库为只读,不能创建新事务

如何检查数据库年龄?

1.执行命令时年龄告警

查询表统计数据是出现异常提示:

WARNNING:database “XXX” must be  vacuumed within 177009986 transactions 
HINT: To avoid a database shutdown,execute a database-wide VACUUM in “XXX”

当数据库查询或者日志中出现上面告警时,说明需要对GP事务id进行清理

If these warnings are ignored, the system will shut down and refuse to start any new transactions ince there are fewer than 1 million transactions left until wraparound:
ERROR: database is not accepting commands to avoid wraparound data loss in database “XXXX”

当数据库查询或者日志中出现上面告警时,说明GP停止对外提供服务

2.查询当前数据库年龄

SELECT gp_segment_id,datname, age(datfrozenxid) FROM gp_dist_random(‘pg_database’) ORDER BY 3 DESC;

例子:
比如这里查询当前年龄,最上面的值为2亿多,说明年龄在2亿左右

postgres=# SELECT gp_segment_id,datname, age(datfrozenxid) FROM gp_dist_random('pg_database') ORDER BY 3 DESC;gp_segment_id |                  datname                   |    age
---------------+--------------------------------------------+-----------0 | test01					                    | 2707979230 | test02					                    | 2707979230 | test03			                            | 270797923

如果是11亿,告警锁库了

3.如何界定年龄是否要处理

如果出现上面1 的告警,说明年龄已经到达警戒值,需要处理。
如果2 年龄超过5亿,说明即将告警,也需要处理

超过11亿,数据库就会锁库

告警年龄处理

在年龄到达告警值且未到锁库值的时候,此时数据库服务正常,就是命令会有warning输出

此时需要再master daedb用户下执行
nohup vacuumdb -F -a >/home/gpadmin/vacuumdb.log &

该命令执行时间可能很长,并且会消耗一定资源,如果过于影响客户使用,请选择执行时间,保证执行时间有5+ 小时

数据库锁库处理

还有一种情况,就是数据库已经到达只读阈值, 数据库只读了,因为vacuumdb的命令也需要创建事务,所以直接运行命令会报错,无法进行回收

就需要先修改上面的参数阈值,使其能正常运行事务

1.停止数据库

gpstop -M fast -aps  -ef|grep postgres   关闭确保进程都不在了,再继续 

2.找到所有数据目录

在master的daedb用户下执行:

gpstate -s|grep -E 'Address|Datadir'

该命令会将集群所有的数据目录及对应的主机名打印出来

另外有两台master,一般是在/gpmaster/gpseg-1 里,可以使用gpstate -f 查看

3.修改所有节点数据目录里配置文件参数

修改配置,找到所有节点的postgresql.conf,为其增加或修改参数

xid_stop_limit=800000000    #改为8亿,或者更小

全部修改完成之后,启动数据库:gpstart -a
启动完成以后,此时数据库就可以正常使用了

4.回收数据库年龄

此时需要再master 数据库用户下执行

nohup vacuumdb -F -a >/home/gpadmin/vacuumdb.log &

5.还原参数

改完还有个事,要将上面加的参数,全部注释掉 。有个简便方法,find 出来后替换

find /* -name 'postgresql.conf'|xargs sed -i  's/xid_stop_limit=500000000/#xid_stop_limit=500000000/g'

重启数据库生效:

gpstop -M fast -agpstart  -a

相关文章:

Greenplum的数据库年龄检查处理

概述 Greenplum是基于Postgresql数据库的分布式数据库,而PG数据库在事务及多版本并发控制的实现方式上很特别,采用的是递增事务id的方法,事务id大的事务,认为比较新,反之事务id小,认为比较旧。 事务id的上…...

[HCIE] IPSec-VPN (IKE自动模式)

概念: IKE:因特网密钥交换 实验目标:pc1与pc2互通 步骤1:R1与R3配置默认路由 R1: ip route-static 0.0.0.0 0.0.0.0 12.1.1.2 R2: ip route-static 0.0.0.0 0.0.0.0 23.1.1.2 步骤2:配ACL…...

Qt/QML编程学习之心得:一个Qt工程的学习笔记(九)

这里是关于如何使用Qt Widget开发,而Qt Quick/QML的开发是另一种方式。 1、.pro文件 加CONFIG += c++11,才可以使用Lamda表达式(一般用于connect的内嵌槽函数) 2、QWidget 这是Qt新增加的一个类,基类,窗口类,QMainWindow和QDialog都继承与它。 3、Main函数 QApplicati…...

c++ 课程笔记

105课: cpp文件分为 .h .cpp .cpp 文件 110课:124课 深拷贝 浅拷贝 自建拷贝构造解决浅拷贝释放new后堆区析构函数的问题 (浅拷贝 拷贝内存地址, 释放堆区时 导致源数据 释放时,该地址无数据?而报错) 浅拷贝: 拷贝了对方的值和 堆区内存地址(删除 影响原数据堆区) 深拷贝…...

ELK企业级日志分析平台——ES集群监控

启用xpack认证 官网:https://www.elastic.co/guide/en/elasticsearch/reference/7.6/configuring-tls.html#node-certificates 在elk1上生成证书 [rootelk1 ~]# cd /usr/share/elasticsearch/[rootelk1 elasticsearch]# bin/elasticsearch-certutil ca[rootelk1 ela…...

Twincat使用:EtherCAT通信扫描硬件设备链接PLC变量

EtherCAT通信采用主从架构,其中一个主站设备负责整个EtherCAT网络的管理和控制,而从站设备则负责在数据环网上传递数据。 主站设备可以是计算机、工控机、PLC等, 而从站设备可以是传感器、执行器、驱动器等。 EL3102:MDP5001_300_CF8D1684;…...

手机APP-MCP走蓝牙无线遥控智能安全帽~执法记录仪~拍照录像,并可做基础的配置,例如修改服务器IP以及配置WiFi等

手机APP-MCP走蓝牙无线遥控智能安全帽~执法记录仪~拍照录像,并可做基础的配置,例如修改服务器IP以及配置WiFi等 手机APP-MCP走蓝牙无线遥控智能安全帽~执法记录仪~拍照录像,并可做基础的配置,例如修改服务器IP以及配置WiFi等, AIoT万物智联,智能安全帽…...

网络互联与IP地址

目录 网络互联概述网络的定义与分类网络的定义网络的分类 OSI模型和DoD模型网络拓扑结构总线型拓扑结构星型拓扑结构环型拓扑结构 传输介质同轴电缆双绞线光纤 介质访问控制方式CSMA/CD令牌 网络设备网卡集线器交换机路由器总结 IP地址A、B、C类IP地址特殊地址形式 子网与子网掩…...

Android设计模式--模板方法模式

一,定义 定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在面向对象的开发过程中,通常会遇到这样一个问题,我们知道一个算法所需的关键步…...

大语言模型——BERT和GPT的那些事儿

前言 自然语言处理是人工智能的一个分支。在自然语言处理领域,有两个相当著名的大语言模型——BERT和GPT。两个模型是同一年提出的,那一年BERT以不可抵挡之势,让整个人工智能届为之震动。据说当年BERT的影响力是GPT的十倍以上。而现在&#…...

Docker 命令详解

1. 容器生命周期管理 命令说明文档run创建一个新的容器并运行一个命令Docker run 命令start/stop/restart启动、停止、重启容器Docker start/stop/restart 命令kill杀掉一个运行中的容器Docker kill 命令rm删除一个或多个容器Docker rm 命令pause/unpause暂停 恢复容器中所有的…...

ios打包,证书获取

HBuilderX 打包ios界面: Bundle ID(AppID): 又称应用ID,是每一个ios应用的唯一标识,就像一个人的身份证号码; 每开发一个新应用,首先都需要先去创建一个Bundle ID Bundle ID 格式: 一般为&…...

linux(nginx安装配置,tomcat服务命令操作)

首先进系统文件夹 /usr/lib/systemd/systemLs | grep mysql 查看带有命名有MySQL的文件夹修改tomcat.service文件复制jdk目录替换成我们的路径替换成我们的路径进入这个目录,把修改好的文件拖到我们的工具里面重新刷新系统 systemctl daemon-reload查看tomcat状态…...

jQuery_03 dom对象和jQuery对象的互相转换

dom对象和jQuery对象 dom对象 jQuery对象 在一个文件中同时存在两种对象 dom对象: 通过js中的document对象获取的对象 或者创建的对象 jQuery对象: 通过jQuery中的函数获取的对象。 为什么使用dom或jQuery对象呢? 目的是 要使用dom对象的函数或者属性 以及呢 要…...

Mysql 中如何导入数据?

文章目录 前言使用 LOAD DATA 导入数据使用 mysqlimport 导入数据mysqlimport的常用选项介绍后言 前言 hello world欢迎来到前端的新世界 😜当前文章系列专栏:Mysql 🐱‍👓博主在前端领域还有很多知识和技术需要掌握,正…...

深入了解前馈网络、CNN、RNN 和 Hugging Face 的 Transformer 技术!

一、说明 本篇在此对自然语言模型做一个简短总结,从CNN\RNN\变形金刚,和抱脸的变形金刚库说起。 二、基本前馈神经网络: 让我们分解一个基本的前馈神经网络,也称为多层感知器(MLP)。此代码示例将&#xff1…...

Flink Table API 读写MySQL

Flink Table API 读写 MySQL import org.apache.flink.connector.jdbc.table.JdbcConnectorOptions; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.table.api.DataTypes; import org.apache.flink.table.api.Envi…...

Nginx 开源版安装

下载 tar.gz安装包,上传。 解压 [rootlocalhost ~]# tar zxvf nginx-1.21.6.tar.gz nginx-1.21.6/ nginx-1.21.6/auto/ nginx-1.21.6/conf/ nginx-1.21.6/contrib/ nginx-1.21.6/src/ ... ...安装gcc [rootlocalhost nginx-1.21.6]# yum install -y gcc 已加载插件…...

『亚马逊云科技产品测评』活动征文|低成本搭建物联网服务器thingsboard

授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 0. 环境 - ubuntu22(注意4G内存勉强够,部署完…...

【Pytorch】Visualization of Feature Maps(3)

学习参考来自: Image Style Transform–关于图像风格迁移的介绍github:https://github.com/wmn7/ML_Practice/tree/master/2019_06_03 文章目录 风格迁移 风格迁移 风格迁移出处: 《A Neural Algorithm of Artistic Style》(ar…...

3步掌握DLSS Swapper实战技巧:游戏性能优化新境界

3步掌握DLSS Swapper实战技巧:游戏性能优化新境界 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为游戏玩家和硬件爱好者设计的开源工具,能够帮助您方便地下载、管理和切换…...

LingBot-Depth多场景应用:考古现场碎片三维拼接深度引导对齐

LingBot-Depth多场景应用:考古现场碎片三维拼接深度引导对齐 1. 引言:当AI深度感知遇见考古碎片 想象一下,你是一位考古学家,面对着一堆刚从遗址中发掘出来的、形状各异的陶器碎片。你的任务是将它们拼回原样,还原出…...

桥梁健康监测系统如何选?海陵区城市生命线项目中标单位为您解读

桥梁作为城市交通网络的关键节点,其结构安全状态直接关系到市民出行安全和城市运转效率。近年来,国内外多起桥梁安全事故为我们敲响了警钟,桥梁健康监测系统已成为城市生命线安全工程中不可或缺的重要组成部分。江苏星文科技有限公司作为海陵…...

别再手动配环境了!用CMake+VS2022一键搞定PCL点云库(附完整项目模板)

现代C点云开发实战:基于CMake与VS2022的PCL高效配置指南 点云处理已成为计算机视觉、自动驾驶和三维重建领域的核心技术之一。对于C开发者而言,Point Cloud Library (PCL)提供了强大的工具集,但传统的配置方式往往令人望而生畏——手动设置包…...

WanVideo_Cofy:AI 驱动的开源专业级视频生成平台全解析

一、平台简介 WanVideo_Cofy(全称 WanVideo ComfyUI,常简称为 WanVideo_Cofy)是基于阿里云通义万相 Wan 2 系列视频生成模型(核心为 Wan 2.2)深度定制、依托 ComfyUI 可视化节点编辑器打造的开源 AI 视频生成一体化解…...

【限时开源】C++26合约成本审计模板(含Bazel规则、Clang插件、Gnuplot性能热力图脚本):仅开放72小时,专供高实时性系统团队

第一章:C26合约编程实战教程C26 将正式引入标准化的合约(Contracts)机制,作为语言级的运行时契约验证设施,用于表达函数前置条件、后置条件与断言不变量。与 C20 的实验性合约提案不同,C26 合约设计更强调可…...

Qt 6.5实战:用QMediaPlayer和QVideoWidget快速打造一个带界面的本地视频播放器

Qt 6.5实战:10分钟构建带UI的本地视频播放器 在当今多媒体应用泛滥的时代,快速开发一个功能完备的视频播放器仍然是许多C开发者的常见需求。Qt 6.5作为跨平台GUI框架的最新版本,其多媒体模块提供了令人惊艳的开发效率。本文将带你跳过冗长的理…...

智慧教育中的个性化学习与教学评估

智慧教育中的个性化学习与教学评估 随着信息技术的飞速发展,智慧教育已成为现代教育的重要趋势。个性化学习与教学评估作为智慧教育的核心,正逐步改变传统的教学模式,帮助教师更好地因材施教,同时让学生获得更高效的学习体验。本…...

别再纠结选SVM还是决策树了:用Python+MySQL实战工业设备故障预测(附完整代码)

工业设备故障预测实战:PythonMySQL下的SVM与决策树选型指南 在工业4.0时代,设备故障预测已成为智能制造的核心环节。面对生产线上每秒产生的海量传感器数据,如何选择适合的算法构建预测模型,是每位工程师都会遇到的现实难题。我曾…...

STM32驱动BQ40Z50电量计:手把手教你读取电压电流和剩余电量(附完整代码)

STM32与BQ40Z50实战:高精度电池监测系统开发指南 在便携式电子设备、无人机和电动工具等领域,精确的电池状态监测直接关系到用户体验和设备可靠性。BQ40Z50作为TI推出的智能电池管理芯片,配合STM32微控制器,能够构建一套工业级精度…...