openGauss的总体性能调优思路为性能瓶颈点分析、关键参数调整以及SQL调优。在调优过程中,通过系统资源、吞吐量、负载等因素来帮助定位和分析性能问题,使系统性能达到可接受的范围。openGauss性能调优过程需要综合考虑多方面因素,因此,调优人员应对系统软件架构、软硬件配置、数据库配置参数、并发控制、查询处理和数据库应用有广泛而深刻的理解。性能调优过程有时候需要重启openGauss,可能会中断当前业务。
openGauss学习笔记-212 openGauss 数据库运维-日志参考212.1 日志类型简介212.2 系统日志212.3 操作日志212.4 审计日志212.5 WAL日志212.6 性能日
openGauss学习笔记-211 openGauss 数据库运维-高危操作一览表211.1 禁止操作211.2 高危操作 openGauss学习笔记-211 openGauss 数据库运维-高危操作
openGauss学习笔记-210 openGauss 数据库运维-常见故障定位案例-谓词下推引起的查询报错210.1 谓词下推引起的查询报错210.1.1 问题现象210.1.2 原因分析210.1
openGauss学习笔记-209 openGauss 数据库运维-常见故障定位案例-共享内存泄露问题209.1 共享内存泄露问题209.1.1 问题现象209.1.2 原因分析209.1.3 处理方
openGauss学习笔记-208 openGauss 数据库运维-常见故障定位案例-TPCC高并发长稳运行因脏页刷盘效率导致性能下降208.1 TPCC高并发长稳运行因脏页刷盘效率导致性能下降208
openGauss学习笔记-206 openGauss 数据库运维-常见故障定位案例-too many clients already206.1 高并发报错“too many clients alre
openGauss学习笔记-205 openGauss 数据库运维-常见故障定位案例-业务运行时整数转换错205.1 业务运行时整数转换错205.1.1 问题现象205.1.2 原因分析205.1.3
openGauss学习笔记-204 openGauss 数据库运维-常见故障定位案例-重建索引失败204.1 重建索引失败204.1.1 问题现象204.1.2 原因分析204.1.3 处理办法 op
openGauss学习笔记-203 openGauss 数据库运维-常见故障定位案例-修改索引时只调用索引名提示索引不存在203.1 修改索引时只调用索引名提示索引不存在203.1.1 问题现象203
openGauss学习笔记-202 openGauss 数据库运维-常见故障定位案例-不同用户查询同表显示数据不同202.1 不同用户查询同表显示数据不同202.1.1 问题现象202.1.2 原因分
openGauss学习笔记-201 openGauss 数据库运维-常见故障定位案例-执行修改表分区操作时报错201.1 执行修改表分区操作时报错201.1.1 问题现象201.1.2 原因分析201
openGauss学习笔记-200 openGauss 数据库运维-常见故障定位案例-表文件大小无变化200.1 VACUUM FULL一张表后,表文件大小无变化200.1.1 问题现象200.1.2
执行SQL语句时,提示“Lock wait timeout”。数据库中存在锁等待超时现象。
openGauss学习笔记-198 openGauss 数据库运维-常见故障定位案例-分析查询效率异常降低的问题198.1 分析查询效率异常降低的问题198.1.1 问题现象198.1.2 处理办法
openGauss学习笔记-197 openGauss 数据库运维-常见故障定位案例-分析查询语句是否被阻塞197.1 分析查询语句是否被阻塞197.1.1 问题现象197.1.2 原因分析197.1
显示类似如下信息,表示用户正在尝试结束当前会话,此时仅会重连会话,而不是结束会话。有些情况下,为了使系统继续提供服务,管理员需要强制结束有问题的会话。postgres为需要连接的数据库名称,8000为端口号。显示类似如下信息,其中pid的值即为该会话的线程ID。从当前活动会话视图查找问题会话的线程ID。显示类似如下信息,表示结束会话成功。使用如下命令连接数据库。根据线程ID结束会话。
如果state字段显示为idle,则表明此连接处于空闲,等待用户输入命令。如果仅需要查看非空闲的查询语句,则使用如下命令查看。查询结果中包含了当前被阻塞的查询语句,该查询语句所请求的锁资源可能被其他会话持有,正在等待持有会话释放锁资源。通过如下命令查看当前处于阻塞状态的查询语句。查看正在运行的查询语句。系统中部分查询语句运行时间过长,需要分析查询语句的运行状态。当此参数为on时,数据库系统才会收集当前活动查询的运行信息。postgres为需要连接的数据库名称,8000为端口号。使用如下命令连接数据库。
如果当前系统较为繁忙,可以使用TIMESTAMPDIFF函数通过限制current_timestamp和query_start大于某一阈值查看执行时间超过此阈值的查询语句。例如,执行超过2分钟的查询语句可以通过如下语句查询。查询会返回按执行时间长短从大到小排列的查询语句列表。第一条结果就是当前系统中执行时间长的查询语句。查看系统中长时间运行的查询语句。分析长时间运行的查询语句状态。
确定为上述场景时执行以下操作,不是上述场景时请勿按照本方法执行。使用DROP/TRUNCATE语句删除当前不再使用的用户表,直至磁盘空间使用率小于设定的阈值。当系统资源不足时,无法创建第三方管理线程,导致其管理的子线程无法退出,出现主机降备时卡住。删除用户表只能暂时缓解磁盘空间不足的问题,建议尽早通过扩容解决磁盘空间不足的问题。一主多备模式下,系统资源不足时,发生switchover,出现主机降备时卡住。磁盘空间达到阈值后,设置数据库只读,只允许只读语句执行。
如果问题重现,则需要参考文件系统相应的文档请系统管理员对文件系统进行修复,例如xfs_repair。文件系统成功修复后,请使用gs_ctl build命令来修复文件受损的数据节点。在数据库使用过程中,有极小的概率出现XFS文件系统的报错(Input/Output error , structure needs cleaning)。XFS文件系统有预分配机制,预分配的大小由参数allocsize确定。在数据库使用过程中,通过如下du命令查询数据文件大小,查询结果大于文件实际的大小。此为XFS文件系统问题。
pg_log存放数据库各进程的运行日志,运行日志可以帮助数据库管理员定位数据库的问题。通过先备份使用频率较低或者一定时间以前的数据至更低成本的存储介质中,然后清理这些已备份的数据来获取更多的磁盘空间。显示如下信息,其中第一列表示目录或文件的大小,第二列是“/mnt/”目录下的所有子目录或者文件。如果以上方法无法清理出足够的空间,请对磁盘空间进行扩容。在数据库使用过程中,出现如下错误提示。
通过sysctl -a查看net.ipv4.ip_local_port_range,如果该实例配置的端口在系统随机占用端口号的范围内,则可以修改系统随机占用端口号的范围,确保xml文件中所有实例端口号均不在这个范围内。如果发现某一实例状态为Unknown、Pending和Down的状态,则以数据库用户登录到状态不正常的实例所在节点,查看该实例的日志检查状态异常的原因。如果日志中出现上面这种报错信息,则说明该数据节点的数据目录文件遭到破坏,该实例无法执行正常查询,需要进行替换实例操作。目录权限不够处理办法。
数据库本身机制,在性能日志(gs_profile)所在磁盘满时,导致无法写入而陷入无限等待,表现为TPCC卡住。通过gs_ctl build -D 命令对故障节点进行重建,具体的操作方法请参见《工具与命令参考》中“系统内部命令 > gs_ctl”的build参数。出现内存不足可能因GUC参数max_process_memory值设置较小相关,该参数限制一个openGauss实例可用最大内存。TPCC运行时,注入磁盘满故障,TPCC卡住,故障消除后,TPCC自动续跑。
当RemoveIPC参数设置为yes时,操作系统会在对应用户退出时删除IPC资源(共享内存和信号量),从而使得openGauss服务器使用的IPC资源被清理,引发数据库宕机。GUC参数log_directory设置的路径不可读取或无访问权限,数据库在启动过程中进行校验失败,通过panic日志退出程序。操作系统配置中RemoveIPC参数设置为yes,数据库运行过程中出现宕机,并显示如下日志消息。数据库本身机制,在磁盘满时,Xlog日志无法进行写入,通过panic日志退出程序。
查询状态时,显示一个节点上所有实例都不正常时,可能是操作系统发生了故障。 可以通过如下方法确定操作系统是否存在问题: - 通过SSH或者其它远程登录工具登录该节点。如果连接失败,请尝试通过ping发包检查网络状态。 - 如果ping操作没有回复,则表明这台机器可能存在网络连接故障、处于宕机状态或者正处于重启状态。
执行过集群管理组件升级后,再执行增加节点操作后,新增加节点的集群管理组件是未经过升级的,需要再次执行集群管理升级以对新增加节点进行集群管理组件升级。登录准备执行集群管理组件升级的节点,执行 gs_upgradectl –help命令,查看帮助信息中-t 参数值是否包含upgrade-cm选项。执行集群管理组件升级(以包名为openGauss-3.1.3-CentOS-64bit-cm.tar.gz为例,操作时请使用步骤2中上传的包名)查看集群临时目录下是否生成备份集群管理组件包。查看集群管理组件的版本。
是由于在升级时候,该服务器上还有其他版本的openGauss数据库正在安装,导致数据库工具版本不一致。请勿在升级过程中安装其他数据库,并回滚后重新进行升级操作。回滚完成,如果需要保持内核和om代码的版本一致,可以执行一下旧包的前置命令(参见。如果没有发现环境问题,或者重入升级失败,需要收集相关日志,找技术支持工程师定位。3.如果是滚动升级,需要升级完所有节点之后,才能执行提交操作。升级完成后,如果验证也没问题。如果数据库异常,需要强制回滚,可以使用如下命令。一旦提交操作完成,则不能再执行回滚操作。
本章介绍升级完成后的验证操作。给出验证的用例和详细操作步骤。以数据库用户(如omm)登录节点,source环境变量。执行如下命令查看所有节点的版本信息。本节介绍数据库状态查询的具体操作。以数据库用户(如omm)登录节点。本节介绍版本查询的具体操作。执行如下命令查看数据库状态。
openGauss学习笔记-183 openGauss 数据库运维-升级-升级操作183.1 就地升级和灰度升级操作步骤 openGauss学习笔记-183 openGauss 数据库运维-升级-升级
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号