数据库监控:关键指标和注意事项
【squids.cn】 全网zui低价RDS,免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等
听到模糊的说法“我们的数据库有问题”对于任何数据库管理员或管理员来说都是一场噩梦。有时是真的,有时不是,到底问题出在哪里呢?真的是数据库有问题吗?或者是网络、应用程序、用户或其他可能情况的问题?如果是数据库的话,有什么问题吗?
图 1:DBMS 使用情况
数据库是现代企业的重要组成部分,需要考虑多种供应商和类型。数据库可以托管在数据中心、云中,或同时托管在两者中以进行混合部署。数据库中存储的数据可以通过多种方式使用,包括网站、应用程序、分析平台等。
作为数据库管理员或管理者,您希望了解数据库的运行状况和趋势。数据库监控与数据库本身一样重要。如果您不能保证数据的可用性和准确性,您的数据有多好?
数据库监控注意事项
数据库引擎和数据库是托管在复杂 IT 基础设施上的系统,该基础设施由各种组件组成:服务器、网络、存储、电缆等。应全面考虑数据库监控,同时考虑所有基础设施组件和数据库监控本身。
图2:数据库监控三叶草
我们再来谈谈数据库监控。如图 2 所示,我将监控分为四个支柱:可用性、性能、活动和合规性。这些是广泛但相互关联且重叠的支柱。您可以添加第五片“三叶草”来进行安全监控,但我将监控的这一方面纳入到活动和合规性中,出于同样的原因,容量规划属于可用性监控。
让我们更深入地了解监控概念。虽然可用性监控似乎是一个很好的起始主题,但我将故意从性能开始,因为性能问题可能会导致数据库不可用,而且可用性监控对于任何系统都是“监控 101”。
性能监控
性能监控是捕获、分析硬件、操作系统、网络和数据库层的性能指标并发出警报的过程。它可以帮助避免计划外停机、改善用户体验并帮助管理员有效管理其环境。
本机数据库监控
大多数(如果不是全部)企业级数据库系统都附带一组工具,允许数据库专业人员检查内部和/或外部数据库状况以及操作状态。这些是特定于系统的技术工具,需要中小企业知识。在大多数情况下,它们是时间点性能数据,历史价值有限或不存在。一些供应商提供了额外的工具来简化性能数据收集和分析。
随着基于云的产品(PaaS 或 IaaS)的扩展,我注意到监控数据收集以及可用的分析和报告选项方面有了一些改进。然而,本机性能监控仍然是数据库中小企业的一套工具。
企业监控系统
企业监控系统 (EMS) 提供了一种集中方法来系统地审查 IT 系统。此类系统允许监控大多数 IT 基础设施组件,从而将受监督的系统与一组仪表板整合在一起。有多家供应商提供全面的数据库监控系统来满足您的部分或全部监控需求。此类解决方案可以涵盖多个数据库引擎或特定于特定数据库引擎或监控方面。例如,如果您只需要监视 SQL 服务器并且对查询的性能感兴趣,那么您需要一个能够识别瓶颈和争用的监视系统。
让我们讨论分布在全球多个数据中心的数千个数据库实例(本地和云中)的环境。这涉及通过许多受监控设备、数据库类型多样性以及数据中心的地理位置和您监控的实际数据来监控复杂性的增长。必须对同一管理下的所有数据库系统有一个全局视图,并能够识别问题,最好是在问题影响用户之前。
EMS 旨在帮助组织将数据库监控与 IT 基础设施监控保持一致,大多数解决方案包括一组开箱即用的仪表板、报告、图表、警报、有用提示以及运行状况历史和趋势分析。他们还为性能计数器/指标预设了行业概述的阈值,应根据您的具体情况进行调整。
可管理性和行政开销
本机数据库监控通常由数据库管理员 (DBA) 团队处理。如果需要自动化、扩展或进行任何其他修改,那么 DBA/开发团队将负责处理。这可以由大型企业环境中的 DBA 在内部 DBA 特定用例的基本级别上进行有效管理。
引入第三方系统(如EMS)需要管理。假设,供应商已为您的公司安装并配置了监控。这种伙伴关系可以继续下去,或者内部人员可以接管 EMS 管理(经过适当的培训)。没有“错误”的方法——它完全取决于您公司的运营模式并进行相应的评估。
数据访问和审计合规性监控
您的数据库必须安全!未经授权访问敏感数据可能与数据丢失一样有害。数据泄露、恶意活动(有意或无意)——没有公司会对这样的宣传感到高兴。这让我们需要审计合规性和数据访问监控。关于数据合规性有许多法律法规。有些是行业间通用的,有些是行业特定的,有些是国家特定的。例如,许多国家的所有上市公司都要求遵守 SOX,而美国医疗保健必须遵守 HIPAA 法规。
数据库管理团队必须实施一套政策、程序和流程,以执行适用于其公司的法律和法规。审计报告可能是一个乏味且繁琐的过程,但它可以而且应该自动化。在实施审计合规性和数据访问监控的同时,您还可以改进数据库审计报告 - 它实际上是相同的数据集。
为了遵守各种法律法规,我们需要监控哪些内容?这些通常是强制性的:
-
访问更改和访问尝试
-
设置和/或对象修改
-
数据修改/访问
-
数据库备份
谁应该受到监控?通常,对数据库或数据进行更改的访问受到严格控制:
-
特权帐户——通常是 DBA;理想情况下,他们不应该能够访问数据,但这在他们的工作中并不总是可能的,因此必须监控活动
-
服务帐户 – 具有修改对象或数据权限的数据库或应用程序服务帐户
-
“超级”帐户 – 有权修改数据库对象或数据的用户
-
“较低”帐户 – 具有只读活动的帐户
与性能监控一样,大多数数据库引擎都提供了一组审核工具和机制。另一种选择是第三方合规性软件,它使用数据库本机审计、日志和跟踪来捕获与合规性相关的数据。它提供审计数据存储功能,最重要的是,提供一组合规性报告和仪表板,以遵守各种合规性策略。合规性复杂性直接取决于适用于您公司的法规以及数据库生态系统的多样性和规模。
在我们监控访问和合规性的同时,我们希望确保我们的数据不被滥用。当检测到未经授权的访问或异常数据使用时,应采取适当的措施。一些审计合规性监控系统提供了阻止异常活动的方法。
数据损坏和威胁
数据库数据损坏是一个严重的问题,可能导致有价值数据的永久丢失。通常,数据损坏是由于硬件故障造成的,但也可能是由于数据库错误甚至编码错误造成的。现代数据库引擎具有检测并有时防止数据损坏的内置功能。数据损坏将生成适当的错误代码,应对其进行监视和突出显示。检查数据库完整性应该是定期维护过程的一部分。
其他威胁包括有意或无意的数据修改和勒索软件。虽然 DBA 可以检测到数据损坏和恶意数据修改,但勒索软件威胁超出了数据库专业人员的监控范围。必须有一个防弹备份来从这些威胁中恢复。
关键数据库性能指标
数据库性能指标是极其重要的数据点,可衡量数据库系统的健康状况并帮助数据库专业人员保持高效的支持。有些指标特定于数据库类型或供应商,我将它们概括为“内部计数器”。
可用性
监控的第一步是确定设备或资源是否可用。系统和数据库可用性之间只有一线之隔。数据库可能已启动并正在运行,但客户端可能无法访问它。话虽如此,我们需要监控以下指标:
-
网络状态– 您可以通过网络访问数据库吗?如果是,延迟是多少?虽然网络状态通常不属于 DBA 的直接责任,但数据库组件的配置参数可能会导致连接丢失。
-
服务器上/下
-
存储可用性
-
服务上/下——数据库和操作系统支持团队之间的另一个共享领域
-
数据库是否在线或离线
CPU、内存、存储和数据库内部指标
本质上可能升级为可用性问题的下一组重要服务器组件是 CPU、内存和存储。以下四个绩效领域紧密相连并相互影响:
-
缺乏可用内存
-
CPU利用率高
-
存储延迟或吞吐量瓶颈
-
一组数据库内部计数器,可以为利用率问题提供更多内容
例如,内存不足可能会迫使数据库引擎更频繁地读取和写入数据,从而在 IO 系统上产生争用。100% CPU 使用率通常会导致整个数据库服务器停止响应。许多数据库内部计数器可以帮助数据库专业人员分析使用趋势并确定适当的操作来减轻潜在影响。
可观测性
数据库可观察性基于指标、跟踪和日志——我们根据上述讨论收集的内容。有很多因素可能会影响系统和应用程序的可用性以及客户体验。数据库性能指标只是一组可能的故障点。
支持数据库引擎下的基础设施是复杂的。为了成功监控数据库,我们需要在监控时清楚地了解整个生态系统及其组件的状态。从各个组件收集的相关性能数据对于在问题发生之前识别和解决问题有很大帮助。
整个数据库监控概念是数据驱动的,我们有责任让它为我们服务。监控数据需要告诉我们一个每个消费者都能理解的故事。借助数据库可观察性,这个故事可以是透明的,并提供数据库资产的清晰视图。
平衡监控
正如您从本文中可以了解到的那样,任何数据库环境中都存在许多故障点。虽然数据库监控是数据库专业人员的职责,但它需要多个团队的协作努力才能确保整个 IT 生态系统正常运行。那么什么情况下被认为是“过多”的监控,什么情况下又被认为是监控不够呢?我将使用 DBA 最喜欢的一句话:视情况而定。
-
评估您的环境- 拥有一个配置管理数据库会很有帮助。如果不这样做,请创建数据库和相应应用程序的完整清单:数据库大小、用户数量、维护计划、使用时间 - 尽可能多的详细信息。
-
评估您的关键系统- 概述您的关键系统和相关数据库。这些很可能属于最大程度监控的类别:可用性、性能、活动和合规性。
-
评估您的预算– 分配给 IT 运营的现金流紧张的情况并不少见。您可能有也可能没有资金购买“我们监控一切”系统,并且某些监控方面必须在内部开发。
-
找到一个中间立场——您的数据库监控方法对于您公司的要求是独一无二的。收集没有实际或可操作应用的监控数据是低效的。为数据库监控定义可操作的 KPI 是找到平衡的关键 - 监控您的团队可以使用哪些内容来确保系统可用性、稳定性和客户满意度。
请记住:成功的数据库监控是数据驱动的、主动的、持续的、可操作的和协作的。
作者:Akim Zubarchuk
更多内容请关注公号【云原生数据库】
squids.cn,云数据库RDS,迁移工具DBMotion,云备份DBTwin等数据库生态工具。
相关文章:

