注册
DM8 DSC 单机双实例部署报告及问题记录
专栏/技术分享/ 文章详情 /

DM8 DSC 单机双实例部署报告及问题记录

济楚 2026/07/24 59 0 0
摘要

1. 部署说明

本次在一台 CentOS 7 虚拟机上,使用 DEM 自动搭建一套 DM8 数据共享集群(DSC)。集群采用单机双实例方式,用于学习 DSC 结构、共享存储、实例启停及 DEM 监控流程。

该环境不具备真正的主机级高可用能力。两个数据库实例、两个 DMCSS、两个 DMASM 均运行在同一台虚拟机上,适合功能验证,不适用于生产环境。

最终部署结果:

  • DSC01、DSC02 均正常启动;
  • CSS01、CSS02 均为 OPEN / WORKING / OK / TRUE
  • ASM01、ASM02 均为 OPEN / WORKING / OK / TRUE
  • DSC01、DSC02 均为 OPEN / WORKING / OK / TRUE
  • 双实例共享数据读写测试通过;
  • 单实例停止与恢复测试通过;
  • DEM 主机监控和 CSSM 监控正常;

2. 环境信息

2.1 主机信息

操作系统:CentOS Linux 7
CPU:6 核
内存:约 13.5 GB
DEM 后台库:127.0.0.1:5236
DEM 管理平台:http://127.0.0.1:32156
DM 安装目录:/dm8
DSC 工作目录:/opt/DMDeploy
标准 dmagent:/dm8/tool/dmagent

主机包含两张网卡:

eth0:192.168.200.167/24
eth1:192.168.201.73/24

在 DEM 中最终配置为:

外网 IP:192.168.201.73
内网 IP:192.168.200.167

2.2 磁盘规划

/dev/vdb  500 MB  DCR 磁盘
/dev/vdc  500 MB  VOTE 磁盘
/dev/vdd   20 GB  日志磁盘
/dev/vde   50 GB  数据磁盘

最终固定设备路径:

/dev/dm-dsc/dcr   -> /dev/vdb
/dev/dm-dsc/vote  -> /dev/vdc
/dev/dm-dsc/log   -> /dev/vdd
/dev/dm-dsc/data  -> /dev/vde

3. 部署前检查

3.1 检查系统资源

lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT free -h nproc

检查结果:

  • 内存满足实验要求;
  • CPU 为 6 核;
  • 系统盘剩余空间充足;
  • /dev/vdb/dev/vdc/dev/vdd/dev/vde 为未分区块设备。

3.2 检查 DSC 相关程序

ls -lh \ /dm8/bin/dmcss \ /dm8/bin/dmcssm \ /dm8/bin/dmasmsvr \ /dm8/bin/dmasmcmd \ /dm8/bin/dmasmtool \ /dm8/bin/dminit \ /dm8/bin/dmserver

检查数据库版本:

/dm8/bin/dmserver -version

dmserver 不支持直接使用 -version,但会输出版本及帮助信息,可确认程序版本和 DSC 参数支持情况。

3.3 检查许可证

su - dmdba disql SYSDBA/'<DEM后台库密码>'@127.0.0.1:5236
select * from v$license; exit;

当前为开发授权,能够进行 DSC 实验。

3.4 检查块设备是否被占用

最初使用 dmdba 执行以下命令时出现权限不足:

wipefs -n /dev/vdb fdisk -l /dev/vdb

报错:

Permission denied

切换为 root 后重新检查:

wipefs -n /dev/vdb wipefs -n /dev/vdc wipefs -n /dev/vdd wipefs -n /dev/vde blkid /dev/vdb /dev/vdc /dev/vdd /dev/vde fdisk -l /dev/vdb fdisk -l /dev/vdc fdisk -l /dev/vdd fdisk -l /dev/vde findmnt -S /dev/vdb findmnt -S /dev/vdc findmnt -S /dev/vdd findmnt -S /dev/vde mount | grep -E '/dev/vdb|/dev/vdc|/dev/vdd|/dev/vde'

以上命令未发现文件系统、挂载点或已有分区。

检查进程占用时发现系统没有 fuser

yum install -y psmisc

继续检查:

fuser -v /dev/vdb /dev/vdc /dev/vdd /dev/vde pvs 2>/dev/null vgs 2>/dev/null lvs 2>/dev/null swapon --show dmsetup ls 2>/dev/null

