达梦数据库DEM介绍、部署以及使用
时间:2023-02-06 02:30:00
DEM介绍
达梦企业管理器的英文全称 DM Enterprise Manager,简称 DEM
DEM提供通过Web界面来监控、管理并维护达梦数据库的集中式管理平台,可以从任何可以访问Web通过应用的位置DEM对达梦数据库进行各种管理和监控
DEM不仅包括传统的桌面工具和管理工具Manager以及数据迁移工具DTS 还提供集群部署、监控和报警功能
DEM架构
DEM由以下部分组成:
-
DEM 服务器
DEM服务器为DEM应用服务器负责处理客户端工具的功能逻辑并存储dmagent收集到的数据到DEM存储数据库,向客户端显示数据 -
DEM存储数据库
DEM存储数据库DEM的元数据和dmagent收集到的监控数据 -
数据库代理服务(dmagent)
数据库代理服务dmagent在远程机器上部署代理,DEM通过dmagent同时访问远程主机dmagent收集并发送监控信息DEM -
管理和监控数据库实例
DEM部署
DEM与达梦数据库代理(以下简称 dmagent)需要同时部署。dmagent是DEM在远程主机上部署的代理只在主机上启动dmagent,企业管理平台软件可以访问远程主机并监控远程主机的相关信息
DEM部署准备
-
DEM WAR包
其中DEM WAR包在达梦安装目录下/web/dem.war -
Tomcat
https://tomcat.apache.org/download-80.cgi下载对应的Tomcat版本,我选8.5.78 -
JAVA 1.8
需要配置JAVA环境,JAVA 版本必须为 JAVA 1.8 -
达梦数据库
达梦数据库为DEM因此,需要保证后台库DEM所在机器能访问达梦数据库
部署规划
主机 | 数据库名 | 实例名 | 服务ip |
---|---|---|---|
DW2 | dmdb | dmdb | 192.168.65.146 |
DEM | dmdb | dmdb | 192.168.65.145 |
部署后台库
-
以数据库为例DEM后台数据库
这部电影主要讲解DEM,达梦数据库安装及实例创建详见《DM8 安装手册》 -
修改DEM后台数据库dm.ini参数配置
推荐配置:
MEMORY_POOL = 200
BUFFER = 1000
KEEP = 64
SORT_BUF_SIZE = 50
[dmdba@localhost /]$ vi /dmdata/DEMDB/dm.ini [dmdba@localhost /]$ cat /dmdata/DEMDB/dm.ini|grep MEMORY_POOL MEMORY_POOL = 200 #Memory Pool Size In Megabyte [dmdba@localhost /]$ cat /dmdata/DEMDB/dm.ini|grep BUFFER BUFFER = 1000 #Initial System Buffer Size In Megabytes [dmdba@localhost /]$ cat /dmdata/DEMDB/dm.ini|grep KEEP KEEP = 64 #system KEEP buffer size in Megabytes [dmdba@localhost /]$ cat /dmdata/DEMDB/dm.ini|grep SORT_BUF_SIZE SORT_BUF_SIZE = 50 #maximum sort buffer size in Megabytes
- 使用root用户注册数据库服务
[dmdba@localhost /]$ su root 密码: [root@localhost root]# cd /home/dmdba/dmdbms/script/root/ [root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdata/DEMDB/dm.ini -p DEM Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDEM.service to /usr/lib/systemd/system/DmServiceDEM.service. 创建服务(DmServiceDEM)完成
- 启动数据库,查看状态
[root@localhost root]
# systemctl start DmServiceDEM.service
[root@localhost root]
# systemctl status DmServiceDEM.service ● DmServiceDEM
.service
- Dameng Database Service
(DmServiceDEM
)
. Loaded: loaded
(
/usr/lib/systemd/system/DmServiceDEM
.service
; enabled
; vendor preset: disabled
) Active: active
(running
) since Mon 2022-04-11 17:47:36 CST
; 4s ago
Process: 12171 ExecStart=
/home/dmdba/dmdbms/bin/DmServiceDEM
start
(code=exited
, status=0/SUCCESS
) Main PID: 12193
(dmserver
) Tasks: 51 Memory: 302
.5M CGroup:
/system
.slice/DmServiceDEM
.service └─12193
/home/dmdba/dmdbms/bin/dmserver
/dmdata/DEMDB/dm
.ini
-noconsole 4月 11 17:47:21 localhost
.localdomain systemd
[1
]: Starting Dameng Database Service
(DmServiceDEM
)
.
.
.
. 4月 11 17:47:36 localhost
.localdomain DmServiceDEM
[12171
]:
[34B blob
data
] 4月 11 17:47:36 localhost
.localdomain systemd
[1
]: Started Dameng Database Service
(DmServiceDEM
)
.
.
- 在DEM后台库中执行达梦数据库安装目录下的/web/dem_init.sql脚本
#dem_init.sql脚本编码为 UTF-8,请设置 set CHAR_CODE UTF8
[dmdba@localhost root]$ su root
密码:
[root@localhost root]# su dmdba
[dmdba@localhost root]$ cd /home/dmdba/dmdbms/bin
[dmdba@localhost bin]$ ./disql SYSDBA/'"SYSDBA"'@localhost:5236
服务器[localhost:5236]:处于普通打开状态
登录使用时间 : 81.201(ms)
disql V8
SQL> set CHAR_CODE UTF8;
SQL> start /home/dmdba/dmdbms/web/dem._init.sql;
检查Java环境
[dmdba@localhost bin]$ java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment Bisheng (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM Bisheng (build 25.272-b10, mixed mode)
配置tomcat
- 将tomcat压缩包传到服务器并解压
[dmdba@localhost mnt]$ cd /opt/
[dmdba@localhost opt]$ ls
apache-tomcat-8.5.78.zip
[dmdba@localhost opt]$ unzip apache-tomcat-8.5.78.zip
- 在conf/server.xml中追加属性字段追加属性字段 maxPostSize=“-1”
[dmdba@localhost tomcat]$ cd apache-tomcat-8.5.78/conf/
[dmdba@localhost conf]$ vi server.xml
- 修改jvm启动参数
文末添加一行
JAVA_OPTS=“-server -Xms256m -Xmx1024m -Djava.library.path=/home/dmdba/dmdbms/bin”
[dmdba@localhost src]$ cd /opt/tomcat/apache-tomcat-8.5.78/bin/
[dmdba@localhost bin]$ vi catalina.sh
- 将dem.war放到tomcat的webapps目录下
[dmdba@localhost bin]$ cd /home/dmdba/dmdbms/web/
[dmdba@localhost web]$ ls
dem dem_init.sql DEM.pdf demsdk.jar dem.war dem.zip readme.txt
[dmdba@localhost web]$ cp dew.war /opt/tomcat/apache-tomcat-8.5.78/webapps/
- 启动 tomcat
[dmdba@localhost bin]$ su root
密码:
[root@localhost bin]# cd /opt/tomcat/apache-tomcat-8.5.78/bin/
[root@localhost bin]# ./startup.sh
Using CATALINA_BASE: /opt/tomcat/apache-tomcat-8.5.78
Using CATALINA_HOME: /opt/tomcat/apache-tomcat-8.5.78
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.5.78/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/apache-tomcat-8.5.78/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.5.78/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
- 修改DEM连接后台数据库配置文件db.xml
[root@localhost WEB-INF]# cd /opt/tomcat/apache-tomcat-8.5.78/webapps/dem/WEB-INF/
[root@localhost WEB-INF]# vi db.xml
- 重启 tomcat
[root@localhost WEB-INF]# cd /opt/tomcat/apache-tomcat-8.5.78/bin/
[root@localhost bin]# ./shutdown.sh
Using CATALINA_BASE: /opt/tomcat/apache-tomcat-8.5.78
Using CATALINA_HOME: /opt/tomcat/apache-tomcat-8.5.78
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.5.78/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/apache-tomcat-8.5.78/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.5.78/bin/tomcat-juli.jar
Using CATALINA_OPTS:
[root@localhost bin]# ./startup.sh
Using CATALINA_BASE: /opt/tomcat/apache-tomcat-8.5.78
Using CATALINA_HOME: /opt/tomcat/apache-tomcat-8.5.78
Using CATALINA_TMPDIR: /opt/tomcat/apache-tomcat-8.5.78/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/apache-tomcat-8.5.78/bin/bootstrap.jar:/opt/tomcat/apache-tomcat-8.5.78/bin/tomcat-juli.jar
Using CATALINA_OPTS:
Tomcat started.
- 登录验证
打开网页输入地址http://192.168.65.145:8080/dem/
默认用户名和密码:admin/888888
dmagent部署
在要进行监控和管理的机器或数据库所在机器上部署dmagent
dmagent的运行需要依赖JAVA环境,因此部署dmagent前需要配置JAVA环境,JAVA版本必须为JAVA 1.8
要求dmagent和dem所运行主机时间一致;
- 检查JAVA环境
[dmdba@localhost bin]$ java -version
openjdk version "1.8.0_272"
OpenJDK Runtime Environment Bisheng (build 1.8.0_272-b10)
OpenJDK 64-Bit Server VM Bisheng (build 25.272-b10, mixed mode)
- 修改数据库安装目录下/tool/dmagent/agent.ini配置
[root@localhost dmagent]# cd /home/dmdba/dmdbms/tool/dmagent/
[root@localhost dmagent]# vi agent.ini
-
核对 dmagent 和 DEM 所运行机器时间
一般要求dmagent和DEM所运行机器时间一致,最多不要相差5分钟。因为5分钟为dmagent消息的有效时间,即DEM收到dmagent的消息时,如果收到的dmagent发送的消息的时间与DEM运行机器当前时间相差5分钟,则认为该消息无效,不处理该消息。
建议dmagent与DEM所运行机器时间同步 -
使用root用户注册dmagent服务
[root@localhost dmagent]# cd /home/dmdba/dmdbms/tool/dmagent/
[root@localhost dmagent]# ./service.sh install
input agent home [/opt/dmdbms/tool/dmagent] :
input agent.ini path [/opt/dmdbms/tool/dmagent/agent.ini] :
Installation the service DmAgentService completed.
- 使用root用户启动dmagent服务
[root@localhost dmagent]# cd /home/dmdba/dmdbms/tool/dmagent/service/
[root@localhost service]# ls
DmAgentService DmAgentService.pid
[root@localhost service]# ./DmAgentService start
Starting dmagent SUCCESS!
- 验证 DEM 与 dmagent 是否连通
登录DEM选择监控和告警模块的主机,打开主机面板,检查是否可以看到自己部署的dmagent
DEM使用
DEM主要由客户端工具、智能运维以及系统管理模块组成
客户端工具主要由对象管理工具、SQL编辑器、SQL调试、集群部署、数据迁移、数据迁移评估、数据库代理工具组成
其中对象管理工具、SQL编辑器、SQL调试与manager工具功能一致、数据迁移与DTS工具功能一致具体操作可以查看相关文档,这里不做过多介绍
系统管理
系统管理模块主要是由用户管理、角色管理、审计信息以及系统配置组成
DEM中设置了 4 种角色:普通用户、高级用户、管理员以及超级管理员
每创建一个用户,就要给用户指定一个角色,用户角色决定了用户权限
部署DEM时预设的admin为超级管理员,超级管理员只有admin,之后创建的用户只可为普通用户、高级用户或管理员
具体权限可以使用超级管理员登录DEM,在系统管理中的角色管理中查看
创建用户
使用超级管理员或者管理员登陆DEM,在系统管理下的用户管理页面点击添加
输入唯一的登录名与密码、指定角色以及姓名点击确定即可添加成功用户登录后可在DEM工具栏点击最右侧的用户名,修改自己的真实名、邮箱、手机号以及密码等信息
用户禁用与启用
管理员和超级管理员可以在用户管理页面启用或禁用用户,用户被禁用后无法登录DEM管理员和超级管理员可在系统管理中的系统配置中设置账号登录错误次数限制、账号锁定时间以及账号存活时间等安全相关设置
智能运维
DEM监控主要由dmagent 收集数据库或主机信息,发送给DEM服务,DEM 服务将监控信息存储在后台库中,通过检索 DEM 后台库,将监控信息显示到前端
主机监控
DEM在主机监控页面列出监控主机的状态、CPU、内存、磁盘以及网络等信息,并可以通过动作完成统计、分析、配置以及升级等操作。
主机监控页面可以通过系统配置中的参数“页面状态刷新频率”每隔对应时间会自动刷新主机监控信息。在主机监控页面的最右侧会显示最新监测时间,表示所有主机中收到最新的主机信息的时间。
负载统计
统计主机负载的历史信息,可以查看最近一周每个时间点的主机内存、CPU、磁盘IO和网络IO信息,通过这些负载信息,在数据库实例变慢时,可通过该统计信息展示数据库实例所在主机资源的使用情况,从而帮助确认性能问题的根本原因
操作:监控及告警->主机->列表操作栏->下拉按钮->负载统计
磁盘分析
统计磁盘使用的历史信息,可以查看最近一周每个时间点的磁盘使用情况,详细可以查看每个时间点的磁盘分区、每个分区的磁盘使用率、读写 IO 以及整个磁盘的使用率等
操作:监控及告警->主机->列表操作栏->下拉按钮->磁盘分析
自定义监控
除了数据库和主机监控之外,还可以监控其他程序或脚本的执行情况,可以根据实际情况指定要监控的程序或脚本
操作:监控及告警->主机->列表操作栏->下拉按钮->自定义监控
添加自定义监控
自定义监控面板点击添加
指定名称以及程序或脚本路径,点击“确定”即可。
进程监控
除了数据库和主机监控之外,还可以监控其他进程的资源使用情况,根据实际情况指定要监控的进程
操作:监控及告警->主机->列表操作栏->下拉按钮->自定义监控
添加进程监控
进程监控面板点击添加
数据库监控
DEM在数据库监控页面列出监控数据库实例的状态、运行时间、CPU、内存、交换区、会话、事务、等待任务数、磁盘以及网络等信息,并可以通过数据库实例各种分析、配置以及启停等操作
添加数据库监控
在数据库监控页面的工具栏点击添加按钮添加数据库监控,可以选择添加单机或集群
AWR报告
数据库及所在主机的基本信息
数据库及其所在主机的资源使用情况曲线图。包括内存、CPU、网络 IO 和文件 IO反映数据库性能指标的曲线图。包括 TPS(每秒事务数)、QPS(每秒请求数)、DML(每秒操作数,包括插入、更新和删除)、DDL(每秒DDL操作数)、DB等待任务数、DB任务平均等待时间、归档等待任务数和归档任务平均等待时间
数据库会话数和线程数曲线图。包括会话数(总会话和活动会话)以及 DB 线程数
数据库执行 SQL 的统计信息,慢SQL和高频SQL
死锁情况
数据库最近用户异常登录信息
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->AWR报告
表空间分析
用于查看最近一段时间内数据库实例各个表空间的使用情况
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->表空间分析
SQL分析
用于查看最近一段时间内数据库实例执行的 SQL 语句
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->SQL分析
通过工具栏的时间段和类别按钮,可以查看指定时间段的慢SQL、高频SQL和错误SQL。
其中慢SQL、高频SQL和错误SQL的定义分别为:
- 慢SQL为在系统管理中的系统配置中设置“数据库慢SQL界定时间”参数SQL 执行时间超过该时间的SQL 语句
- 高频SQL为执行次数最多的SQL语句。
- 错误SQL即执行出错的SQL语句。
SQL 语句超长表格中会隐藏超长部分,若想查看完整的 SQL 信息或想拷贝 SQL 语句可以双击行数据打开 SQL 详细信息对话框
登录锁定
用于查看最近一段时间内数据库用户登录被锁定的历史记录
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->登录锁定
死锁分析
用于查看最近一段时间内数据库发生死锁的历史记录
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->死锁分析
会话分析
用于查看最近一段时间内数据库实例或组会话数变化情况
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->会话分析
事件分析
用于查看最近一段时间内数据库实例事件等待情况
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->事件分析
自定义 SQL 监控
除了给出的会话、登录和表空间监控之外,还需根据实际情况指定要监控的SQL,该方式可以适用更多的监控场景
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->自定义SQL监控
表数据监控
用于查看数据库的表数据监控信息
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->表数据监控
运行日志监控
用于查看数据库的运行日志监控信息
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->运行日志监控
事务日志监控
用于查看数据库的事务日志监控信息
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->事务日志监控
查看DM.INI
用于查看数据库的实例配置文件信息
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->查看DM.INI
修改DM.INI
用于修改数据库的 DM.INI 配置文件
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->修改DM.INI
联机修改 DM.INI:通过连接数据库,执行SF_SET_SYSTEM_PARA_VALUE(参数名,参数值,0,scope)因此需要给定参数名和参数值,scope格式为参数名=参数值(scope)。
脱机修改 DM.INI:通过访问 DM.INI 文件,直接替换文件中对于INI参数的值,因此需要给定参数名和参数值,格式为参数名=参数值。
启动/停止
用于启动/停止数据库实例
操作:监控及告警->数据库->操作栏->数据库实例下拉按钮->启动/停止
以服务方式启动/停止 :需要给定要启动数据库的服务名
以进程方式启动/停止 :以进程方式启动需要给定相应组件的执行码路径和 ini 文件路径
以上两种方式都可以在监控及告警->数据库->操作栏->数据库实例下拉按钮->编辑,选择浏览选择对应的服务和进程
DEM告警
DEM告警可以使用户主动管理数据库,通过设置各资源的阈值,使在问题严重化之前能及时通知用户,改善用户服务,减少一些不必要的麻烦
创建告警配置
操作:监控及告警->告警配置->添加
- 应用资源配置
选择是监控主机还是数据库
-
告警规则配置
-
通知用户配置
指定通知给哪些用户,以及设置以什么方式通知给用户
完成
查看告警状态和历史
告警信息记录会一直保留,用户可以通过告警历史对话框查看
操作:监控及告警->监控及告警->操作栏->告警历史