ACOS统一监控之达梦数据采集

文静1年前最新动态431

署名-汪勇(苏夏)

一、前言

基于目前的互联网环境趋势和国家的倡导,在将来软件基础新的工具或应用国产化是一大方向。而在运维可视化这个行业来说,我们ACOS产品也是需要达梦数据的运行状态做一定的监控,从而完善产品能力。接入方式:

    a、将logkit agent安装在达梦数据所在的主机采集主机的性能信息

    b、通过配置达梦采集任务并下发到相关的logkit agent 从而采集达梦数据的运行状态

二、达梦数据库采集方式

    达梦数据库的运行状态数据主要是通过物化视图的方式对外体现出来,因此我们只需要通过python语言查询达梦的物化视图数据,从而实现对达梦数据的运维监控

    达梦数据库python开发环境准备:

    编译安装DM驱动:这里主要是通过达梦官方提供的python 环境源码编译安装python-126594-20201027.zip

[root@RS1821 /]# unzip python-126594-20201027.zip
[root@RS1821 /]# cd python/dmPython_C/dmPython/
[root@RS1821 dmPython]# python setup.py install
...
...
...
Installed /usr/lib64/python2.7/site-packages/dmPython-2.3-py2.7-linux-x86_64.egg
Processing dependencies for dmPython==2.3
Finished processing dependencies for dmPython==2.3
[root@RS1821 dmPython]#

成功安装 dmPython 之后可以获取 dmPython 版本,查询方式有以下两种方法:

方法一:通过驱动内置常量获取版本号信息。

(1)在操作系统执行 python 命令,进入 python 交互式开发界面;

(2)在交互式开发界面执行 import dmPython,导入驱动;

(3)在交互式开发界面执行 dmPython.version,获取当前的版本号常量,如图,当前 dmPython 为 2.3 版本。

image.png

方法二:通过 python 包管理工具 pip 查看各 python 包的版本(需要预先安装 pip),在操作系统执行 pip list 命令查询各 python 包版本,其中也包含 dmPython 的版本信息,如图所示:

image.png

三、达梦数据python采集(dmPython)

import dmPython
conn=dmPython.connect(user='SYSDBA',password='SYSDBA001',server= '127.0.0.1',port=5236)
cursor = conn.cursor()
cursor.execute('select CLNT_IP,CLNT_HOST,USER_NAME,SESS_ID,APPNAME from V$SESSIONS' where USER_NAME not in)
values = cursor.fetchall()
cols = cursor.description
print cols
print(values)
cursor.close()
conn.close()

四、达梦采集指标说明

a、V$SQL_STAT

    语句级资源监控内容。记录当前正在执行的SQL语句的资源开销。需要ENABLE_MONITOR=1才开始监控。其中5~58列中的监控项,可以通过SP_SET_SQL_STAT_THRESHOLD()设置监控阀值,超过阀值才开始监控。具体使用参考《DM8_SQL语言使用手册》。

列号

列名

类型

说明

1

SESSID

BIGINT

会话id

2

SESS_SEQ

INTEGER

会话序列号,用来唯一标识会话

3

SQL_TXT

VARCHAR(1024)

语句

4

SQL_ID

INTEGER

语句编号

5

EXEC_TIME

BIGINT

执行时间(MS)

6

PARSE_CNT

BIGINT

解析次数

7

PARSE_TIME

BIGINT

解析时间(MS)

8

HARD_PARSE_CNT

BIGINT

硬解析次数

9

HARD_PARSE_TIME

BIGINT

硬解析时间(MS)

10

SEL_SQL_CNT

BIGINT

执行的查询语句总数

11

INS_SQL_CNT

BIGINT

执行的插入语句总数

12

DEL_SQL_CNT

BIGINT

执行的删除语句总数

13

UPD_SQL_CNT

BIGINT

执行的更新语句总数

14

DDL_SQL_CNT

BIGINT

执行的DDL语句总数

15

SEL_IN_PL_CNT

BIGINT

执行的语句块中的查询语句总数

16

INS_IN_PL_CNT

BIGINT

执行的语句块中的插入语句总数

17

DEL_IN_PL_CNT

BIGINT

执行的语句块中的删除语句总数

18

UPD_IN_PL_CNT

BIGINT

执行的语句块中的更新语句总数

19

DYN_EXEC_CNT

BIGINT

执行的语句块中的动态执行语句总数

20

DDL_EVT_TRG_CNT

BIGINT

DDL事件触发器触发次数

21

STMT_BF_TRG_CNT

BIGINT

语句级BEFORE触发器触发次数

22

STMT_AF_TRG_CNT

BIGINT

语句级AFTER触发器触发次数

23

ROW_BF_TRG_CNT

BIGINT

行级BEFORE触发器触发次数

24

ROW_AF_TRG_CNT

BIGINT

行级AFTER触发器触发次数

25

INSTEAD_OF_TRG_CNT

BIGINT

INSTEAD  OF触发器触发次数

26

OPTIMIZED_SORT_CNT