检查结果:

  • 四块磁盘无进程占用;
  • 不属于 LVM;
  • 不属于 swap;
  • 未被 device-mapper 使用。

4. 配置固定块设备路径

4.1 获取设备固定属性

for disk in vdb vdc vdd vde do echo "================ /dev/${disk} ================" udevadm info --query=property --name=/dev/${disk} | grep -E '^(DEVNAME|DEVPATH|ID_SERIAL|ID_SERIAL_SHORT|ID_PATH|ID_WWN|MAJOR|MINOR)=' done

四块 VirtIO 磁盘没有可用的 ID_SERIAL,因此使用 ID_PATH 编写 udev 规则:

vdb:pci-0000:07:00.0
vdc:pci-0000:08:00.0
vdd:pci-0000:09:00.0
vde:pci-0000:0a:00.0

4.2 创建 udev 规则

RULE_FILE=/etc/udev/rules.d/99-dm-dsc.rules if [ -f "$RULE_FILE" ]; then cp -a "$RULE_FILE" "${RULE_FILE}.bak.$(date +%Y%m%d%H%M%S)" fi cat > /etc/udev/rules.d/99-dm-dsc.rules <<'RULE' SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="pci-0000:07:00.0", SYMLINK+="dm-dsc/dcr", OWNER="dmdba", GROUP="dinstall", MODE="0660" SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="pci-0000:08:00.0", SYMLINK+="dm-dsc/vote", OWNER="dmdba", GROUP="dinstall", MODE="0660" SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="pci-0000:09:00.0", SYMLINK+="dm-dsc/log", OWNER="dmdba", GROUP="dinstall", MODE="0660" SUBSYSTEM=="block", ENV{DEVTYPE}=="disk", ENV{ID_PATH}=="pci-0000:0a:00.0", SYMLINK+="dm-dsc/data", OWNER="dmdba", GROUP="dinstall", MODE="0660" RULE

重新加载规则:

udevadm control --reload-rules udevadm trigger --action=change --sysname-match=vdb udevadm trigger --action=change --sysname-match=vdc udevadm trigger --action=change --sysname-match=vdd udevadm trigger --action=change --sysname-match=vde udevadm settle

验证:

ls -l /dev/dm-dsc for disk in dcr vote log data do printf '%-8s -> %s\n' \ "$disk" \ "$(readlink -f /dev/dm-dsc/$disk)" done ls -lL \ /dev/dm-dsc/dcr \ /dev/dm-dsc/vote \ /dev/dm-dsc/log \ /dev/dm-dsc/data

检查容量:

for disk in dcr vote log data do echo -n "/dev/dm-dsc/${disk}: " blockdev --getsize64 "/dev/dm-dsc/${disk}" done

检查 dmdba 读写权限:

su - dmdba -c ' for disk in dcr vote log data do dev="/dev/dm-dsc/${disk}" if [ -b "$dev" ] && [ -r "$dev" ] && [ -w "$dev" ]; then echo "$dev:块设备存在,dmdba 具备读写权限" else echo "$dev:检查失败" fi done '

5. 配置标准 dmagent

5.1 区分 DEM 内置 Agent 与标准 Agent

DEM 安装目录中存在:

/home/dmdba/dmdem/webapp/dmagent

最初尝试直接启动该目录下的 start.sh,只返回使用帮助,因为该目录没有完整的 agent.ini,不适合作为当前主机的标准采集代理。

继续查找:

find /dm8 -type f -name 'agent.ini' -print

最终使用:

/dm8/tool/dmagent

该目录包含:

agent.ini
start.sh
service.sh
lib/
resources/

5.2 修改 Agent 配置

cd /dm8/tool/dmagent cp -a agent.ini \ "agent.ini.bak.$(date +%Y%m%d-%H%M%S)"

修改 DEM 地址和 DM 程序目录:

sed -i \ 's#^[[:space:]]*center_url[[:space:]]*=.*# center_url = http://127.0.0.1:32156#' \ agent.ini sed -i \ 's#^[[:space:]]*dm_bin_path[[:space:]]*=.*# dm_bin_path = /dm8/bin#' \ agent.ini

检查关键参数:

