SinoDB数据库运行分析

 SinoDB数据库运行主要从数据库互斥资源等待、数据库写类型、备份文件有效性、Chunk状态等15个方向进行分析,具体说明如下:

一、数据库互斥资源等待

  • 检查项目
    数据库互斥资源等待

  • 检查命令
    onstat -g con |head -20

  • 说明
    onstat -g con 查看目前数据处于等待条件中的线程信息
    查看这两项资源等待项目,判断数据库是否存在资源配置上的性能瓶颈

二、数据库写类型

  • 检查项目
    数据库写类型

  • 检查命令
    onstat -F |head

  • 说明
    Fg Writes ,LRU Writes,Chunk Writes分别代表了Buffer不足时清仓的数量,检查点来临前由LRU控制的清仓数量以及检查点触发时的清仓数量

三、备份有效性检测

  • 检查项目
    检查备份文件有效性

  • 检查命令
    onstat -g arc

  • 说明
    确认各个DBSPACE包含有效的备份可供恢复使用

四、Chunk状态检查

  • 检查项目
    Chunk状态

  • 检查命令
    onstat -d | grep PD-

  • 说明
    如果chunk块的FLAG标识出现PD-状态,表示该chunk设备已经脱机

五、检查系统关键区信息

  • 检查项目
    检查系统关键区信息

  • 检查命令
    oncheck -cc
    oncheck -cr

  • 说明
    每个数据库包含它本身的系统目录,该目录包含关于数据库表、列、索引、视图、约束、存储过程和特权的信息。保留页是驻留在根数据库空间初始块开始处的页。这些页包含主数据库服务器开销信息。如果该命令检测到错误,请从存储空间备份执行数据恢复。

六、数据库实例概要信息

  • 检查项目
    数据库实例概要信息

  • 检查命令
    onstat -p

  • 说明
    1.%cached 是读取共享内存相对于磁盘读取百分比。OLTP 系统应该在95%以上。它是在系统中缓冲区太少的指标。

  1. seqscans & isamtot - 如果seqscans 和isamtot之间的比例大于1%,我们可以看看是否索引(index)使用少,顺序扫描(seqscans)使用太多。
  2. lokwaits & lockreqs - 是用户线程必须在锁定表发出请求/页/行锁的次数。如果与lokwaits/lockreqs 比率太高,那么应用程序可能单线程(single-threading)。
  3. ovlock 是数据库服务器试图分配锁15次数以上。ovlock 字段表明IDS 在使用了最大数量的锁之后尝试过再使用锁的次数。如果该数字非零,那么您可能需要提高配置文件中LOCKS 参数的值。
  4. ovbuff 字段表明IDS 在使用了最大数量的缓冲区之后尝试过再使用缓冲区的次数。如果该数字很大,比如说超过100000,那么表示我们需要提高BUFFERS 参数,以便用户在需要从磁盘访问数据
    时不必等待缓冲区。这会缩短响应时间,因而可以改善整体性能。我们还需要检查与LRU 有关的参数,将它们的值调整到较低的bufwait。
  5. commit & rollbk
    是回滚(rollback)和提交(commit)两者的比例。如果比例过高1%,那么应用程序可能设计不正确。需要研究为什么有这么多回滚,并采取纠正措施。

七、检查点持续时间

  • 检查项目
    检查点持续时间

  • 检查命令
    tail -100000 onstat -m | grep "Message Log File" | awk -F: '{print $2}' | grep duration | grep -v “0 seconds”

  • 说明
    检查点持续时间反映出了一定的数据库性能,如果出现持续的检查点时间超过20秒则需要引起关注,可通过设置LRU_MIN_DIRTY , LRU_MAX_DIRTY来缓解。

八、非连续物理分布的表

  • 检查项目
    非连续物理分布的表

  • 检查命令
    dbaccess [DBNAME] <<EOF
    select dbinfo(‘DBNAME’) dbname,t.tabname tabname,dbinfo(‘DBSPACE’,t.partnum) dbspace,count() extent_num, max(p.nrows) rows
    from sysmaster:sysptnext e, systables t,sysmaster:sysptnhdr p
    where e.pe_partnum=t.partnum
    and t.partnum=p.partnum
    and t.tabid>99
    and t.tabname not like “sys%”
    and t.tabname not like “tmp%”
    group by 1,2,3
    having count(
    )>100
    order by 4 desc
    EOF

  • 说明
    如果除了大型分段表以外,表的扩展块超过了100个,那么应该考虑重新构建这些表以合并扩展块。通过指定表的extent size 和nextsize调整重建表来减少extent数量。同时我们还需要根据表的记录数
    来判断表的extent设置的问题。

