云服务器内容精选

  • 功能列表 智能DBA支持以下功能,详情请参见表1。 表1 功能说明 功能 描述 相关文档 实例概览 提供数据库整体运行情况,包括告警统计、资源使用情况和重点性能指标,多方面实时展示实例的运行状态。基于运行数据结合智能算法对实例进行健康智能诊断,并对异常项提供解决方法与使用建议。 查看实例运行情况 实时会话 提供当前数据库会话快照查询,并支持排序过滤展示。可基于用户、访问主机、库等多维度快速过滤识别到自定义慢SQL会话、活跃会话等。KILL会话与SQL限流功能应对紧急实例恢复,保障数据库的可用性。 管理实时会话 实时性能 展示数据库实例各项关键指标,并提供日期对比功能,方便查看周期业务以及指标变化情况,及时发现异常。秒级监控有助于精准定位问题。 查看实例性能指标 容量预估 数据库实例在使用过程中,当前磁盘空间数据与日志的占比以及历史上涨情况往往是用户关心的重点。智能DBA助手提供了容量预估功能,可以方便地查看磁盘空间概况与分布,并通过历史数据结合智能算法提供了空间预估等功能,尽早发现空间不足的情况并及时避免。此外还提供了智能扩容、表智能诊断、TOP50库表协助运维功能。 管理磁盘容量 锁&事务 该模块从元数据锁以及InnoDB锁两个维度分析当前业务锁状态。通过元数据锁视图与InnoDB锁拓扑图管理阻塞事务,协助用户优化自身业务,减少锁冲突。 管理锁&事务 历史事务 该模块用来分析和发现数据库的大事务、长时间未提交的事务等历史信息。 管理历史事务 慢SQL 提供指定时间段内的慢SQL分析功能。从用户、IP、SQL模板等进行多维统计,展示统计结果并支持指定排序,识别慢SQL的精准来源,方便用户快速优化业务。 查看实例慢SQL 全量SQL 在实例开启全量SQL的前提下,该模块基于全量SQL数据进行分析,并提供多维度的分析、搜索、过滤的能力,帮助用户全面洞察SQL,TOP SQL快速定位异常原因,保障数据库稳定运行。 查看实例TOP SQL 新增SQL洞察任务 SQL限流 针对新上业务不能及时发包优化的SQL和突发流量导致CPU等资源100%瓶颈的场景,SQL限流功能通过控制既定SQL规则的并发度协助业务侧及时流控,保证核心业务的稳定运行。 新建SQL限流规则 自治限流 该功能自动检测数据库的CPU利用率、活跃会话数等异常,根据业务优先级进行限流处理,保证核心业务的稳定运行。 用户可以根据业务情况,按照数据库或者用户进行限流。将非核心数据库或非核心用户业务配置为限流对象,可以保障核心业务不受影响。 配置自治限流 诊断日报 对前一日实例状态的汇总展示,包括以上部分模块的重点指标:慢SQL分析、全量SQL分析、性能与磁盘分析。支持用户下载和订阅分析报告。建议每天定时对实例进行诊断,以保证实例上业务的正常运转。 管理诊断日报 异常快照 智能判断实例异常,记录会话快照、锁/事务等快照信息,方便后续问题定位。 管理异常快照
  • 使用场景 紧急恢复实例场景中,通过设置慢会话阈值帮助用户快速识别异常会话并手动结束该会话,使得数据库恢复正常,提高数据库的可用性。 新业务中出现并发数过高的SQL语句导致实例不稳定场景中,通过设置SQL限流规则功能控制并发数过高的SQL语句,保证实例的稳定性。 出现“磁盘空间满”问题时,通过查看磁盘空间功能实时了解磁盘空间概况与分布。您可以设置存储空间自动扩容,在实例存储空间达到阈值时,会触发自动扩容,详见存储空间自动扩容。 在突发流量过高、异常读写等业务场景中,通过配置自治限流功能控制活跃连接数来保障核心业务访问的可用性。
  • 约束限制 全量SQL默认关闭,如需使用SQL洞察功能,请先开启全量SQL收集开关。 关闭全量SQL后,将不再采集新产生的SQL,已经收集的SQL也会被删除,请您谨慎操作。 当前全量SQL受内存缓冲区限制,业务量大的场景下,全量SQL有较小概率因缓冲区满,存在丢弃部分记录。 当前全量SQL单条记录超过4096字节时,会默认丢弃该条记录。 此限制在MySQL 5.7.33.3及以后小版本可以通过设置参数rds_sql_tracer_reserve_big_records来选择是否丢弃,5.6和8.0版本不支持设置该参数。您可以在修改RDS for MySQ L实例 参数界面,将该参数设为ON,即表示单条记录超过4096字节也不被丢弃。
  • 约束限制 全量SQL默认关闭,如需使用SQL洞察功能,请先开启全量SQL收集开关。 关闭全量SQL后,将不再采集新产生的SQL,已经收集的SQL也会被删除,请您谨慎操作。 当前全量SQL受内存缓冲区限制,业务量大的场景下,全量SQL有较小概率因缓冲区满,存在丢弃部分记录。 当前全量SQL单条记录超过设置的上限时,会默认丢弃该条记录。 此限制可以通过设置参数“rds_sql_tracer_max_record_size ”来选择是否丢弃。您可以通过修改TaurusDB实例参数设置参数值,超过该值的记录会被丢弃。
  • 操作步骤 查看阻塞的查询语句及阻塞查询的表、模式信息。 1 2 3 4 5 6 7 8 9 10 11 SELECT w.query as waiting_query, w.pid as w_pid, w.usename as w_user, l.query as locking_query, l.pid as l_pid, l.usename as l_user, t.schemaname || '.' || t.relname as tablename from pg_stat_activity w join pg_locks l1 on w.pid = l1.pid and not l1.granted join pg_locks l2 on l1.relation = l2.relation and l2.granted join pg_stat_activity l on l2.pid = l.pid join pg_stat_user_tables t on l1.relation = t.relid where w.waiting; 该查询返回线程ID、用户信息、查询状态,以及导致阻塞的表、模式信息。 使用如下命令结束相应的会话。其中,139834762094352为线程ID。 1 SELECT PG_TERMINATE_BACKEND(139834762094352); 显示类似如下信息,表示结束会话成功。 PG_TERMINATE_BACKEND ---------------------- t (1 row) 显示类似如下信息,表示用户正在尝试结束当前会话,此时仅会重连会话,而不是结束会话。 FATAL: terminating connection due to administrator command FATAL: terminating connection due to administrator command The connection to the server was lost. Attempting reset: Succeeded. gsql客户端使用PG_TERMINATE_BACKEND函数终止本会话后台线程时,客户端不会退出而是自动重连。
  • 操作步骤 查看阻塞的查询语句及阻塞查询的表、模式信息。 1 2 3 4 5 6 7 8 9 10 11 SELECT w.query as waiting_query, w.pid as w_pid, w.usename as w_user, l.query as locking_query, l.pid as l_pid, l.usename as l_user, t.schemaname || '.' || t.relname as tablename from pg_stat_activity w join pg_locks l1 on w.pid = l1.pid and not l1.granted join pg_locks l2 on l1.relation = l2.relation and l2.granted join pg_stat_activity l on l2.pid = l.pid join pg_stat_user_tables t on l1.relation = t.relid where w.waiting; 该查询返回线程ID、用户信息、查询状态,以及导致阻塞的表、模式信息。 使用如下命令结束相应的会话。其中,139834762094352为线程ID。 1 SELECT PG_TERMINATE_BACKEND(139834762094352); 显示类似如下信息,表示结束会话成功。 PG_TERMINATE_BACKEND ---------------------- t (1 row) 显示类似如下信息,表示用户正在尝试结束当前会话,此时仅会重连会话,而不是结束会话。 FATAL: terminating connection due to administrator command FATAL: terminating connection due to administrator command The connection to the server was lost. Attempting reset: Succeeded. gsql客户端使用PG_TERMINATE_BACKEND函数终止本会话后台线程时,客户端不会退出而是自动重连。
  • 操作步骤 查看阻塞的查询语句及阻塞查询的表、模式信息。 1 2 3 4 5 6 7 8 9 10 11 SELECT w.query as waiting_query, w.pid as w_pid, w.usename as w_user, l.query as locking_query, l.pid as l_pid, l.usename as l_user, t.schemaname || '.' || t.relname as tablename from pg_stat_activity w join pg_locks l1 on w.pid = l1.pid and not l1.granted join pg_locks l2 on l1.relation = l2.relation and l2.granted join pg_stat_activity l on l2.pid = l.pid join pg_stat_user_tables t on l1.relation = t.relid where w.waiting; 该查询返回线程ID、用户信息、查询状态,以及导致阻塞的表、模式信息。 使用如下命令结束相应的会话。其中,139834762094352为线程ID。 1 SELECT PG_TERMINATE_BACKEND(139834762094352); 显示类似如下信息,表示结束会话成功。 PG_TERMINATE_BACKEND ---------------------- t (1 row) 显示类似如下信息,表示用户正在尝试结束当前会话,此时仅会重连会话,而不是结束会话。 FATAL: terminating connection due to administrator command FATAL: terminating connection due to administrator command The connection to the server was lost. Attempting reset: Succeeded. gsql客户端使用PG_TERMINATE_BACKEND函数终止本会话后台线程时,客户端不会退出而是自动重连。
  • 数据类型 SQL查询中支持的数据类型如表1。如果当前字段数据类型需要改为其他数据类型,我们会进行数据类型的转换。例如STRING类型的字段转为LONG类型。字段数据类型转换之后的结果将会显示默认值,如STRING类型的数据转换为LONG类型的数据,结果会显示为LONG类型的默认值0。同理,当空值被转换为非空类型值时,也会使用默认值进行替换。例如,当把STRING类型空值转换为数字类型时,将会返回默认值0。 SQL语法中,字符必须被单引号('')包裹,无符号或双引号("")包裹的为字段或表名称,如:'msg'表示字符串msg,msg或"msg"表示日志结构化msg字段。 表1 SQL查询支持的数据类型 原生数据类型 默认值 说明 STRING "" 原生STRING类型 FLOAT 0.0 原生FLOAT类型 LONG 0 原生LONG类型
  • 功能列表 智能DBA支持以下功能,详情请参见表1。 表1 功能说明 功能 描述 相关文档 实例概览 提供数据库整体运行情况,包括告警统计、资源使用情况和重点性能指标,多方面实时展示实例的运行状态。基于运行数据结合智能算法对实例进行健康智能诊断,并对异常项提供解决方法与使用建议。 查看实例运行情况 实时会话 提供当前数据库会话快照查询,并支持排序过滤展示。可基于用户、访问主机、库等多维度快速过滤识别到自定义慢SQL会话、活跃会话等。KILL会话与SQL限流功能应对紧急实例恢复,保障数据库的可用性。 管理实时会话 实时性能 展示数据库实例各项关键指标,并提供日期对比功能,方便查看周期业务以及指标变化情况,及时发现异常。秒级监控有助于精准定位问题。 查看实例性能指标 容量预估 数据库实例在使用过程中,当前磁盘空间数据与日志的占比以及历史上涨情况往往是用户关心的重点。智能DBA助手提供了容量预估功能,可以方便地查看磁盘空间概况与分布,并通过历史数据结合智能算法提供了空间预估等功能,尽早发现空间不足的情况并及时避免。此外还提供了智能扩容、表智能诊断、TOP50库表协助运维功能。 管理磁盘容量 锁&事务 该模块从元数据锁以及InnoDB锁两个维度分析当前业务锁状态。通过元数据锁视图与InnoDB锁拓扑图管理阻塞事务,协助用户优化自身业务,减少锁冲突。 管理锁&事务 历史事务 该模块用来分析和发现数据库的大事务、长时间未提交的事务等历史信息。 管理历史事务 慢SQL 提供指定时间段内的慢SQL分析功能。从用户、IP、SQL模板等进行多维统计,展示统计结果并支持指定排序,识别慢SQL的精准来源,方便用户快速优化业务。 查看实例慢SQL 全量SQL 在实例开启全量SQL的前提下,该模块基于全量SQL数据进行分析,并提供多维度的分析、搜索、过滤的能力,帮助用户全面洞察SQL,TOP SQL快速定位异常原因,保障数据库稳定运行。 查看实例TOP SQL 新增SQL洞察任务 SQL限流 针对新上业务不能及时发包优化的SQL和突发流量导致CPU等资源100%瓶颈的场景,SQL限流功能通过控制既定SQL规则的并发度协助业务侧及时流控,保证核心业务的稳定运行。 新建SQL限流规则 自治限流 该功能自动检测数据库的CPU利用率、活跃会话数等异常,根据业务优先级进行限流处理,保证核心业务的稳定运行。 用户可以根据业务情况,按照数据库或者用户进行限流。将非核心数据库或非核心用户业务配置为限流对象,可以保障核心业务不受影响。 配置自治限流 诊断日报 对前一日实例状态的汇总展示,包括以上部分模块的重点指标:慢SQL分析、全量SQL分析、性能与磁盘分析。支持用户下载和订阅分析报告。建议每天定时对实例进行诊断,以保证实例上业务的正常运转。 管理诊断日报 异常快照 智能判断实例异常,记录会话快照、锁/事务等快照信息,方便后续问题定位。 管理异常快照
  • SPLIT函数语句 语句 说明 示例 参数 split split函数用于通过指定的分隔符拆分字符串,并返回拆分后的子串集合。 split(x, delimeter,[limit]) x:参数值为varchar类型。 delimeter:分隔符。 limit:限制字符串拆分的个数,大于0的整数。 split_part split_part函数通过指定的分隔符拆分字符串,并返回指定索引的内容。 split_part(x, delimeter, part) x:参数值为varchar类型。 delimeter:分隔符。 part:指定要返回字段的索引值。 split_to_map split_to_map函数用于使用指定的第一个分隔符拆分字符串,然后再使用指定的第二个分隔符进行第二次拆分。 split_to_map(x, delimiter01, delimiter02) x:参数值为varchar类型。 delimeter01:分隔符1。 delimeter02:分隔符2。
  • 示例及说明 split函数 将目标字符串按指定字符串分割,limit用于限制分割后的最大单词数,若不填写,则默认全部分割。 字段样例 Id:dc1dab7e-b045-4e77-bda4-914d083d1bf7 查询和分析语句 SELECT split(Id,'-'), split(Id,'-',2) 查询和分析结果 表1 split函数查询和分析结果 EXPR$0 EXPR$1 ["dc1dab7e","b045","4e77","bda4","914d083d1bf7"] ["dc1dab7e","b045-4e77-bda4-914d083d1bf7"] split_part函数 通过指定的分隔符拆分字符串,并返回指定索引的内容字段样例,索引下标从0开始。若索引下标超过分割数量或者为负数,则返回空字符串。 字段样例 Id: dc1dab7e-b045-4e77-bda4-914d083d1bf7 查询和分析语句 SELECT split_part(Id,'-',1) 查询和分析结果 表2 split_part函数查询和分析结果 EXPR$0 b045 split_to_map函数 用于使用指定的第一个分隔符拆分字符串,然后再使用指定的第二个分隔符进行第二次拆分,展示形式为{“KEY1”:”VALUE1”,”KEY2”:”VALUE2”}。无法被二次分割的value值为空。 字段样例 Request:request_id:"e3ac4b70c7d244f080d434e300d8065a”;request_time: "1674965051000” 查询和分析语句 SELECT split_to_map(Request,';',':') 查询和分析结果 表3 split_to_map函数查询和分析结果 EXPR$0 {"request_id ":"e3ac4b70c7d244f080d434e300d8065a ","request_time":"1674965051000"}
  • 示例 有两个表,access表示主机的接入指标包含路径,时延,状态码,host为主机指标包含cpu和内存。通过JOIN可以关联接入和主机指标,查看相同主机的不同维度的指标情况。 LEFT JOIN 查询语句 SELECT "access".__time, "access".host_ip, "access".cost, "host".cpu, "host".memory FROM log "access" LEFT JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip 返回结果,总共60条数据。 RIGHT JOIN 查询语句 SELECT "access".__time, "host".host_ip, "access".cost, "host".cpu, "host".memory FROM log "access" RIGHT JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip 返回结果,总共60条数据。 INNER JOIN 查询语句 SELECT "access".__time, "host".host_ip, "access".cost, "host".cpu, "host".memory FROM log "access" INNER JOIN (select memory,cpu,host_ip from log) host ON "access".host_ip = "host".host_ip 返回结果,总共45条数据。
  • 语法 select key from t1 LEFT|RIGHT|INNER JOIN t2 on t1.key=t2.key 当前日志服务支持LEFT JOIN、RIGHT JOIN和INNER JOIN三种JOIN子句方式。具体功能如下: 表1 JOIN方式 说明 LEFT JOIN 以左表(t1)的结果为基础,关联右表(t2)数据。 说明: 当表名为纯数字时,需要给表名加上双引号转换成字符串。例如:表名是123,JOIN语句中该表应写成“123”。 RIGHT JOIN 以右表(t2)的结果为基础,关联左表(t1)数据。 说明: 当表名为纯数字时,需要给表名加上双引号转换成字符串。例如:表名是123,JOIN语句中该表应写成“123”。 INNER JOIN 两个表的结果(elb1,elb2)交集数据