grep -nE \ '^[[:space:]]*(center_url|ip_list|dm_bin_path|ap_enable|ap_port|service_enable|service_port|gather_enable|gather_center_servlet)[[:space:]]*=' \ agent.ini

最终关键配置:

center_url = http://127.0.0.1:32156 ip_list = [] dm_bin_path = /dm8/bin ap_enable = true ap_port = 6363 service_enable = true service_port = 6364 gather_enable = true gather_center_servlet = /dem/dma_agent

验证 DEM 接收接口:

for path in "/" "/dem/" "/dem/dma_agent" "/dma_agent" do code=$(curl -sS -o /dev/null -w '%{http_code}' \ "http://127.0.0.1:32156${path}") echo "${path} -> HTTP ${code}" done

结果:

/ -> HTTP 200
/dem/ -> HTTP 404
/dem/dma_agent -> HTTP 200
/dma_agent -> HTTP 404

5.3 生成 service.key

最初在 DEM 内置 Agent 目录中生成过一次 service.key,但标准 Agent 不会自动使用该文件。因此在 /dm8/tool/dmagent 中重新生成:

cd /dm8/tool/dmagent ./start.sh INSTALL_SERVICE_KEY '<DEM_SERVICE_KEY>'

检查:

ls -l /dm8/tool/dmagent/service.key

5.4 启动 dmagent

cd /dm8/tool/dmagent ./start.sh -d /dm8/tool/dmagent/agent.ini sleep 10

检查进程:

./start.sh -l ps -ef | grep '[c]om.dameng.agent.Agent'

检查端口:

ss -lntp | grep -E ':(6363|6364)\b'

Agent 成功监听:

6363:AP 插件端口
6364:RPC 服务端口

6. 处理 DEM 中主机可见但无法选择的问题

6.1 问题现象

监控 → 主机 页面能够看到 dujingying,但在:

部署 → 集群搭建 → 环境准备

页面中找不到该主机。

6.2 原因

主机监控数据已经通过 gather_enable 上报,但多网卡主机尚未在 DEM 中明确外网和内网地址,部署功能无法确定使用哪个主机对象进行远程调用。

6.3 处理

在 DEM 中为主机配置网络:

外网 IP:192.168.201.73
内网 IP:192.168.200.167

保存后重新进入集群搭建页面,主机能够正常被选择。


7. 使用 DEM 自动搭建 DSC

7.1 新建任务

集群搭建名称:DSC_SINGLE_HOST
分组:未分组
描述:单机双实例 DSC 学习测试环境
集群类型:数据共享集群

7.2 实例规划

部署名称:dmdsc
存在裸/块设备:勾选
清空裸/块设备目录:不勾选
开启 ASM 镜像:不勾选
裸/块设备目录:/dev/dm-dsc
部署 DMAP:勾选
DMAP 端口:4237
注册服务:勾选
工作目录:/opt/DMDeploy

现有 /dm8/bin/dmap 已占用 4236,因此新集群 DMAP 使用 4237

实例端口规划:

DSC01:
  数据库端口:7236
  数据库 MAL:7336
  ASM MAL:7636
  ASM DCR:7736
  CSS DCR:7836

DSC02:
  数据库端口:7237
  数据库 MAL:7337
  ASM MAL:7637
  ASM DCR:7737
  CSS DCR:7837

执行前检查端口:

for p in \ 4237 \ 7236 7237 \ 7336 7337 \ 7636 7637 \ 7736 7737 \ 7836 7837 do if ss -lntH | awk '{print $4}' | grep -qE ":${p}$"; then echo "端口 ${p}:已占用" else echo "端口 ${p}:可用" fi done

全部端口均可用。

7.3 dmdcr_cfg.ini

关键配置:

DCR_VTD_PATH=/dev/dm-dsc/vote DCR_OGUID=1482207627

需要注意:

DCR_VTD_PATH 使用 VOTE 磁盘;
DMDCR_PATH 才使用 DCR 磁盘。

最终实际生成的 DCR 通信地址为:

CSS01:192.168.200.167:7836
CSS02:192.168.200.167:7837
ASM01:192.168.200.167:7736
ASM02:192.168.200.167:7737

7.4 dmasvrmal.ini

ASM01:192.168.201.73:7636 ASM02:192.168.201.73:7637

7.5 dmdcr.ini

DSC01:

DMDCR_PATH=/dev/dm-dsc/dcr DMDCR_SEQNO=0 DMDCR_MAL_PATH=/opt/DMDeploy/dmdsc/data/DSC01/dmasvrmal.ini

DSC02:

DMDCR_PATH=/dev/dm-dsc/dcr DMDCR_SEQNO=1 DMDCR_MAL_PATH=/opt/DMDeploy/dmdsc/data/DSC02/dmasvrmal.ini

自动重启时间保持为 0

DMDCR_ASM_RESTART_INTERVAL=0 DMDCR_DB_RESTART_INTERVAL=0

7.6 磁盘组与数据库文件

日志磁盘组:DMLOG
共享磁盘:/dev/dm-dsc/log

数据磁盘组:DMDATA
共享磁盘:/dev/dm-dsc/data

数据库文件:

SYSTEM:+DMDATA/data/DAMENG/system.dbf
ROLL:+DMDATA/data/DAMENG/roll.dbf
MAIN:+DMDATA/data/DAMENG/main.dbf
控制文件:+DMDATA/data/DAMENG/dm.ctl

联机日志:

+DMLOG/log/DSC01_log1.log
+DMLOG/log/DSC01_log2.log
+DMLOG/log/DSC02_log1.log
+DMLOG/log/DSC02_log2.log

日志文件大小由默认 4096 MB 调整为 1024 MB,避免 4 个日志文件占用过多 20 GB 日志盘空间。

7.7 dm.key

检查现有授权文件:

find /dm8 -maxdepth 3 -type f -name 'dm.key' -ls ls -l /dm8/bin/dm.key /dm8/dm.key 2>/dev/null

未找到 dm.key,因此 DEM 页面选择:

不配置文件

7.8 数据库初始化参数

数据库名:DAMENG
字符集:GB18030
页大小:8 KB
簇大小:16 页
日志文件大小:1024 MB
时区:+08:00
大小写敏感:是
改进字符串 HASH:是
归档:不启用

本次 SYSDBA 和 SYSAUDITOR 使用同一实验口令。

7.9 dm.ini

DSC01:

INSTANCE_NAME=DSC01 PORT_NUM=7236 EXTERNAL_AP_PORT=4237 MAL_INI=1 ARCH_INI=0 MPP_INI=0 ALTER_MODE_STATUS=0

DSC02:

INSTANCE_NAME=DSC02 PORT_NUM=7237 EXTERNAL_AP_PORT=4237 MAL_INI=1 ARCH_INI=0 MPP_INI=0 ALTER_MODE_STATUS=0

7.10 dmmal.ini

[MAL_INST_DSC01] MAL_INST_NAME=DSC01 MAL_HOST=192.168.201.73 MAL_PORT=7336 MAL_INST_HOST=192.168.201.73 MAL_INST_PORT=7236 [MAL_INST_DSC02] MAL_INST_NAME=DSC02 MAL_HOST=192.168.201.73 MAL_PORT=7337 MAL_INST_HOST=192.168.201.73 MAL_INST_PORT=7237

7.11 dmarch.ini

本次不配置归档:

配置归档:不勾选
ARCH_INI=0

7.12 DMCSSM

添加一个监视器:

监视器名:CSSM01
主机:192.168.201.73
工作目录:/opt/DMDeploy
启动监视器:勾选

最终实际 dmcssm.ini

CSSM_OGUID=1482207627 CSSM_CSS_IP=192.168.200.167:7836 CSSM_CSS_IP=192.168.200.167:7837 CSSM_LOG_FILE_SIZE=64 CSSM_LOG_SPACE_LIMIT=0

7.13 服务器执行码

检查执行程序:

ls -l \ /dm8/bin/dmserver \ /dm8/bin/dminit \ /dm8/bin/dmcss \ /dm8/bin/dmasmsvr \ /dm8/bin/dmcssm \ /dm8/bin/dmap

DEM 中选择:

各个主机配置已存在的文件路径
服务器执行码目录:/dm8/bin

7.14 执行部署

最终确认设备:

for disk in dcr vote log data do printf '%-5s -> %-9s size=' \ "$disk" \ "$(readlink -f /dev/dm-dsc/$disk)" blockdev --getsize64 "/dev/dm-dsc/$disk" done

确认后在 DEM 中执行:

详情总览 → 下一步 → 创建并执行任务

执行结果:

任务总数:35
已完成:35
出错:0
取消:0
剩余:0

8. 部署后验证

8.1 检查服务

systemctl is-active \ DmCSSService_DSC01 \ DmCSSService_DSC02 \ DmASMSvrService_DSC01 \ DmASMSvrService_DSC02 \ DmService_DSC01 \ DmService_DSC02 \ DmCSSMonitorService_CSSM01 \ DmAPService_dmdsc

全部返回:

active

8.2 检查进程

ps -eo pid,user,args | grep -E \ '[d]mcss|[d]masmsvr|[d]mserver|[d]mcssm|[d]map'

能够看到:

2 个 dmcss
2 个 dmasmsvr
2 个 DSC dmserver
1 个 dmcssm
1 个 DSC dmap

此外系统中还保留:

原 DMAP:/dm8/bin/dmap,端口 4236
DEM 后台库:/dm8/bin/dmserver,端口 5236

8.3 检查端口

ss -lntp | grep -E \ ':(4237|7236|7237|7336|7337|7636|7637|7736|7737|7836|7837)\b'

所有规划端口均处于监听状态。

8.4 登录数据库

su - dmdba disql SYSDBA/'<SYSDBA密码>'@192.168.201.73:7236
select instance_name,status$ from v$instance; select name,status$ from v$database; exit;

结果:

DSC01  OPEN
DAMENG  4

验证 DSC02:

disql SYSDBA/'<SYSDBA密码>'@192.168.201.73:7237
select instance_name,status$ from v$instance; select name,status$ from v$database; exit;

结果:

DSC02  OPEN
DAMENG  4

8.5 使用 DMCSSM 检查集群

su - dmdba -c " printf 'show\nexit\n' | timeout 20 /opt/DMDeploy/dmdsc/bin/dmcssm \ ini_path=/opt/DMDeploy/dmdsc/CSSM01/dmcssm.ini "

正常状态:

CSS01、CSS02:OPEN / WORKING / OK / TRUE
ASM01、ASM02:OPEN / WORKING / OK / TRUE
DSC01、DSC02:OPEN / WORKING / OK / TRUE

9. 共享数据一致性测试

9.1 DSC01 创建测试表并写入

disql SYSDBA/'<SYSDBA密码>'@192.168.201.73:7236
select instance_name,status$ from v$instance; create table DSC_TEST ( ID int primary key, SOURCE_INST varchar(30), TEST_TIME datetime ); insert into DSC_TEST values (1,'WRITE_FROM_DSC01',sysdate); commit; select * from DSC_TEST; exit;

DSC01 成功写入第一条记录。

9.2 DSC02 查询并写入

disql SYSDBA/'<SYSDBA密码>'@192.168.201.73:7237
select instance_name,status$ from v$instance; select * from DSC_TEST; insert into DSC_TEST values (2,'WRITE_FROM_DSC02',sysdate); commit; select * from DSC_TEST order by ID; exit;

DSC02 能查询到 DSC01 写入的数据,并成功写入第二条记录。

9.3 返回 DSC01 验证

disql SYSDBA/'<SYSDBA密码>'@192.168.201.73:7236
select instance_name from v$instance; select * from DSC_TEST order by ID; exit;

最终两个实例均能看到:

1  WRITE_FROM_DSC01
2  WRITE_FROM_DSC02

测试结论:

  • 两个实例访问同一套共享数据库文件;
  • 事务提交后数据可被另一实例读取;
  • 共享存储和实例间协调正常。

10. 单实例停止与恢复测试

10.1 停止 DSC02

systemctl stop DmService_DSC02 sleep 5 systemctl is-active DmService_DSC01 systemctl is-active DmService_DSC02

结果:

DmService_DSC01:active
DmService_DSC02:inactive

10.2 查看集群状态

su - dmdba -c " printf 'show\nexit\n' | timeout 20 /opt/DMDeploy/dmdsc/bin/dmcssm \ ini_path=/opt/DMDeploy/dmdsc/CSSM01/dmcssm.ini "

结果:

DSC01:OPEN / WORKING / OK / TRUE
DSC02:SHUTDOWN / STOP / ERROR / FALSE

CSS 和 ASM 双节点仍保持正常。

10.3 验证 DSC01 仍可访问