BIGINT

最优排序次数

27

ONE_WAY_SORT_CNT

BIGINT

单路排序次数

28

MULTI_WAY_SORT_CNT

BIGINT

多路排序次数

29

RUNTIME_OBJ_ALLOC_CNT

BIGINT

运行时对象创建次数

30

RUNTIME_OBJ_SIZE_CNT

BIGINT

运行时对象占用空间大小

31

RUNTIME_OBJ_RECLAIM_CNT

BIGINT

运行时对象回收次数

32

LONG_ROW_CVT_CNT

BIGINT

超长记录字段压缩次数

33

LOGIC_READ_CNT

BIGINT

逻辑读页次数

34

PHY_READ_CNT

BIGINT

物理读页次数

35

PHY_MULTI_READ_CNT

BIGINT

物理读多页次数

36

RECYCLE_LOGIC_READ_CNT

BIGINT

临时表空间逻辑读次数

37

RECYCLE_PHY_READ_CNT

BIGINT

临时表空间物理读次数

38

HBUF_LOGIC_READ_CNT

BIGINT

HBUF逻辑读次数

39

HBUF_PHY_READ_CNT

BIGINT

HBUF物理读次数

40

HBUF_PHY_WRITE_CNT

BIGINT

HBUF物理写次数

41

HBUF_PHY_READ_SIZE

BIGINT

HBUF物理读总大小

42

HBUF_PHY_WRITE_SIZE

BIGINT

HBUF物理写总大小

43

UNDO_PAGE_CHANGES_CNT

BIGINT

undo页变化次数

44

RECYCLE_PAGE_CHANGES_CNT

BIGINT

临时页变化次数

45

DATA_PAGE_CHANGES_CNT

BIGINT

数据页变化次数

46

IO_WAIT_TIME

BIGINT

I/O等待时间(MS)

47

TAB_SCAN_CNT

BIGINT

统计全表扫描次数

48

HASH_JOIN_CNT

BIGINT

统计哈希连接的次数

49

BTR_SPLIT_CNT

BIGINT

B树分裂次数

50

BTR_PAGE_DISCARD_CNT

BIGINT

数据页丢弃次数

51

BTR_LEVEL_DISCARD_CNT

BIGINT

B树层丢弃次数

52

BTR_LEFT_TRY_CNT

BIGINT

B树左移次数

53

BTR_DIRECT_UPDATE_CNT

BIGINT

B树直接更新次数

54

BTR_INSDEL_UPDATE_CNT

BIGINT

B树插入删除更新次数

55

BTR_UPDATE_2ND_CONFLICT_CNT

BIGINT

二级索引更新冲突次数

56

UPDATE_MVCC_RETRY_CNT

BIGINT

多版本更新重试次数

57

DELETE_MVCC_RETRY_CNT

BIGINT

多版本删除重试次数

58

MAX_MEM_USED

BIGINT

内存使用峰值(K)

 b、表空间信息

通过以下语句可查看表空间基本信息:表空间大小,剩余空间大小,表空间使用率等。

