当前位置: 首页 > news >正文

数据库管理-第五十六期 监控(20230210)

数据库管理 2023-02-10

  • 第五十六期 监控
    • 1 怎么监控
    • 2 直观
    • 3 历史分析
    • 4 另一个BUG
    • 总结

第五十六期 监控

春节后的7天班过后就来到了2月份,本周对之前发现X8M上的那个bug进行补丁修复和协助从12.2迁移了一套PDB到这个一体机上面,2次割接。这周还和原厂老大哥聊了一下,其他地方是如何监控数据库的问题,本期内容就由此展开。

1 怎么监控

和老大哥聊的是另一家数据库维护大厂维护的一个项目,其实客户是买了EMCC的,也部署了大厂自己开发的数据库监控平台,但是现场的情况是EMCC没人用,数据库监控平台也变成主要由客户使用。现场维护团队技术leader是一位“怀旧”的人,在他的的要求下,所有巡检监控通过脚本或者手工实现,脚本结果再通过Excel之类的工具再汇聚成结果,用的是很传统的非实时的监控方法;另一方面呢,还在坚持使用11g(11.2.0.4)版本,虽然11204是一个优秀的版本,但是毕竟廉颇老矣,而且原厂也停止该版本的支持了,特别是遇到bug,很难修复。
在我长期的DBA工作经历中,我认为实时的数据库监控(及告警)还是很有必要的,在出现异常的时候可以非常迅速的对问题进行定位,以EMCC的ASH分析页面为例,当我发现数据库等待较高时:
在这里插入图片描述
可以快速在ASH分析页面中,对SQL ID和等待时间进行对比分析,可以非常快速的发现是一条insert引起了大量的enq: HW - contention等待:
在这里插入图片描述
进入语句详情则发现这条insert语句是日志记录语句,没有批量提交也没有限流,造成了“壮汉挤门”的现象,所幸通过与业务方分析,这个日志记录与业务流程非强相关,是异步的,因此仅仅只会对这一张表造成影响,不会造成业务卡顿和主机CPU占用增加:
在这里插入图片描述
但是日志作为非常重要的一部分,涉及溯源查询,还是建议业务方批量提交事务或限流,抑或使用MongoDB或ES来存储日志。

2 直观

排查上面这个问题,如果用传统的方式,可能就要涉及一大堆SQL语句,包含当前数据库锁和等待情况查询、SQL详情查询、SQL执行计划输出、ASH查询等等,很可能还需要等到下一次AWR快照完成后(手动也行)打印AWR报表,再将查到的所有内容关联起来进行计算分析,才能得到结果,如果涉及影响生产,紧急处理不是不行,但是很可能造成溯源很麻烦。而类似于EMCC这类监控平台则非常直观的展示本需要繁琐操作、计算、统计、分析之后的结果,加快了处理问题的效率。

3 历史分析

那么一个数据库监控平台处理实时性,可以及时查询需要内容以外,对历史信息信息的展示也是非常重要的,很多时候我们查询一些性能问题都是事后查询的,在事后也能像刚才查询“壮汉挤门”这个操作这么简单,当然是最好的。
小结一下: 当然监控不是万能的,很多时候分析问题还是需要去排查相关日志,但是不得不说,一个可以实时监控、提供历史查询和实时告警能力的直观展示所有信息的数据库监控平台还是很有必要的,至少维护人员可以轻松很多。

4 另一个BUG

这个其实也是我在使用EMCC的时候发现的一个问题,X8M上出现了一个问题,涉及PDB的SQL Monitor在集群页面输出失败,只能进入PDB页面中才能输出,在sqlplus中则是SQL monitor语句再CDB中执行失败,进PDB才能正确得到结果;X9M上则是某个PDB无论在集群页面还是进入PDB页面都输出失败,而其他PDB则没有这个问题,在sqlplus中就是涉及这个PDB的SQL在哪执行SQL monitor语句再CDB中执行失败,其他PDB的语句就没问题。报错信息如下:

EMCC:
ORA-12801: error signaled in parallel query server PPA7, instance xxxsqlplus:
ERROR:
ORA-12801: error signaled in parallel query server PPA7, instance
xxx (1)
ORA-06512: at "SYS.DBMS_SQLTUNE", line 18940
ORA-22921: length of input buffer is smaller than amount requested
ORA-06512: at "SYS.DBMS_SQLTUNE", line 14318
ORA-06512: at "SYS.DBMS_SQLTUNE", line 19036
ORA-06512: at "SYS.DBMS_SQLTUNE", line 19367
ORA-06512: at line 1