su - dmdba -c " /dm8/bin/disql SYSDBA/'<SYSDBA密码>'@192.168.201.73:7236 <<'SQL' select instance_name,status$ from v\$instance; select * from DSC_TEST order by ID; exit; SQL "

DSC01 仍可正常查询两条测试数据。

10.4 恢复 DSC02

systemctl start DmService_DSC02 sleep 10 systemctl is-active DmService_DSC02

再次执行 DMCSSM:

su - dmdba -c " printf 'show\nexit\n' | timeout 20 /opt/DMDeploy/dmdsc/bin/dmcssm \ ini_path=/opt/DMDeploy/dmdsc/CSSM01/dmcssm.ini "

恢复结果:

DSC01:OPEN / WORKING / OK / TRUE
DSC02:OPEN / WORKING / OK / TRUE

测试结论:

  • 停止一个数据库实例后,另一个实例仍能提供服务;
  • 停止的实例可以正常重新加入集群;
  • 该测试验证的是单机内实例级可用性,不代表主机级容灾。

11. 问题记录

11.1 非 root 用户无法检查裸设备

现象:

wipefs: probing initialization failed: Permission denied
fdisk: cannot open /dev/vdb: Permission denied

原因:

块设备检查需要 root 权限。

处理:

exit whoami

切换为 root 后重新执行 wipefsfdiskfindmntfuser 等检查。


11.2 系统没有 fuser 命令

现象:

-bash: fuser: command not found

处理:

yum install -y psmisc

安装后继续检查设备占用。


11.3 块设备没有稳定的 by-id 名称

现象:

/dev/disk/by-id 中没有对应链接,udevadm 也未返回序列号。

处理:

使用 ID_PATH 编写 udev 规则,创建:

/dev/dm-dsc/dcr
/dev/dm-dsc/vote
/dev/dm-dsc/log
/dev/dm-dsc/data

11.4 误用 DEM 内置 dmagent

现象:

/home/dmdba/dmdem/webapp/dmagent

目录存在 start.sh,但没有完整 agent.ini。直接执行后只显示使用帮助,无法作为标准主机代理运行。

处理:

find /dm8 -type f -name 'agent.ini' -print

改用:

/dm8/tool/dmagent

11.5 start.sh 无执行权限

现象:

-bash: ./start.sh: Permission denied

处理:

chmod 755 start.sh

11.6 start.sh -h 被识别为配置文件

现象:

执行:

cd /dm8/tool/dmagent ./start.sh -h

Agent 没有显示帮助,而是在日志中记录:

ini file(-h) not exists

原因:

当前版本 start.sh 没有通用 -h 帮助参数,位置参数会被当作 agent.ini 路径处理。

处理:

通过查看脚本、直接执行无参数命令及使用以下命令确认启动方式:

./start.sh -l ./start.sh -d /dm8/tool/dmagent/agent.ini

该历史错误不影响后续 Agent 运行。


11.7 service.key 生成在错误目录

现象:

最初在 DEM Web 内置 Agent 目录生成了 service.key,标准 Agent 无法直接使用。

处理:

在标准目录重新生成:

cd /dm8/tool/dmagent ./start.sh INSTALL_SERVICE_KEY '<DEM_SERVICE_KEY>'

11.8 主机监控可见,但环境准备页面无主机

现象:

主机页面能够看到 dujingying,但 DSC 环境准备页面为空。

原因:

多网卡主机尚未配置外网和内网地址,DEM 部署功能无法确定远程调用主机。

处理:

外网 IP:192.168.201.73
内网 IP:192.168.200.167

配置后重新刷新,主机可以被选择。


11.9 DMAP 默认端口冲突

现象:

现有 DMAP 已监听:

4236

DEM 自动规划也默认使用 4236

处理:

将新 DSC 集群 DMAP 端口改为:

4237

11.10 DCR_VTD_PATH 容易与 DMDCR_PATH 混淆

正确对应关系:

DCR_VTD_PATH=/dev/dm-dsc/vote
DMDCR_PATH=/dev/dm-dsc/dcr

VOTE 和 DCR 不能填反。


11.11 详情总览中 DSC02 CONFIG_PATH 看似异常

详情总览中曾显示:

/opt/DMDeploy/dmdsc/data/DSC01/DSC02_conf

该路径是初始化阶段生成第二实例配置时使用的工作路径。部署完成后 DEM 成功将 DSC02 配置复制到:

/opt/DMDeploy/dmdsc/data/DSC02/DSC02_conf

实际 DSC02 服务也从该目录启动,因此无需手工修改。


11.12 ISO 挂载目录使用率 100% 告警

DEM 主机监控出现严重告警:

/mnt/dmiso 100%
/mnt/cdrom 100%

原因:

两个目录挂载的是只读 ISO/CD-ROM 介质,显示 100% 不代表根文件系统空间耗尽。

处理:

保留挂载,不影响 DSC 部署。根文件系统实际使用率正常。


11.13 DEM 部分 DSC 组件持续显示“未知”

现象:

DEM 中:

主机:正常
CSSM:正常
DB、CSS、ASM、AP:部分或全部显示未知

数据库详情页面能够显示主机资源,但实例模式、状态、版本等字段为空。

已经完成的检查:

  1. 所有 DSC systemd 服务均为 active
  2. 所有进程均存在;
  3. 所有端口均可连接;
  4. DSC01、DSC02 均可通过 disql 登录;
  5. dmcssm show 显示 CSS、ASM、DB 节点全部正常;
  6. DEM 中每个监控对象的“测试”均连接成功;
  7. dmagent 到 /dem/dma_agent 持续 POST,HTTP 返回 200;
  8. DEM 后台库时间与操作系统时间一致;
  9. mf_invalid_timedb_invalid_timemessage_token_validity 均为正常值;
  10. 重启 dmagent 并重新应用监控配置后,状态仍未完全恢复;
  11. 曾尝试把 CSS、ASM 等监控对象的“主机”改成实际 DCR 通信地址 192.168.200.167,页面提示“无效的主机,或主机上未启动数据库代理”;
  12. 由此确认监控对象的“主机”字段必须选择已登记且运行 dmagent 的主机对象 192.168.201.73,而不是直接填写组件内部通信 IP,随后取消修改并恢复原主机对象。

受控重启 dmagent 的操作:

cd /dm8/tool/dmagent AGENT_PID=$(pgrep -f \ 'com\.dameng\.agent\.Agent /dm8/tool/dmagent/agent.ini' | head -1) echo "dmagent PID=${AGENT_PID}" kill "$AGENT_PID" for i in {1..20} do if kill -0 "$AGENT_PID" 2>/dev/null; then sleep 1 else echo "旧 dmagent 已停止" break fi done ./start.sh -d /dm8/tool/dmagent/agent.ini sleep 10 ./start.sh -l ss -lntp | grep -E ':(6363|6364)\b'

检查命令:

/dm8/tool/dmagent/start.sh -l ss -lntp | grep -E ':(6363|6364)\b' grep -Ei \ 'error|exception|failed|invalid|refused|timeout|password|login|connect' \ /dm8/tool/dmagent/log/agent.log | tail -100 grep -RniE \ '7236|7237|7836|7837|7736|7737|4237|dma_agent|error|exception|failed' \ /home/dmdba/dmdem/logs \ /home/dmdba/dmdem/server/logs \ 2>/dev/null | tail -200

DEM 后台库参数检查:

select name,val,description from DEM.ADMIN_CONFIG where name in ( 'mf_invalid_time', 'db_invalid_time', 'message_token_validity' ) order by name;

结果:

mf_invalid_time=180
 db_invalid_time=300
message_token_validity=300000

当前结论:

  • 集群运行本身正常;
  • 不是端口、密码、数据库状态、系统时间或 dmagent 到 DEM 的网络问题;
  • 更可能是 DEM 自动部署后监控对象与采集数据的识别或匹配问题;
  • 该问题未影响 DSC 功能测试和实例使用;
  • 本次在报告中作为未完全解决的 DEM 监控问题保留。

12. 最终结论

本次使用 DEM 在单台 CentOS 7 虚拟机上完成了 DM8 DSC 单机双实例自动部署。

已验证:

DMCSS 双节点正常
DMASM 双节点正常
DSC01、DSC02 均正常打开
共享磁盘组正常
双实例共享数据读写正常
单实例停止后另一实例仍可访问
停止实例可正常恢复并重新加入集群
DMCSSM 能准确显示节点停止与恢复状态

限制:

  • 两个节点位于同一台虚拟机;
  • 只能验证实例级可用性;
  • 不能验证主机、网络、存储级容灾;
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服