SELECT a.tablespace_name as tablespace_name ,
total / (1024 * 1024) as space_total_M,
free / (1024 * 1024) as space_free_M,
(total - free) / (1024 * 1024 ) as space_use_M,
total / (1024 * 1024 * 1024) as space_total_G,
free / (1024 * 1024 * 1024) as space_free_G,
(total - free) / (1024 * 1024 * 1024) space_use_G,
round((total - free) / total, 4) * 100 as use_rate 
FROM (SELECT tablespace_name, SUM(bytes) free
      FROM dba_free_space
      
      GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total
 FROM dba_data_files
 GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name;

指标说明

指标

说明


tablespace_name

表空间名称


space_total_M

表空间大小(M)


space_free_M

表空间剩余大小(M)


space_use_M

表空间使用大小(M)


space_total_G

表空间大小(G)


space_free_G

表空间剩余大小(G)


space_use_G

表空间使用大小(G)


use_rate

使用率 %


C、mate 指标(select NAME,VALUE FROM V$PARAMETER


参数

默认值

参数描述及建议

属性

MEMORY_POOL

500

共享内存池大小,以 M 为单位。共享内存池是由 DM 管理
的内存。有效值范围:32 位平台(642000),64 位平台为
(6467108864)。可根据系统实际情况进行适当调整。

静态

MEMORY_TARGET

15000

共享内存池在扩充到此大小以上后,空闲时收缩回此指定大
小,以 M 为单位。通常保持默认为 0,代表不限制。

动态,
系统级

BUFFER

1000

系统缓冲区大小,以 M 为单位。推荐值:系统缓冲区大小为
可用物理内存的 60%~80%。有效值范围(8~1048576)。

静态

PWD_POLICY

2

用来设置新建用户的密码策略,建议生产中按照生产规范来做
要求,密码定期修改,并杜绝泄漏。

动态,
系统级

SORT_BUF_SIZE

20

原排序机制下,排序缓存区最大值,以 M 为单位,有效值范围
(1~2048)。有大量排序操作时建议适当调大。

动态,
会话级

BUFFER_POOLS

19

BUFFER 系统分区数,一般配置为质数,并发较大的系统需要配
置这个参数,减少数据缓冲区并发冲突。

静态

RECYCLE

300

RECYCLE 缓冲区大小,以 M 为单位。有效值范围
(8~1048576)。高并发或大量使用 with、临时表、排序等情
况下应适当调大。

静态

RECYCLE_POOLS

19

RECYCLE 缓冲区分区数,一般配置为质数,并发较大的系统需
要配置这个参数,减少数据缓冲区并发冲突。

静态

DICT_BUF_SIZE

50

字典缓冲区大小,以 M 为单位。系统中对象个数较多时可适当
调大。

静态

WORKER_THREADS

16

工作线程的数目,建议设置为 CPU 核数或其两倍。

静态

MAX_SESSIONS

10000

系统允许同时连接的最大数,同时还受到 LICENSE 的限制,取
二者中较小的值,有效值范围(1~65000)。建议用户按照实
际内存和业务需求来配置。

静态

OLAP_FLAG

2

启用联机分析处理,0:不启用;1:启用;2:不启用,同时
倾向于使用索引范围扫描。OLTP 系统建议设置为 2,OLAP 系
统建议设置为 1。

动态,
会话级

TEMP_SPACE_LIMIT

0

临时表空间大小上限,单位为 MB,如果有大量排序、临时表
操作时可能会占用。关系到磁盘空间占用,建议根据磁盘情况
设置上限。

动态,
系统级

SVR_LOG

0

是否打开 SQL 日志功能,0:关闭;1:打开,并按照
SQLLOG.INI 中的配置来记录 SQL 日志;2:打开,按文件中
记录数量切换日志文件,日志记录为详细模式;3:打开,不
切换日志文件,日志记录为简单模式,只记录时间和原始语句。
建议根据磁盘情况设置,不宜过多。

动态,
系统级

ENABLE_MONITOR

1

用于打开或者关闭系统的监控功能。1:打开;0:关闭。打开
后会对数据库运行情况进行记录,对性能有所损耗,生产环境
建议关闭。

动态,
系统级

ARCH_INI

0

是否启用归档,0:不启用;1:启用。生产环境务必打开,否
则会影响到数据库备份。

动态,
系统

D、数据库死锁历史信息记录 select*from V$DEADLOCK_HISTORY

image.png

E、数据库历史sql执行记录统计V$SQL_HISTORY


image.png

F、数据库历史Session 统计V$SESSION_HISTORY

image.png

五、配置采集任务

image.png

配置达梦监控可视化仪表板

lQLPJxKhPPWKB8bNAr7NBT2wA-t_JxWMHEYEmZKFF4DGAA_1341_702.png

lQLPJxsDpVIfaibNAt_NBUSwkuFKlEYYqwcEmZOiDED0AA_1348_735.png

lQLPJw_cvfqwkqbNAtzNBTqwYcpvjVcTTyYEmZOuR0AwAA_1338_732.png

lQLPJx2txFrROSbNAwPNBT6wc2-zAImH4jcEmZO3IAChAA_1342_771.png

相关文章

ACOS可观测运维套件—容器监控

ACOS可观测运维套件—容器监控

一、简介ACOS统一运维监控平台最新4.0版本支持容器能力,对于容器数据采集成功后会上报到控制台「容器监控」,您可以查看到租户内容器各种对象的数据信息。容器数据有两种查看和分析模式,通过切换页面左上角...

如何将现有 MySQL 数据库平滑升级至 8.0 版本?

如何将现有 MySQL 数据库平滑升级至 8.0 版本?

近几年在信创趋势下,国产数据库和云 RDS 多基于开源 MySQL。随着 MySQL 8.0 版本逐渐受到大家认可,很多企业都表示要升级 MySQL 版本,更好地利用新版本中的高级特性和性能改进。随着...

大数据基础之Hive入门介绍

大数据基础之Hive入门介绍

一、什么是HiveHive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数...

袋鼠云CEO宁海元:打通数智基建到应用的通路,让数据不再“躺灰” | 数据猿专访

袋鼠云CEO宁海元:打通数智基建到应用的通路,让数据不再“躺灰” | 数据猿专访

一家大型制造企业的老板最近心情颇为复杂。几年前,企业投入巨资构建数据存储和治理系统,如今数据确实源源不断地积累,但他发现,这些数据似乎并没有带来预期的业务收益。虽然存储成本逐年攀升,但数据依旧沉睡在系...

云掣科技亮相2024云栖大会,让用云更简单、更安全

云掣科技亮相2024云栖大会,让用云更简单、更安全

2024年云栖大会于9月19日-9月21日召开,今年大会以“云启智跃,产业蝶变”为主题,吸引大模型、自动驾驶、机器人等领域的400多家国内外企业来到现场,共同展示AI时代云上创新的潮流科技。大会设置了...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。