当然这个其实也不是很重视,首先两台一体机都没有涉及到影响生产,其次是X8M那台还是看得到,X9M那个PDB虽然重要,但是在ASH分析里面还是能看到执行计划,影响也不大。但总归有问题,需要处理,SR开起,MOS小姐姐联系上,迅速定位一个BUG: Bug 34291138 : DBMS_SQLTUNE.REPORT_SQL_MONITOR FAILS WITH ORA-12801 AND ORA-22921 ERRORS.(Base Bug 33241359:DBMS_SQLTUNE.REPORT_SQL_MONITOR GENERATE ORA-22921 WITH PPA PROCESS - 找补丁用这个编号)。而且这个BUG涉及到了19c的绝大多数版本,如果你遇到了且没有workaround,可以考虑申请并应用相关版本的补丁。
其实这个小bug倒不是什么事,主要是MOS小姐姐有个消息让我比较震惊,Oracle现在有一套工具,通过opatch lsinv输出,可以在某些特定情况自动根据BUG生产补丁。可见现在Oracle数据库的设计及代码还是十分优秀的。

总结

还在等待ACE的评审,不晓得结果咋样,内心忐忑。
老规矩,知道写了些啥。

相关文章:

数据库管理-第五十六期 监控(20230210)

数据库管理 2023-02-10第五十六期 监控1 怎么监控2 直观3 历史分析4 另一个BUG总结第五十六期 监控 春节后的7天班过后就来到了2月份,本周对之前发现X8M上的那个bug进行补丁修复和协助从12.2迁移了一套PDB到这个一体机上面,2次割接。这周还和原厂老大哥…...

测试开发,测试架构师为什么能拿50 60k呢需要掌握哪些技能呢

这篇文章是软件工程系列知识总结的第五篇,同样我会以自己的理解来阐述软件工程中关于架构设计相关的知识。相比于我们常见的研发架构师,测试架构师是近几年才出现的一个岗位,当然岗位title其实没有特殊的含义,在我看来测试架构师其…...

Miniblink 入门

miniblink官网:入门之前强烈建议将Miniblink介绍仔细看一遍。 MB内核组件标准版接口文档:这里列举了所有的api以及简单的说明,但是本人建议还是看wke.h更方便,里面都是宏实现的,直接搜相关函数即可。 mb demo下载和参…...

[python入门㊷] - python存储数据

目录 ❤ json.dump()存储数据 ❤ json.laod()读取数据 ❤ 保存和读取用户生成的数据 ❤ 重构 JSON(JavaScript Object Notation)格式最初是为JavaScript开发的,但随后成了一种常见格式,被包括Python在内的众多语言采用 ❤ json.dump()存储数据…...

Little Fighter:旺角——NFT 系列来袭!

《小朋友齐打交 2 (LF2) 》是一款流行的格斗游戏,由 Marti Wong 和 Starsky Wong 于 1999 年创作。这是一款非常容易上瘾的游戏,具有多种游戏模式、横向卷轴格斗系统以及 24 个具有复杂动作和连击的不同角色。这款游戏在世界范围内非常受欢迎&#xff0c…...

基础篇:01-微服务概述

1.单体应用与微服务架构区别 如上图左侧为单体应用架构。在传统单体应用中,所有功能模块都在一个工程中编码、部署,即使是集群部署,也只是单体应用的水平复制。 如上图右侧为微服务架构。在微服务架构的项目中,每个应用会按照领域…...

TC358775XBG替代方案|完美替代 TC358775XBG替代方案|低BOM成本DSI转LVDS方案CS5518

TC358775XBG替代方案|完美替代 TC358775XBG替代方案|低BOM成本DSI转LVDS方案CS5518 TC358775XBG芯片的主要功能是DSI到LVDS桥,通过DSI链路实现视频流输出,以驱动LVDS兼容的显示面板。该芯片支持单链路LVDS高达1366768 24位像素分辨率,双链路L…...

Android开发

