openGauss监控场景处理

openGauss 监控场景处理

死锁数量异常

判断方法:

select sum(deadlocks) as deadlocks from dbe_perf.GLOBAL_STAT_DATABASE

异常分析:

  1. 请求与保持条件:获取资源的进程可以同时申请新的资源。
  2. 非剥夺条件:已经分配的资源不能从该进程剥夺。
  3. 循环等待条件:多个进程构成环路,并且每个进程都在等待相邻进程正占用的资源。
  4. 互斥条件:资源只能被一个进程使用。

解决方案

  1. 检索出死锁进程的 ID(select oid,relname from pg_class where relname=‘all_date’;),检索出来的字段中,waiting 字段数据为 t 的那条就是死锁进程,找到对应的 procpid 列的值。
  2. 将进程杀掉,select pg_cancel_backend(‘死锁那条数据的 procpid 值’),运行之后再次更新这个表,sql 顺利执行。
  3. 如果 pg_stat_activity 没有记录,则查询 pg_locks 是否有这个对象的锁,select pid_locks where relation=‘上面查询出来的 oid’;然后杀掉进程。

运维建议

  1. 在所有事务中都以相同的次序使用资源。
  2. 使事务尽可能简单并在一个批处理中。
  3. 为死锁超时参数设置一个合理范围。
  4. 避免在事务内和用户进行交互,减少资源锁定时间。
  5. 使用较低的隔离级别。

主备复制状态异常

判断方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值