九、全表扫描最多的表

  • 检查项目
    全表扫描最多的表

  • 检查命令
    select p.dbsname, t.tabname,
    sum(p.seqscans) seqscans , max(t.nrows) nrows
    from sysmaster:sysptprof p, systables t
    where p.tabname =t.tabname
    and t.nrows > 10000 and p.seqscans>10
    and p.dbsname not like “sys%” and p.tabname not like “sys%” and p.tabname not like “tmp%”
    group by 1,2
    order by 3 desc;

  • 说明
    对于大表的全表扫描操作会产生极高的开销,通过找出全表扫描最多的大表,并合理的建立相应的索引可以有效的避免额外的开销

十、DUMP目录检查

  • 检查项目
    DUMP目录空间及文件检查

  • 检查命令
    1.df -h $DUMPDIR
    2.ls -lrt $DUMPDIR|egrep ‘.af|.dmp|core’

  • 说明
    定期检查DUMPDIR剩余空间确保其在故障时可以产生完整的AF文件供诊断使用

十一、IO最多的表

  • 检查项目
    各个表上IO情况

  • 检查命令
    select a.dbsname, a.tabname,
    (isreads + pagreads) diskreads,
    (iswrites + pagwrites) diskwrites,
    (isreads + pagreads)+(iswrites + pagwrites) disk_rsws
    from sysptprof a,systabnames b
    where a.partnum=b.partnum
    and a.tabname != ‘TBLSpace’
    and a.tabname not like ’ %’
    and a.tabname not like ‘sys%’
    and a.dbsname not like ‘sys%’
    and isreads + pagreads + iswrites + pagwrites >50000
    order by 5 desc;

  • 说明
    根据表的繁忙程度可以帮我们找出最需要进行关注的表,如果该部分表很大,则需要考虑对其进行分区操作,此外该信息可以帮助我们更为合理的规划磁盘IO

十二、效率低下的索引

  • 检查项目
    索引层超过4层的表

  • 检查命令
    dbaccess [DBNAME] <<EOF
    select t.tabname,i.idxname, i.levels
    from sysindexesi,systables t
    where i.tabid = t.tabid
    and i.levels>=4
    order by 3 desc
    EOF

  • 说明
    层数在3层以上的索引性能将会严重降低,需考虑重建

十三、磁盘排序情况

  • 检查项目
    查看系统磁盘排序情况

  • 检查命令
    dbaccess sysmaster <<EOF
    Select *
    from sysprofile
    where name matches “sort

  • 说明
    磁盘排序在性能上远低于内存排序,当内存排序空间不足时数据库则会使用磁盘进行排序,如果系统存在大量的磁盘排序,则应当考虑是否需要增加临时空间

十四、rootdbs上非系统表

  • 检查项目
    找出Rootdbs上非系统表

  • 检查命令
    dbaccess sysmaster <> $chkFile
    select distinct t.dbsname database,d.name dbspace,t.tabname
    from sysdbstab d,syschunks c,sysextents t
    where t.chunk=c.chknum
    and c.dbsnum=d.dbsnum
    and t.dbsname not like ‘sys%’
    and t.dbsname != ‘onpload’
    and t.tabname not like ‘sys%’
    and d.name = ‘rootdbs’
    EOF

  • 说明
    rootdbs中本身包含所有的系统表,如果附加业务表于其上则会产生IO和空间上的多种争用,如发现Rootdbs中存在业务表,则应考虑将其迁出至相应业务数据DBSPACE上

