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

uniapp 对接腾讯云IM群组成员管理(增删改查)

UniApp 实战:腾讯云IM群组成员管理(增删改查) 一、前言 在社交类App开发中,群组成员管理是核心功能之一。本文将基于UniApp框架,结合腾讯云IM SDK,详细讲解如何实现群组成员的增删改查全流程。 权限校验…...

Python|GIF 解析与构建(5):手搓截屏和帧率控制

目录 Python|GIF 解析与构建(5):手搓截屏和帧率控制 一、引言 二、技术实现:手搓截屏模块 2.1 核心原理 2.2 代码解析:ScreenshotData类 2.2.1 截图函数:capture_screen 三、技术实现&…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

Python ROS2【机器人中间件框架】 简介

销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...

【网络安全】开源系统getshell漏洞挖掘

审计过程&#xff1a; 在入口文件admin/index.php中&#xff1a; 用户可以通过m,c,a等参数控制加载的文件和方法&#xff0c;在app/system/entrance.php中存在重点代码&#xff1a; 当M_TYPE system并且M_MODULE include时&#xff0c;会设置常量PATH_OWN_FILE为PATH_APP.M_T…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API&#xff0c;让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API&#xff0c;你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章&#xff0c;抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法&#xff0c;已经有很多的工作和这个任务相关。这两年 diffusion 模型很火&#xff0c;大家又开始用 diffusion 模型做各种 CV 任务了&am…...