数据库监控:关键指标和注意事项
【squids.cn】 全网zui低价RDS,免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 听到模糊的说法“我们的数据库有问题”对于任何数据库管理员或管理员来说都是一场噩梦。有时是真的,有时不是,到底问题出在哪里呢?真…...

高防回源ip被源站拦截怎么办
在进行网站运营过程中,我们经常会遇到DDoS攻击等网络安全威胁。为了保护网站的正常运行,很多企业选择使用高防服务来应对这些攻击。有时候我们可能会遇到一个问题,就是高防回源IP被源站拦截的情况。 那么,当我们发现高防回源…...
关于集群和分布式部署
EJB的RPC是同步调用可实现分布式计算,是SessionBean和EntityBean用的,而JMS是异步调用。RMI,和webservice也可以实现分布式计算。 举例说明,假设我们的系统有三个EJB组件:人事、财务、销售,都是开放远程接口…...

XIlinx提供的DDR3 IP与 UG586
DDR系统需要关注的三样东西:控制器、PHY、SDRAM颗粒,但这是实现一个DDR3 IP所需要的,如果只希望调用IP的话,则只需要调用IP即可,目前时间紧急,我先学一学如何使用IP,解决卡脖子的问题࿰…...

C++数据结构X篇_19_排序基本概念及冒泡排序(重点是核心代码)
文章目录 1. 排序基本概念2. 冒泡排序2.1 核心代码2.2 冒泡排序代码2.3 查看冒泡排序的时间消耗2.4 冒泡排序改进版减小时间消耗 1. 排序基本概念 现实生活中排序很重要,例如:淘宝按条件搜索的结果展示等。 概念 排序是计算机内经常进行的一种操作,其目…...
LeetCode LCR 179. 查找总价格为目标值的两个商品
和为 s 的两个数字 题目链接 LCR 179. 查找总价格为目标值的两个商品 购物车内的商品价格按照升序记录于数组 price。请在购物车中找到两个商品的价格总和刚好是 target。若存在多种情况,返回任一结果即可。 示例 1: 输入:price [3, 9, 12, …...
上架用的SDK三方应用隐私
SDK名称:华为推送 使用目的:用于向华为手机用户推送消息 使用场景:用户账号相关促销活动、消息提醒更新时 信息收集类型:设备相关信息(Android_ID)使用的敏感权限:不涉及 使用的敏感权限&am…...

从REST到GraphQL:升级你的Apollo体验
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄ÿ…...
Jupyter使用技巧-环境篇
不同于其他IDE,有时会出现找不到文件路径,通常是因为当前工作目录(working directory)不同所导致的。Jupyter Notebook 会在启动时选择一个初始的工作目录,而这个目录可能与你运行 .py 文件时所在的目录不同。 import…...

软件项目管理【UML-组件图】
目录 一、组件图概念 二、组件图包含的元素 1.组件(Component)->构件 2.接口(Interface) 3.外部接口——端口 4.连接器(Connector)——连接件 4.关系 5.组件图表示方法 三、例子 一、组件图概念…...

npm版本错误——npm ERR! code ERESOLVE 解决方法
起因 项目中echart版本过低,导致某些图表不能正确显示,所以大手一挥,将echart版本从4升级到了5, 再去运行项目的时候 就发现项目报错了 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! …...

基于卷积神经网络的乳腺癌分类 深度学习 医学图像 计算机竞赛
文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度,召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…...

模式识别——高斯分类器
模式识别——高斯分类器 需知定义特殊情况(方差一致)Sigmoid 需知 所有问题定义在分类问题下,基于贝叶斯决策 定义 条件概率为多元高斯分布,此时观测为向量 X X 1 , X 2 , . . . , X n X{X_1,X_2,...,X_n} XX1,X2,...,Xn…...
LeetCode 15. 三数之和
三数之和 题目链接 15. 三数之和 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 **注意:**答案…...

React-native-camera 在小米手机上拍照查看闪退
场景:为实现可拍照和录像的相机用react-native-camera这个库手写一个相机,发现了拍出来的图片在小米10上查看闪退 根据手机后台捕获的错误信息是什么玩意太大了(之前还以为是图片显示组件的问题) 改进:相机吊起的时候…...

nodejs+vue大学生社团管理系统
通过软件的需求分析已经获得了系统的基本功能需求,根据需求,将大学生社团管理系统平台功能模块主要分为管理员模块。管理员添加社团成员管理、社团信息管理,社长管理、用户注册管理等操作。 目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1…...

异步编程详解(.NET)
在之前写的一篇关于async和await的前世今生的文章之后,大家似乎在async和await提高网站处理能力方面还有一些疑问,很多网站本身也做了不少的尝试。今天我们再来回答一下这个问题,同时我会做一个async和await在WinForm中的尝试,并且…...

excel怎么固定前几行前几列不滚动?
在Excel中,如果你想固定前几行或前几列不滚动,可以通过以下几种方法来实现。详细的介绍如下: **固定前几行不滚动:** 1. 选择需要固定的行数。例如,如果你想要固定前3行,应该选中第4行的单元格。 2. 在E…...
elasticsearch完整学习
文章目录 elasticsearch一、概念二、ELK集群部署三、图形化界面 elasticsearch 一、概念 1、ELKStack简介(都是java架构,需要jdk底层) 什么是ELK?通俗来讲,ELK是由Elasticsearch、Logstash、Kibana 三个开源软件组成的…...

vscode Coder Runner 运行C++
1. 设置Code Runner 2. 防止输入读不到,把在终端运行勾上。 3. 设置minw/bin的环境变量 安装mingw教程:https://blog.csdn.net/fancy_male/article/details/133992000 4. 见图...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
Python爬虫(二):爬虫完整流程
爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...