DEM 以 Web 应用的方式提供数据库管理、监控和维护的功能,实现远程管理和监控数据库实例,并且不局限于单个数据库实例的管理和监控,也能够对数据库集群(DM MPP、DMDSC 以及数据守护)进行管理和监控。
- 管理对象层
管理对象层由所需监控的对象组成,包括需要监控的主机、主机上的数据库、以及运行在主机上的一个dmagent。每个运行在主机上的 dmagent负责收集自己的主机以及主机上运行的所有数据库的运行数据信息。DEM 通过 dmagent 访问和操作主机以及主机上的数据库实例。
- 应用层
应用处理模块包括存储数据库、数据存/取模块、监控信息展示模块、告警模块、系统管理模块以及客户端工具六大模块。
- 存储数据库
存储数据库主要完成监控数据的存储。
- 数据存/取模块
数据存/取模块负责将各个主机上的代理服务发送过来的监控数据存入数据库,以及从数据库中检索数据给其他模块提供支持。
- 监控信息展示模块
监控信息展示模块负责组织整理监控信息,以表格或图形等多种便于用户查看的样式提供信息的展示,此外还对同属于一个集群系统的数据库进行分组管理和数据统计。
- 告警模块
告警模块负责提供告警策略的配置、对异常状态的检测以及告警信息的发布。
- 系统管理模块
系统管理模块负责对系统的统一管理,包括各种监控频率的控制、用户管理、权限管理、安全审计以及日志记录等。
- 客户端工具
客户端工具包括管理工具 Manager、数据迁移工具以及集群的部署工具等工具。
- 访问层
访问层为终端用户的远程系统访问,系统采用了 B/S 架构,用户的访问主要通过基于http 协议的浏览器请求来完成。
DEM 所提供的功能如下:
- 对象管理
- 数据迁移
- 集群管理
- 联机大盘
- 联机巡检
- 批量执行
- 升级管理
- 资源监控
- 告警配置
- 自动巡检
- 备份调度
- 自定义监控
- 资源包
- 系统管理
$ /mnt/DMInstall.bin -i
$/dm8/bin/dminit path=/dm8/data EXTENT_SIZE=16 PAGE_SIZE=32 case_sensitive=1 charset=1 log_size=2048 db_name=DAMENG instance_name=DMSERVER PORT_NUM=5236 LENGTH_IN_CHAR=1 BLANK_PAD_MODE=0 SYSDBA_PWD="SYSDBA2023" SYSAUDITOR_PWD="SYSDBA2023"
export DM_HOME=/dm8
export PATH=$DM_HOME/bin:$PATH:$DM_HOME/tool:$PATH:HOME/bin:/usr/local/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin
export PATH=/usr/bin/java:$PATH
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0
export PATH=$JAVA_HOME/bin:$PATH
-
-
修改dm.ini参数配置
-
MEMORY_POOL = 1000
BUFFER = 32000
KEEP = 64
SORT_BUF_SIZE = 100
运行dem_init.sql脚本,运行后会在元数据库中创建DEM模式及相关的元数据
SQL> set char_code utf8;
SQL> start dem_init.sql
# chown -R dmdba:dinstall /opt/apache-tomcat-9.0.37/
# chmod -R 775 /opt/apache-tomcat-9.0.37/
# vi /opt/apache-tomcat-9.0.37/conf/server.xml
# 找到Connector port="8080",添加maxPostSize="-1"
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="-1" />
修改jvm启动参数
Linux:
vi /opt/apache-tomcat-9.0.37/bin/catalina.sh中添加:
JAVA_OPTS="-server -Xms1024m -Xmx2048m -Djava.library.path=/dm8/bin"
将 dem.war 放到 tomcat 的 webapps 目录下
su - dmdba
$ cp /soft/dem/dem.war /opt/apache-tomcat-9.0.37/webapps
$ unzip -oq dem.war -d dem
根据实际情况修改数据库版本、数据库IP地址、数据库端口号、数据库用户名及密码,修改后如下:
$ vi /opt/apache-tomcat-9.0.37/webapps/dem/WEB-INF/db.xml
<?xml version="1.0" encoding="UTF-8"?>
<ConnectPool>
<Server>84.0.191.5</Server>
<Port>5236</Port>
<User>SYSDBA</User>
<Password>SYSDBA2023</Password>
<InitPoolSize>5</InitPoolSize>
<CorePoolSize>10</CorePoolSize>
<MaxPoolSize>500</MaxPoolSize>
<KeepAliveTime>60</KeepAliveTime>
<DbDriver></DbDriver>
<DbTestStatement>select 1</DbTestStatement>
<SSLDir>../sslDir/client_ssl/SYSDBA</SSLDir>
<SSLPassword></SSLPassword>
</ConnectPool>
$ cd /opt/apache-tomcat-9.0.37/bin/
$ chmod 775 *.sh
## 注意防火墙关闭
$ cd /opt/apache-tomcat-9.0.37/bin
$ ./startup.sh
打开浏览器输入
http://84.0.191.5:8080/dem
默认用户密码是admin/888888,登录后可根据需要自行修改。
在要进行监控和管理的机器或数据库所在机器上部署 dmagent的运行需要依赖JAVA环境,因此部署dmagent前需要配置JAVA环境,JAVA版本必须为JAVA1.8。
监控数据库主机或数据库需要在被监控的服务器上启动dmagent服务。
注意:要求agent和dem所运行主机时间一致,尽量不要有差距,否则可能无法正常监控
vi /opt/dmagent7.15/agent.ini
center_url = http://84.0.191.5:8080/dem #DEM 访问地址
gather_enable=true #开启收集监控数据功能,默认打开
service_enable=true #开启远程调用功能,部署时需要打开
vi .bash_profile
export JAVA_HOME=/opt/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
. .bash_profile
若要部署集群并创建系统服务,在Linux(Unix)环境下应以root用户运行dmagent,在 Windows 环境下应以 Administrator 用户运行 dmagent。
#Linux
# ./start.sh -d /opt/dmagent7.15/agent.ini
Starting dmagent.....
dmagent(pid: 59684) started successfully.
类型 | 主机名 | 业务IP | 数据库名 | 实例名 | 操作系统 |
主库 | dm8db01 | 84.0.191.50 | DAMENG | EP01 | Kylin-Server-V10-SP3 |
备库 | dm8db02 | 84.0.191.51 | DAMENG | EP02 | Kylin-Server-V10-SP3 |
监控 | dm8monitor | 10.10.10.52 | Kylin-Server-V10-SP3 |
实例名 | PORT_NUM | MAL_INST_DW_PORT | MAL_HOST | MAL_PORT | MAL_DW_PORT |
EP01 | 7236 | 7436 | 10.10.10.50 | 7336 | 7536 |
EP02 | 7236 | 7436 | 10.10.10.51 | 7336 | 7536 |
$ cd /dm8/dmwatcher4_0/bin
$./DmWatcherServiceEP01.sh start
$ cd /dm8/dmwatcher4_0/bin
$ ./DmWatcherServiceEP02.sh start
$ /dm8/dmwatcher4_0/bin/dmmonitor /dm8/dmwatcher4_0/dmmonitor/dmmonitor.ini
$ cat /dm8/dmwatcher4_0/EP01/DAMENG/dm.ini
INSTANCE_NAME = EP01 #实例名
PORT_NUM = 7236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间
MAL_INI = 1 #打开MAL系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志发送信息
-
-
-
-
dmmal.ini配置信息
-
-
-
$ cat /dm8/dmwatcher4_0/EP01/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL= 30
MAL_CONN_FAIL_INTERVAL= 10
MAL_LOGIN_TIMEOUT= 15
MAL_BUF_SIZE= 100
MAL_SYS_BUF_SIZE= 0
MAL_VPOOL_SIZE= 128
MAL_COMPRESS_LEVEL= 0
[MAL_INST1]
MAL_INST_NAME= EP01
MAL_HOST= 84.0.191.50
MAL_PORT= 7336
MAL_INST_HOST= 84.0.191.50
MAL_INST_PORT= 7236
MAL_DW_PORT= 7536
MAL_INST_DW_PORT= 7436
[MAL_INST2]
MAL_INST_NAME= EP02
MAL_HOST= 84.0.191.51
MAL_PORT= 7336
MAL_INST_HOST= 84.0.191.51
MAL_INST_PORT= 7236
MAL_DW_PORT= 7536
MAL_INST_DW_PORT= 7436
-
-
-
-
dmarch.ini配置信息
-
-
-
$ cat /dm8/dmwatcher4_0/EP01/DAMENG/dmarch.ini
ARCH_WAIT_APPLY= 0
ARCH_RESERVE_TIME= 0
[ARCHIVE_LOCAL1]
ARCH_TYPE= LOCAL
ARCH_DEST= /dm8/dmwatcher4_0/EP01/DAMENG/arch
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
[ARCHIVE_REALTIME1]
ARCH_TYPE= REALTIME
ARCH_DEST= EP02
-
-
-
-
dmwatcher.ini配置信息
-
-
-
$cat /dm8/dmwatcher4_0/dmwatcher/EP01/dmwatcher.ini
[GRP]
DW_TYPE= GLOBAL
DW_MODE= MANUAL
DW_ERROR_TIME= 15
INST_RECOVER_TIME= 60
INST_ERROR_TIME= 15
INST_OGUID= 1447561796
INST_INI= /dm8/dmwatcher4_0/EP01/DAMENG/dm.ini
INST_AUTO_RESTART= 1
INST_STARTUP_CMD= /dm8/dmwatcher4_0/bin/DmServiceEP01.sh start
INST_SERVICE_IP_CHECK= 0
RLOG_SEND_THRESHOLD= 0
RLOG_APPLY_THRESHOLD= 0
$ cat /dm8/dmwatcher4_0/EP02/DAMENG/dm.ini
INSTANCE_NAME = EP02 #实例名
PORT_NUM = 7236 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间
MAL_INI = 1 #打开MAL系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志发送信息
-
-
-
-
dmmal.ini配置信息
-
-
-
$ cat /dm8/dmwatcher4_0/EP02/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL= 30
MAL_CONN_FAIL_INTERVAL= 10
MAL_LOGIN_TIMEOUT= 15
MAL_BUF_SIZE= 100
MAL_SYS_BUF_SIZE= 0
MAL_VPOOL_SIZE= 128
MAL_COMPRESS_LEVEL= 0
[MAL_INST1]
MAL_INST_NAME= EP01
MAL_HOST= 84.0.191.50
MAL_PORT= 7336
MAL_INST_HOST= 84.0.191.50
MAL_INST_PORT= 7236
MAL_DW_PORT= 7536
MAL_INST_DW_PORT= 7436
[MAL_INST2]
MAL_INST_NAME= EP02
MAL_HOST= 84.0.191.51
MAL_PORT= 7336
MAL_INST_HOST= 84.0.191.51
MAL_INST_PORT= 7236
MAL_DW_PORT= 7536
MAL_INST_DW_PORT= 7436
-
-
-
-
dmarch.ini配置信息
-
-
-
$ cat /dm8/dmwatcher4_0/EP02/DAMENG/dmarch.ini
ARCH_WAIT_APPLY= 0
ARCH_RESERVE_TIME= 0
[ARCHIVE_LOCAL1]
ARCH_TYPE= LOCAL
ARCH_DEST= /dm8/dmwatcher4_0/EP02/DAMENG/arch
ARCH_FILE_SIZE= 128
ARCH_SPACE_LIMIT= 0
[ARCHIVE_REALTIME1]
ARCH_TYPE= REALTIME
ARCH_DEST= EP01
-
-
-
-
dmwatcher.ini配置信息
-
-
-
$cat /dm8/dmwatcher4_0/dmwatcher/EP02/dmwatcher.ini
[GRP]
DW_TYPE= GLOBAL
DW_MODE= MANUAL
DW_ERROR_TIME= 15
INST_RECOVER_TIME= 60
INST_ERROR_TIME= 15
INST_OGUID= 1447561796
INST_INI= /dm8/dmwatcher4_0/EP02/DAMENG/dm.ini
INST_AUTO_RESTART= 1
INST_STARTUP_CMD= /dm8/dmwatcher4_0/bin/DmServiceEP02.sh start
INST_SERVICE_IP_CHECK= 0
RLOG_SEND_THRESHOLD= 0
RLOG_APPLY_THRESHOLD= 0