糟糕,数据库异常不可用怎么办呢_执行数据库查询时出现异常

糟糕,数据库异常不可用怎么办呢_执行数据库查询时出现异常摘要:糟糕,数据库异常不可用怎么办?挺着急的,在线等。 本文分享自华为云社区《糟糕,数据库异常不可用怎么办?》,作者:GaussDB 数据库。 随着数字化转型的加速,数据量爆发式增长,用户对数据库运维

糟糕,数据库异常不可用怎么办?

摘要:糟糕,数据库异常不可用怎么办?挺着急的,在线等。

本文分享自华为云社区《糟糕,数据库异常不可用怎么办?》,作者:GaussDB 数据库。

随着数字化转型的加速,数据量爆发式增长,用户对数据库运维能力要求更高,实现对数据库的高效智能管理,尤其是业务异常时,数据库运维平台能自动定位故障并修复,或者提供有价值信息,帮助客户快速定位解决问题。

华为云数据库团队打造的RDS for MySQL智能DBA助手,为数据库管理人员提供了一站式数据库运维方案,能够帮助用户快速处理异常,保持业务稳定运行。近期,我们新上线了自治限流功能,通过限流非核心业务SQL来保障核心业务稳定运行,下面将为您带来该项业界领先的功能的详细解读。

在遭遇异常流量高峰时,如何处理?

在实际运维场景中,客户因为业务变更或者业务高峰期会带来流量高峰,导致系统指标异常,实例CPU飙升近100%,会话SQL处理变慢,活跃连接数增加,数据库响应异常甚至不可用。可能的原因有以下两个方面:

  1. SQL问题:SQL执行效率慢,如对无主键、无索引的表进行查询操作时,CPU和 IO被打满。
  2. 流量问题:突发的流量急剧上升,数据库容量达到瓶颈,影响正常业务。

解决方案:

针对上述问题,一般会采用两种方式来处理:

方式一:先分析异常SQL,定位后手动Kill会话

方式二:简单粗暴,重启数据库。

但面对复杂问题,传统解决方案往往无法从根本上解决,定位解决问题花费时间长,导致业务受损。针对这一挑战,业界采用限流的方式来处理,不区分业务,即不会区分限流SQL所在的库或者客户端用户,这可能导致无差别的kill会话,核心业务受损。

我们今天介绍的自治限流功能是如何应对这一潜在风险呢?

自治限流,指的是通过预先设置限流策略,自动限定执行SQL的并发度,通过小部分业务受损,保障核心业务的正常运行。具体来说,可以通过以下三个策略来进行流控:

分库、分用户设置限流范围

自治限流功能支持分库、分用户两种方式设置,客户根据业务情况,识别核心业务库和客户端用户,按需选择相应的限流方式。

  • 按库设置:根据业务重要程度,选择对特定的一个或者多个库进行限流,默认不区分库名。
  • 按用户名设置:根据不同用户业务差异,选择对特定的一个或者多个用户进行限流,默认不区分用户。

设置限流时间:

通过设置限流时间窗(即自治限流功能只在该时间段生效)和每次最大限流时长(即自治限流生效后持续时长),方便定位SQL异常,请注意:同一天只在该时间窗内生效一次。

设置限流策略

条件1:根据业务情况,设置CPU利用率大于多少 【且/或】 活跃会话数大于多少,且上述条件持续时间大于多少分钟,会触发限流。

条件2:设置允许的最大活跃并发数,当前活跃会话数大于最大活跃会话数时,会将会话数清理到小于最大活跃会话数。

设置界面如下:

糟糕,数据库异常不可用怎么办呢_执行数据库查询时出现异常

完成上述设置后,自治限流功能可以自动检测客户实例异常,触发限流策略后,根据配置的限流范围和时间,自动进行分库分用户限流处理,在保证核心业务SQL稳定运行的前提下,限制引发CPU飙升的新上业务SQL,带来活跃会话数逐渐降低,CPU下降到正常值,QPS恢复到业务正常水平,数据库实例恢复正常。

流量高峰常常是不可预测的,这给运维带来非常大的挑战和工作负担。华为云数据库自治限流功能,通过分库与分用户限流方式,自动检测数据库异常,并及时进行限流处理,保障核心业务的稳定运行,极大减轻了DBA的运维压力,使其更聚焦数据架构设计以及数据价值挖掘等核心工作。目前该功能已上线,欢迎大家体验。https://www.huaweicloud.com/product/mysql.html

 

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

原文地址:https://www.cnblogs.com/huaweiyun/archive/2022/12/06/16954584.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/4457.html

(0)
上一篇 2023-06-18
下一篇 2023-06-18

相关推荐

  • redis-cli 远程_redis命令行查看数据

    redis-cli 远程_redis命令行查看数据1. redis-cli命令行远程连接redis服务 redis-cli -h host -p port -a password host:远程redis服务器host port:远程redis服务端

    2023-03-14
    149
  • 使用TextVariable来改变Tkinter小部件的值

    使用TextVariable来改变Tkinter小部件的值Tkinter是使用Python编写的标准GUI库,具有易学、易用、丰富多彩的特点。TextVariable是Tkinter的一个很有用的变量类型,可以用来动态改变Tkinter小部件的值,例如Label、Button等。该变量类型使得GUI应用程序可以非常灵活地响应用户的交互事件,从而实现更加智能、高效的功能。

    2023-12-09
    114
  • 用Python计算cos(0)的值

    用Python计算cos(0)的值Python提供了math数学函数库,里面包含了各种数学函数,如cos、sin、tan、log等。通过import math的方式引入,即可使用该库中的函数。下面是计算cos(0)的示例代码:

    2024-04-04
    63
  • Python列表查找

    Python列表查找Python是一种广泛使用的高级编程语言,它广泛应用于Web开发、数据分析、机器学习等领域。Python内置了很多有用的数据类型,其中列表(List)是使用最广泛的一种。Python列表具有动态性和灵活性,可以存储不同类型的数据,并且可以进行复杂的操作。列表查找是Python编程中非常重要的一部分,本文将详细介绍Python中列表查找的各种方法。

    2024-06-17
    41
  • Doris 功能介绍-查询分析[亲测有效]

    Doris 功能介绍-查询分析[亲测有效]## 查询分析 在 0.14 版本中,Doris 提供了一个图形化的命令以帮助用户更方便的分析一个具体的查询或导入。本文介绍如何使用该功能来分析一个查询 > 该功能需升级至0.14.7版本。 ###…

    2023-04-10
    149
  • 数据库学习之十:mysql日志管理

    数据库学习之十:mysql日志管理十、mysql日志管理 课程大纲 1、日志的类型简介 mysql show variables like '%log_error%';在配置文件中指定错误日志位置。 mysql sho

    2023-02-26
    147
  • Postgresql Postgis插件综合使用教程「建议收藏」

    Postgresql Postgis插件综合使用教程「建议收藏」Postgresql教程: https://www.runoob.com/postgresql/postgresql-tutorial.html 数据库支持Postgis扩展: Postgresql…

    2023-01-27
    152
  • 理解Spark SQL(二)—— SQLContext和HiveContext

    理解Spark SQL(二)—— SQLContext和HiveContext使用Spark SQL,除了使用之前介绍的方法,实际上还可以使用SQLContext或者HiveContext通过编程的方式实现。前者支持SQL语法解析器(SQL-92语法),后者支持SQL语法解析器

    2022-12-21
    138

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注