热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Gbase8aMPPCluster维护过程中可能遇到的故障管理(七)

其他异常 1服务器发生CPU大量sys占用问题的原因

其他异常 

1 服务器发生 CPU 大量 sys 占用问题的原因

问题现象

数据库在运行过程中,因为某些原因出现大量的 CPU sys 占用,进而导致数据库

性能问题。这类问题应该如何去排查?有哪些已知的原因可能导致这类问题的发

生?

解决方法

通常 cpu 出现大量的 sys 占用是由于资源争抢导致的,如锁资源的争抢、内存的

争抢。可用于监控、分析的工具有 perf、nmon 等。

GBase8a 集群出现 sys 占用高的几个已知问题原因有:

 操作系统的 NUMA 参数未关闭,在内存紧张情况下可能导致频繁的内存换入

换出导致 sys 高。

 gnode 层的参数设置不合理

_gbase_dc_window_size 设置过小,该参数是可缓存到内存的 DC 数,当需要

缓存的实际数据量超过设置的 DC 数时,就可能导致 sys 占用。

 _gbase_insert_malloc_size_limit 设置过小

在 insert select 场景中,如果存在较大的 varchar 列,如 varchar(2000),会导

致每行或每几行申请次内存,内存频繁申请出现 sys 占用。 


2 更新 500 亿大表全文索引导致 gbased oom

问题现象

GBase 8a 集群更新 500 亿大表全文索引时报错,全文索引更新语句:UPDATE I

NDEX"IX_RG010005"ON"horus"."rwa_source_0001",企业管理器报错:gclust

er table error:Server shutdown in progress。

原因分析

初步判断为更新记录太大导致内存爆满,gbased 进程被系统重启了。全文默认参

数是支持增量更新的,会在索引过程中持有字典,大批量次更新会导致内存吃

紧,可以设置 gbfticfg.xml 配置文件中的参数 reduceMemoryMode 为 1 解决。

解决方法

不调整全文检索常驻内存参数(常驻内存),测试更新 500 亿大表全文索引,复

现了类似操作系统重启的情况。集群第 1 个节点系统 crash 日志显示 gbased 引起

oom panic,进而导致系统 reboot。

同时验证将常驻内存参数 reduceMemoryMode 设为 1(不常驻内存),更新 500

亿大表全文索引(4 个字段),都操作成功,未出现系统异常。


3 审计日志中 JDBC 程序执行的 sql 语句 conn_type字段显示为空,没有显示出 JDBC

问题现象

审计日志中 JDBC 程序执行过的 sql,在 audit_log 的 conn_type 字段显示为空,没

有显示出 JDBC。

原因分析

之前有个兼容的需求,增加了个参数,默认关闭,不向 server 提供连接类型。

可以在 jdbc 的连接串中设置打开该参数 useConnectionFlag=true

解决方法

在 jdbc 的连接串中设置打开该参数 useConnectionFlag=true 后测试,审计日志中

能够体现出 java 程序连接的类型是 JDBC。


4 开启资源管理计划之后删除用户受限

问题现象

开启资源计划的情况下删除用户,报错 ERROR 1268 (HY000): Cannot drop one

or more of the requested users。

停止资源计划后,没有将用户从消费组中删除时,删除用户报错 ERROR 1758 (H

Y000): gcluster dal error: Operation DROP USER failed for'u01'@'%'.

解决方法

测试发现,开启资源计划的情况下,对于明确添加到 consumer group 的用户,需

要停止资源计划,并将用户从消费组中删除,用户才可以被删除;

其他默认属于 default_consumer_group 组的用户,需要停止资源计划,用户才可以

被删除。 

这是资源管理的使用限制:

 用户放到用户组后,用户不允许删除;

 在启用资源计划后,用户不能脱离用户组的关联关系;

这些限制是由于已经分配给该用户的系统资源,例如 cgroup 分组、内存等的动态

回收,以及实现上存在单指令,多点操作的致性问题。


5 使用 gccli 客户端创建存储过程未保留注释

问题现象

使用 gccli 客户端创建存储过程包含注释,但是执行 show create procedure 注释没

有显示。



解决方法

gccli-c 保留存储过程中的注释。

 



6 全文索引更新处理时报错

问题现象

全文索引更新,处理时报错

查看 express.loggcluster 层有如下的异常信息:

 

解决方法

 全文默认参数是支持增量更新的,会在索引过程中持有字典,大批量次更新会导致内存吃紧,可以

设置 gbfticfg.xml 配置文件中的参数 reduceMemoryMode 为 1 解决。

 全文配置如下:

 


7 节点异常后执行 delete 与 shrink space 操作,数据文件有残留

问题现象

个节点异常后,执行 delete 与释放空间操作,查看数据文件有残留(存在两

份数据)。

原因分析

集群环境下,如果某gnode 节点不在线,之后依次执行了 dml(如 delete 操作)、

shrink space 操作,当该节点上线后触发集群同步操作会导致该节点的 seg 文件可

能出现 A、B 版本都存在的情况,属正常现象;因为集群先处理 ddl(shrink space,

由于没有 delete 数据此时不做任何处理),再处理 dml 触发同步。


推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 网卡工作原理及网络知识分享
    本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ... [详细]
author-avatar
感伤花沙
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有