摘要:卷扩容一般指实例级的磁盘扩容。
本文分享自华为云社区《【公有云公共】卷扩容业务失败》,作者:酷哥。
卷扩容一般指实例级的磁盘扩容。随着客户业务的不断开展,磁盘使用率也会随之增加。当磁盘使用率过高时,会影响数据库的使用,这时建议用户清理无用数据、运维清理无用日志或用户来操作卷扩容任务。
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和写事务,即手动设置数据库为只读模式。
处理思路:改善磁盘使用率
方法一:临时调大datastorage_threshold_value_check(数据库只读阈值),保证卷扩容任务完成后,回调该阈值。
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目录使用系统磁盘,可能有一些运维操作也会在此目录下落盘,需要及时清理。
(检查任务流信息,视报错内容及步骤联系管控或AGENT确认)
(1)任务流中在内核扩容步骤报错。
登录实例堡垒机CN节点后台,使用df –h命令查看当前磁盘使用情况,若看到磁盘容量已经更新,则说明内核的磁盘扩容任务已成功。需要联系管控人员,确认任务流的报错信息,定位报错在哪一步,并根据管控人员的指引操作。(若磁盘未扩容成功,说明确实为内核问题,联系内核工程师处理)
(2)任务流中还未到达内核扩容步骤,前置子任务流或步骤报错。 需要联系管控人员,确认任务流的报错信息,定位报错在哪一步,并根据管控人员的指引操作。
(3)任务流中内核扩容步骤已成功完成,后置子任务流或步骤报错。 需要联系管控人员,确认任务流的报错信息,定位报错在哪一步,并根据管控人员的指引操作。
1、问题定位:确认任务流中子任务流下发报错,联系管控根据其指引定位问题,确认为管控节点存在异常。(管控自身的3个节点中2个节点存在问题,只要调用到异常节点就会报错)
2、处理办法:多次重试任务流以规避管控的故障节点,后重入任务流直至成功结束。