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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/164329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

经典的回溯算法题leetcode组合问题整理及思路代码详解

目录 组合问题 leetcode77题.组合 leetcode216题.组合总和III leetcode40题.组合总和II leetcode39题.组合总和 倘若各位不太清楚回溯算法可以去看我上一篇文章。 回溯算法详解-CSDN博客 组合问题 一般组合和排列类的问题我们都会转化成一个树形问题,更便于…

26. 删除有序数组中的重复项(remove-duplicates-from-sorted-array)

26. 删除有序数组中的重复项(remove-duplicates-from-sorted-array) 给你一个 非严格递增排列 的数组 nums ,请你** 原地** 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 …

批量创建表空间数据文件(DM8:达梦数据库)

DM8:达梦数据库 - - 批量创建表空间数据文件 环境介绍1 批量创建表空间SQL2 达梦数据库学习使用列表 环境介绍 在某些场景(分区表子表)需要批量创建表空间,给不同的表使用,以下代码是批量创建表空间的SQL语句; 1 批量创建表空间SQL --创建 24个数据表空间,每个表空间有3个数…

强化学习小笔记 —— 如何选择合适的更新步长

在强化学习中,动作价值函数的更新可以使用增量法,如下所示: Q k 1 k ∑ i 1 k r i 1 k ( r k ∑ i 1 k − 1 r i ) 1 k ( r k ( k − 1 ) Q k − 1 ) 1 k ( r k k Q k − 1 − Q k − 1 ) Q k − 1 1 k [ r k − Q k − 1 ] \beg…

Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问

Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问 文章目录 Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 📷 江池…

低代码平台推荐:五大低代码厂商谁的模式更“合适”

随着数字化时代的到来,低代码开发平台作为提高数字生产力的工具正受到越来越多企业的关注,市面上的低代码产品和厂商更是“乱花渐欲迷人眼”。 各家产品不仅功能各有不同,甚至商机都有区别的情况,如何做好产品选型已然成了采购企…

C语言——指针(一)

📝前言 这篇文章主要带大家初步认识一下指针,供大家理解参考。 主要归纳与讲解: 1,指针与指针变量 2,指针的基本使用(如何定义,初始化,引用) 🎬个人简介&…

计算方法 期末总结

思维导图 绪论 算法的性质: 有穷性、确切性、有输入输出、可行性 算法的描述方法: 自然语言、伪代码、流程图、N-S流程图 算法设计思想: 化大为小的缩减技术:二分法化难为易的校正技术:开方法化粗为精的松弛技术&a…

无需公网IP,使用内网穿透实现公网访问本地OpenWRT管理界面

文章目录 1.openWRT安装cpolar2.配置远程访问地址3.固定公网地址 简单几步实现在公网环境下远程访问openWRT web 管理界面,使用cpolar内网穿透创建安全隧道映射openWRT web 界面面板443端口,无需公网IP,无需设置路由器。 1.openWRT安装cpola…

SpringBoot使用ObjectMapper之Long和BigDemical类型的属性字符串处理,防止前端丢失数值精度

SpringBoot使用ObjectMapper之Long和BigDemical类型的属性字符串处理,防止前端丢失数值精度! 方式一:注解 使用注解 JsonFormat(shape JsonFormat.Shape.STRING),如下: import com.fasterxml.jackson.annotation.JsonFormat; …

在arm 64 环境下使用halcon算法

背景: halcon,机器视觉领域神一样得存在,在windows上,应用得特别多, 但是arm环境下使用得很少。那如何在arm下使用halcon呢。按照官方说明,arm下只提供了运行时环境,并且需要使用价值一万多人民…

设计高手的秘密武器:5款让平面作品更出彩的软件

平面设计是一种迷人而多样化的艺术形式,它结合了颜色、形状、排版和创造力,通过图像和文本传达信息。市场上有各种各样的平面设计软件,选择合适的设计软件是成为优秀设计师的重要一步。为了降低软件成本,大多数设计师会优先使用免…

编译原理之LL(1)语法分析实验(附完整C/C++代码与测试)

一、实验内容与要求 先从键盘读入要分析的文法,由程序自动构造FIRST、FOLLOW 集以及SELECT集合,判断是否为LL (1)文法。 分析文法为G[E]: (0)E→ TE’ (1)E’→ TE’ (2&#xff…

软件开发王者搭配:80%低代码+20%高代码

数字化领域从来不缺新概念,前两年市场大谈云原生、技术中台、业务中台等概念,企业更多聚焦在业务与IT架构的升级。而这两年,随着低代码、生成式AI的盛行,大家则开始挖掘数字化应用的低成本建设模式。 在过去,开发一套系…

Linux 是否被过誉了?

Linux 是否被过誉了? 有些人眼里,电脑这种东西就应该是华丽丽的桌面,手握鼠标戳戳按钮,键盘只为偶尔打打字,仿佛windows式的桌面形式才是理所应当,GUI才是理所应当,x86才是理所应当&#xff0c…

使用 NVProf 检测 CUDA kernel 的 bank conflict

使用 NVProf 检测 CUDA kernel 的 bank conflict NVProf 指令 使用 NVProf 可以对 bank conflict 进行检测: nvprof --events shared_ld_bank_conflict,shared_st_bank_conflict <app> [args...]其中: --events 选项指定的 shared_ld_bank_conflict,shared_st_bank_c…

python -opencv 中值滤波 ,均值滤波,高斯滤波实战

python -opencv 中值滤波 &#xff0c;均值滤波&#xff0c;高斯滤波实战 cv2.blur-均值滤波 cv2.medianBlur-中值滤波 cv2.GaussianBlur-高斯滤波 直接看代码吧&#xff0c;代码很简单&#xff1a; import copy import math import matplotlib.pyplot as plt import matp…

c++的更严格的类型转换要求

C有更严格的类型转换要求 C中对类型转换有严格的要求&#xff0c;需要的类型和给的类型不 一致时可能会编译报错 例如&#xff1a; C语言中 #include<stdio.h> #include<stdlib.h> //全局变量 //C语言中的函数的形参的类型可以不写&#xff0c;没有返回值可以返回&…

联发科正在改写全球高端手机芯片市场格局

全球高端手机芯片市场正在重塑。 11 月 21 日&#xff0c;联发科发布了新一代卓越 5G 生成式 AI 移动芯片天玑 8300。 这款定位于中端机档位的芯片&#xff0c;无论在技术架构还是在实际性能表现上&#xff0c;都实现了对前代旗舰芯片的赶超&#xff0c;彻底打破了业内长期存…

相机和滤镜应用程序Nevercenter CameraBag Photo mac软件特点说明

Nevercenter CameraBag Photo mac是一款相机和滤镜应用程序&#xff0c;它提供了一系列先进的滤镜、调整工具和预设&#xff0c;可以帮助用户快速地优化和编辑照片。 Nevercenter CameraBag Photo mac软件特点 1. 滤镜&#xff1a;Nevercenter CameraBag Photo提供了超过200种…