十五、表空间使用过高的表清单

  • 检查项目
    找出系统内空间使用过高的表

  • 检查命令
    set isolation to dirty read;
    select s.dbsname,s.tabname, p.npused from sysptnhdr p,systabnames s
    where p.partnum = s.partnum
    and p.npused >10000000 ;

  • 说明
    2k page Size数据库内若单一个partition 使用超过16775134 pages ,则该表会导致无法在新增数据的问题。若有该状况建议:
    1、将该表移至大Page Size的表空间
    2、将该表进行表分区或表分片。

更多信息内容请移步星瑞格官方社区,期待大家加入     
Sinoregal Tech ForumAsk questions, share solutions, and get to know the Sinoregal community.icon-default.png?t=N7T8https://forum.sinoregal.cn/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/282622.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用的6个的ChatGPT网站,国内可用!

GPTGod &#x1f310; 链接&#xff1a; GPTGod &#x1f3f7;️ 标签&#xff1a; GPT-4 免费体验 支持API 支持绘图 付费选项 &#x1f4dd; 简介&#xff1a;GPTGod 是一个功能全面的平台&#xff0c;提供GPT-4的强大功能&#xff0c;包括API接入和绘图支持。用户可以选择免…

QT信号和槽机制connect用法

信号与槽机制是绝对不可或缺且常用的&#xff0c;其中的参数一般都会比较简单&#xff0c;bool、int、QString之类的&#xff0c;但当我们想要传递相对比较复杂的参数&#xff0c;例如QVector<int>、QList<QString>&#xff0c;以及一些我们自定义的结构体时&#…

在服务器上训练faster-rcnn模型(pycharm和Termius)

本文主要介绍使用服务器训练模型的两种方式&#xff1a;pycharm&#xff08;可视化界面友好&#xff09;and终端&#xff0c;本人用的是macos系统&#xff0c;可能pycharm某些入口的位置不一样&#xff0c;本教程代码以faster-rcnn为例 准备工作&#xff1a; 1.知道自己所用服…

故障诊断 | 一文解决,RBF径向基神经网络的故障诊断(Matlab)

文章目录 效果一览文章概述专栏介绍模型描述源码设计参考资料效果一览 文章概述

Trait与生命周期

原文链接&#xff1a;(*∇&#xff40;*) 咦,又好了~ Rust – xiaocr_bloghttp://www.xiaocr.fun/index.php/2024/03/18/trait%E4%B8%8E%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F/ 目录 Trait 定义trait 默认实现 trait作为参数 Trait Bound语法 通过指定多个 trait bound …

大数据面试题 —— Zookeeper

目录 ZooKeeper 的定义ZooKeeper 的特点ZooKeeper 的应用场景你觉得Zookeeper比较重要的功能ZooKeeper 的选举机制 ***zookeeper主节点故障&#xff0c;如何重新选举&#xff1f;ZooKeeper 的监听原理 ***zookeeper集群的节点数为什么建议奇数台 ***ZooKeeper 的部署方式有哪几…

应对勒索攻击应该怎么办,妥协是最优解,还是下下策?

自1989年首次出现以来&#xff0c;勒索软件经历了三十多年的发展&#xff0c;已经成为全球网络空间安全面临的重大威胁和挑战。在今年&#xff0c;其攻击声势和复杂程度都在进一步变严峻。 根据全球各机构发布的相关调研报告&#xff0c;VMware ESXi、GoAnywhere MFT、MOVEIT等…

阿里云发布 AI 编程助手 “通义灵码”——VSCode更强了 !!

文章目录 什么是 通义灵码&#xff08;TONGYI Lingma&#xff09; 快速体验“通义灵码” 什么是“通义灵码”&#xff08;TONGYI Lingma&#xff09; 通义灵码&#xff08;TONGYI Lingma&#xff09;&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff…

【数据结构】链表力扣刷题详解

前言 题目链接 移除链表元素 链表的中间结点 反转链表 分割链表 环形链表的约瑟夫问题 ​ 欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 移除链表元素 题述 给你一个链表的头节点 head 和一个整数 val &#xff0c;请…

【漏洞复现】福建科立迅通信指挥调度平台down_file.php sql注入漏洞

漏洞描述 福建科立迅通信调度平台 20240318 以及之前版本存在一个严重漏洞,影响了文件 api/client/down_file.php 的一个未知功能。攻击者可以通过操纵参数 uuid 发起 SQL 注入攻击。攻击者可以远程发起攻击。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守…

