查看当前数据库_记一次对DM数据库的优化过程

1a06744908857f0714591351e3c23285.png

某年某月某日的一个下午,接收到监控服务器的一条告警短信:尊敬的运维工程师 XX,你好:“192.168.136.200”数据库服务器 CPU 异常,CPU 使用率 98.7%,请尽快处理。看到这个消息浑身一紧,赶紧掐灭手中的烟,跑回办公室。

以上段子纯属捏造,如有雷同,我反正是不改。

言归正传,本文是记录一次对达梦数据库的优化过程。

处理问题的第一步,是需要了解当前服务器的状况,我们通过以下两种手段确认服务器瓶颈。

系统状况

  • 通过服务器性能监控大盘观察当前系统性能

5a94afb56bbdfd533c5c62acdd4d2809.png

通过上图我们看出 CPU 基本耗尽,IO 飙升。

  • 通过 sar 命令观察服务器实时状态sar 10 3

ced8fd20b2d1a70081e7434f07713f89.png

确认 CPU 被耗满,没有空闲。

通过我的细致观察,发现服务器 CPU 被耗满。接下来需要查看数据库服务器的配置参数是否合理,是否有慢查询脚本。

参数优化

  • 查看 dm 配置文件cd /dm7/dmdbms/devdb cat dm.ini | grep -E "MEMORY_POOL|MEMORY_TARGET|BUFFER"

da3e5480fdcf35f62d5694062bcb76bf.png

发现数据库参数配置为安装时候的默认配置,参数不合理,需要优化参数配置。

  • 备份原配置文件cp dm.ini dm.ini.bak
  • 修改配置
    修改如下几个关键参数,根据之前文章数据库优化-实例优化中的表格进行优化(ps:当前数据库内存 2G)

ed9bbdeb19899512819d9991f7335820.png
  • 重启数据库服务service DmServerdm restart

参数优化后我们尝试找出当前数据库存在的慢查询 SQL,看看是否可以优化。

慢 SQL 优化

达梦数据库不像 MySQL 可以直接将慢查询存放在指定位置,达梦需要通过 AWR 报告中找出慢查询。(AWR 报告大家自行百度)
启用 DM 快照需要调用 DBMS_WORKLOAD_REPOSITORY 包。

  • 使用 DBA 账户登录数据库disql SYSDBA/password
  • 创建 DBMS_WORKLOAD_REPOSITORY 系统包,开启 AWR 快照功能。SP_INIT_AWR_SYS(1);
  • 启用状态检测。SELECT SF_CHECK_AWR_SYS;
  • 设置 AWR 快照间隔时间(30 分钟)CALL DBMS_WORKLOAD_REPOSITORY.AWR_SET_INTERVAL(30);
  • 手动创建快照:DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();
    这里我们可以间隔几分钟多执行几遍创建几个不同的快照。
    查看创建的快照信息,包括快照 id:SELECT * FROM SYS.WRM$_SNAPSHOT;

1c0d1273b597f9c36c404b8392c2aa7f.png
  • 查看 AWR 报告内容SELECT * FROM TABLE (DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_HTML(1,2));
    查看 snapshot 的 id 在 1~2 范围内的 AWR 分析报告的带 html 格式的内容。

51e24d304cc9575dfb4379682ca81192.png

这个内容格式基本没办法看,我们需要将其转化成 html 页面查看。

生成 HTML 文件(需要先对 awr 文件夹授权)

chmod 777 /awr
SYS.AWR_REPORT_HTML(1,2,'/awr','awr1.html');
  • 通过 AWR 报告找出慢 SQL

1331e2660118a7e1505f31285fa82954.png

SQL Ordered by Elapsed Time 的内容就是慢查询语句。
在拿到慢查询语句后我们需要联系开发人员修改查询语句,这次优化过程中我通过给相关字段添加索引,改写一部分 SQL 完成。
但是数据表本身设计不合理这个没有优化,由于设计不合理导致查询没办法走索引;而有些查询则需要从业务角度进行优化,比如是否有必要对大表进行全表查询然后再排序?等等等等。。。(至于数据库 SQL 优化的具体策略我们下期再聊)

在完成优化后重启应用,再次通过sar 10 3观察 CPU 性能,较优化前还是有不少的提升的,又可以抽空去抽根烟了。

9c18e87731ad59092091e3fa21979dd4.png

b281a78a5a75bf05fd02ca91d12ea894.png

5772028dbc9b8c23cf56335612456c96.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值