前言:因为这学期选了手机APP开发这门课,所以还是写个博客记录一下学习过程,包括安卓开发和ios开发。用到的资料包括课程PPT,和我在网上找的一些视频和资料。 1.Andriod入门 XML:描绘应用界面 (决定APP长什…...

virtualbox虚拟机导入到vmware esxi虚拟机

virtualbox导出的ova文件转换为ovf文件导入到vmware esxi虚拟机 1、下载安装程序 链接:https://pan.baidu.com/s/1pRP8MQswDSDecMB5eJGNYA?pwdmv2q 提取码:mv2q 双击VMware-ovftool-3.0.1-801290-win.x86_64.msi默认安装 2、在cmd中进入到Vware OVF…...

如何使用命名空间管理C++代码

在编写 C 代码时,管理代码组织和消除名称冲突是一个重要问题。 为了解决这个问题,C 提供了一种叫做命名空间的机制。命名空间可以将代码组织在一起,并防止不同模块间的名称冲突。 定义命名空间 首先,你需要在代码中声明命名空间…...

海思3559:BT656调试笔记

前言 海思3559a的sdk例子是没有提供BT1120和BT656视频接入的,但实际上硬件是可以支持接入的。不过前提是只支持逐行方式输入,不支持隔行视频,如果想输入PAL制式的隔行视频,请先用芯片转成逐行再接入。不知道是官方手册有意无意的忽…...

reactor之hooks

Hooks 是一个工具类,它提供了一些方法,用来在 Reactor 的各个阶段添加回调函数,进行全局性的操作。总体来说分为三类: 本部分算是reactor中比较高级的部分,建议在开始上手用reactor做项目前,大概知道有这么…...

单片AR眼镜Monocle揭秘:基于反射棱镜,重15g续航1小时

提问:一个戴近视眼镜的人,会愿意再同时戴一副AR眼镜吗?这个问题对于VR来说并不难,通常VR头显为镜框留出了空间(一些Pancake VR自带屈光调节机制),因此二者并不冲突。然而AR眼镜体积更紧凑&#…...

计算机视觉框架OpenMMLab开源学习(五):目标检测实战

✨写在前面:强烈推荐给大家一个优秀的人工智能学习网站,内容包括人工智能基础、机器学习、深度学习神经网络等,详细介绍各部分概念及实战教程,通俗易懂,非常适合人工智能领域初学者及研究者学习。➡️点击跳转到网站。…...

SpringIOC推导IOC初步

了解准备 什么是Spring? Spring是一款轻量级的控制反转(IOC)和面向切面编程(AOP)的非入侵式开源框架 2002年Spring的前身interface21发布,随后在2004年3月24日正式更名发布Spring1.0版本Spring Frameword缔…...

Linux(centOS7)虚拟机中配置 vim

👏作者简介:大家好,我是小童,Java开发工程师,CSDN博客博主,Java领域新星创作者 📕系列专栏:前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…...

消息中间件-RocketMQ入门 消息发送的三种方式

消息中间件-RocketMQ入门 消息发送的三种方式消息中间件简介应用场景常用消息中间件RocketMQ核心概念入门案例-生产者和消费者代码逻辑消息发送的三种方式同步发送异步发送一次性消息消息中间件简介 应用场景 假设现在有订单微服务和积分微服务,正常请求流程之后是不是一个订…...

【FLASH存储器系列十九】固态硬盘掉电后如何恢复掉电前状态?

掉电分两种,一种是正常掉电,另一种是异常掉电。不管是哪种原因导致的掉电,我们都希望,重新上电后,SSD都需要能从掉电中恢复过来,继续正常工作。正常掉电恢复,这个好理解,主机通知SSD…...

Java知识点细节简易汇总——(7)面向对象编程(高级部分)

一、类变量、静态变量static static访问方式: public class VisitStatic {public static void main(String[] args) {//方法一://类名.类变量名//说明:类变量是随着类的加载而创建,所以即使没有创建对象实例也可以访问System.out.println(A.…...

阻塞式队列-生产者消费者模型

1.阻塞队列是什么 阻塞队列是一种特殊的队列. 也遵守 "先进先出" 的原则. 阻塞队列能是一种线程安全的数据结构, 并且具有以下特性: 当队列满的时候, 继续入队列就会阻塞, 直到有其他线程从队列中取走元素.当队列空的时候, 继续出队列也会阻塞, 直到有其他线程往队…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

HTML 列表、表格、表单

1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

浅谈不同二分算法的查找情况

二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况&#xf…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中,featureAbility是旧版FA模型(Feature Ability)的用法,Stage模型已采用全新的应用架构,推荐使用组件化的上下文获取方式,而非依赖featureAbility。 FA大概是API7之…...