卷扩容业务失败了,在线等…

时间:2023-01-13 18:00:42

摘要:卷扩容一般指实例级的磁盘扩容。

本文分享自华为云社区《​​【公有云公共】卷扩容业务失败​​》,作者:酷哥。

一、基本背景介绍

卷扩容一般指实例级的磁盘扩容。随着客户业务的不断开展,磁盘使用率也会随之增加。当磁盘使用率过高时,会影响数据库的使用,这时建议用户清理无用数据、运维清理无用日志或用户来操作卷扩容任务。

tips:

1、磁盘使用率过高时,会影响甚至完全阻塞客户的业务开展,所以GaussDB为各实例配置了巡检告警的指标参数,超过该指标的阈值时,即会上报告警。(该指标阈值必须设定的比datastorage_threshold_value_check(数据库只读阈值)低一些,这样才能达到提醒的效果。)

2、当超过datastorage_threshold_value_check(数据库只读阈值,百分数,默认值85),且enable_transaction_read_only(超过阈值后改为只读模式,默认为on)参数为on时,实例会改为只读模式,禁止用户的写入操作。

3、default_transaction_read_only(数据库只读模式参数,默认值off),设置为on后无法执行dml和写事务,即手动设置数据库为只读模式。

二、卷扩容任务失败处理办法

1、实例的磁盘使用率已经超过阈值,处于只读状态,导致卷扩容任务流失败。

处理思路:改善磁盘使用率

方法一:临时调大datastorage_threshold_value_check(数据库只读阈值),保证卷扩容任务完成后,回调该阈值。

  1. 告警或问题单提权后登陆问题实例的CMS主节点。
  2. cat /var/chroot/usr/local/cm/cm_server/cm_server.conf|grep "datastorage_threshold_value_check"(查询并记录当前只读阈值参数X1)
  3. gs_guc reload -Z cmserver -N all -I all -c "datastorage_threshold_value_check=X2"(调整只读阈值参数至X2,X2取值(1-99))

4)重试任务流至成功结束。

5)gs_guc reload -Z cmserver -N all -I all -c "datastorage_threshold_value_check=X1"(任务流重试成功结束后回调只读阈值参数至X1)

方法二:删除无效或失效的日志文件(联系内核工程师确认)

使用df –h命令查看当前磁盘使用率较高的磁盘,确认当前使用率,可能存在风险的目录包括/home/Ruby/log、/home/Ruby、/home/Mike、$PGHOST、/user/local(DN);

卷扩容业务失败了,在线等…

其中/home/Ruby/log下主要存放系统日志,管控日志以及om_agent日志,正常情况下这些日志均有自动清理和回收机制,若发现某类日志数量明显增加,则可能存在风险,需要手动清理(例如om_agent默认保留10个日志文件、管控日志默认保留20个等);

/home/Ruby和/home/Mike目录下主要会存放一些运维操作的临时文件,这些文件一般情况下在运维操作结束后就可以清理,可能存在忘记清理或者临时文件生成过大的情况,需要及时处理;

$PGHSOT目录下主要存放数据库运行相关的临时文件,若存在较大文件,需要确认文件用途后,采取清理动作;DN上的/usr/local目录使用系统磁盘,可能有一些运维操作也会在此目录下落盘,需要及时清理。

2、管控或AGENT调用等报错导致任务流报错失败

(检查任务流信息,视报错内容及步骤联系管控或AGENT确认)

(1)任务流中在内核扩容步骤报错。

登录实例堡垒机CN节点后台,使用df –h命令查看当前磁盘使用情况,若看到磁盘容量已经更新,则说明内核的磁盘扩容任务已成功。需要联系管控人员,确认任务流的报错信息,定位报错在哪一步,并根据管控人员的指引操作。(若磁盘未扩容成功,说明确实为内核问题,联系内核工程师处理)

(2)任务流中还未到达内核扩容步骤,前置子任务流或步骤报错。 需要联系管控人员,确认任务流的报错信息,定位报错在哪一步,并根据管控人员的指引操作。

(3)任务流中内核扩容步骤已成功完成,后置子任务流或步骤报错。 需要联系管控人员,确认任务流的报错信息,定位报错在哪一步,并根据管控人员的指引操作。

三、卷任务流扩容失败处理案例分享

1、问题定位:确认任务流中子任务流下发报错,联系管控根据其指引定位问题,确认为管控节点存在异常。(管控自身的3个节点中2个节点存在问题,只要调用到异常节点就会报错)

卷扩容业务失败了,在线等…

2、处理办法:多次重试任务流以规避管控的故障节点,后重入任务流直至成功结束。


点击关注,第一时间了解华为云新鲜技术~