Redisson分布式锁(WatchDog分析,浅浅看下源码)

带大家简单了解下Redisson的看门狗机制&#xff0c;这个面试中也比较常见。 目录 WatchDog&#xff08;看门狗&#xff09;机制开启WatchDog&#xff08;看门狗&#xff09;浅看下源码 WatchDog&#xff08;看门狗&#xff09;机制 Redisson看门狗机制是用于解决在业务运行时间…

关于Java对接网络验证+实践小例子,简单易懂

一个简单的网络验证小例子&#xff0c;各位大佬勿喷 突发奇想&#xff0c;如果一位A友找你拿一份 Working Fruits&#xff0c;但是你不想这位A友把你辛苦劳作、熬夜加点写出的代码分享他或她的另外一位朋友B友&#xff0c;也许并不是很有价值的一个小作业而已&#xff0c;但是就…

【微服务】Feign远程调用

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;微服务 ⛺️稳中求进&#xff0c;晒太阳 先来看我们以前利用RestTemplate发起远程调用的代码&#xff1a; 存在下面的问题&#xff1a;代码可读性差&#xff0c;编程体验不统一参数复杂URL…

2016年认证杯SPSSPRO杯数学建模A题(第二阶段)洗衣机全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 A题 洗衣机 原题再现&#xff1a; 洗衣机是普及率极高的家用电器&#xff0c;它给人们的生活带来了很大的方便。家用洗衣机从工作方式来看&#xff0c;有波轮式、滚筒式、搅拌式等若干种类。在此基础上&#xff0c;各厂商也推出了多种具体方案…

详解如何使用Pytest进行自动化测试

为什么需要自动化测试 自动化测试有很多优点&#xff0c;但这里有3个主要的点 可重用性:不需要总是编写新的脚本&#xff0c;除非必要&#xff0c;即使是新的操作系统版本也不需要编写脚本。可靠性:人容易出错&#xff0c;机器不太可能。当运行不能跳过的重复步骤/测试时&…

【数据结构】——栈与队列(附加oj题详解)深度理解

栈 1.栈的定义 栈&#xff1a;栈是仅限与在表尾进行插入或者删除的线性表 我们把允许一端插入和删除的一端叫做栈顶&#xff0c;另一端叫栈底&#xff0c;不含任何元素的栈叫做空栈&#xff0c;栈又叫做后进先出的线性表&#xff0c;简称LIFO结构 2.栈的理解 对于定义里面…

【C++】狗屁不通文章生成器2.0

【C】狗屁不通文章生成器2.0 1 前言2 改进2.1 字词的前后关系2.2 文章生成系统 3 实现(部分)3.1 class wordpair3.1.1 转化为 json3.1.2 添加后缀词3.1.3 选择后缀词 3.2 class createArticle3.2.1文本分割3.2.2生成文章 4演示4.1 wordpair(3x2), 启动词(春天)4.2 wordpair(2x1…

C语言笔记:函数与程序结构

目录 ACM金牌带你零基础直达C语言精通-课程资料 一.作用域的基本概念 二.函数 1. 函数的定义和使用 2.为什么一定要有函数结构 3.形参与实参 4.函数的声明和定义 5.递归函数 此代码中递归函数执行流程&#xff1a; 练习&#xff1a;求斐波那契数列第n项的值&#xff1a; 欧几里…

CSDN个人简介优化 html font属性

CSDN个人简介优化 html font属性 个人简介个人简介优化字体21种样式选择字体大小设置4号字体 字体颜色设计渐变色&#xff08;可惜不能显示&#xff09; 字体加粗设置 <b>标签 个人简介 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光…

mysql查询条件包含IS NULL、IS NOT NULL、!=、like %* 、like %*%,不能使用索引查询,只能使用全表扫描,是真的吗???

不知道是啥原因也不知道啥时候, 江湖上流传着这么一个说法 mysql查询条件包含IS NULL、IS NOT NULL、!、like %* 、like %*%,不能使用索引查询&#xff0c;只能使用全表扫描。 刚入行时我也是这么认为的&#xff0c;还奉为真理&#xff01; 但是时间工作中你会发现还是走索引…