ITPub博客

首页 > 数据库 > 数据库开发技术 > 达梦 DMDSC 集群之 DMCSSM 使用指南

达梦 DMDSC 集群之 DMCSSM 使用指南

原创 数据库开发技术 作者:DBA学习之路 时间:2024-12-20 16:51:51 0 删除 编辑

大家好,这里是公众号 DBA学习之路,致力于分享数据库领域相关知识。

社群交流

为了给大家提供一些技术交流的平台,目前已成立的技术交流群:

  • Oracle 数据库交流群
  • 国产数据库交流群
  • Linux 技术交流群
  • ChatGPT 4o 免费体验群

需要进群可以添加微信:Lucifer-0622,备注对应的群名即可。

介绍

DMDSC 集群的运行情况可以通过DMCSSM 监视器(Dameng Cluster Synchronization Services Monitor,DMCSSM)进行查看,也可以查询 DMDSC 相关的动态视图获取更详细的信息。DMCSSM 监视器支持一些控制命令,可以用来启动、关闭 DMDSC 集群,还可以进行手动控制节点故障处理和节点重加入。

配置了 DMCSS 的集群中,可配置 DMCSSM 对集群进行统一管理,可配置0~10 个 DMCSSM。各 DMCSSM 作用一样,相互独立,互不干扰。

功能说明

DMCSS 功能说明:

  • 监控集群状态:DMCSS 每秒会发送集群中所有节点的状态信息、当前连接到 DMCSS 的监视器信息以及 DCR 的配置信息到活动的监视器上,监视器提供对应的show 命令用于查看各类信息。
  • 打开/关闭指定组的自动拉起:DMCSSM 提供SET AUTO RESTART ON/SET AUTO RESTART OFF 命令,通知 DMCSS 打开或关闭对指定组的自动拉起功能,此功能和 DMCSS 的监控打开或关闭没有关系。
  • 强制 OPEN 指定组:DMCSSM 提供OPEN FORCE 命令,在启动 ASM 或 DB 组时,如果组中某个节点发生硬件故障等原因导致一直无法启动,可执行此命令通知 DMCSS 将 ASM 组或 DB 组强制 OPEN,不再等待故障节点启动成功。
  • 启动/退出集群:DMCSSM 提供EP STARTUP/EP STOP 命令,可以通知 DMCSS 启动/退出指定的 ASM 或 DB 组。

配置 DMDSC

DMCSSM 在任何机器上均可以启动,只要该台机器和 DMDSC 的真实机器网络是相通的,就可以监控 DMDSC 集群信息。搭建监视器,首先需要配置dmcssm.ini 文件。

DMCSSM 的配置文件名称为dmcssm.ini,所支持的配置项说明如下:

配置文件内容如下:

[dmdba@dsc01:/dmdata/DSC]$ cat dmcssm.ini 
## 和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 795681

## 配置所有 CSS 的连接信息
## 和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 5.5.5.1:12345
CSSM_CSS_IP = 5.5.5.2:12345

## 监视器日志文件存放路径
CSSM_LOG_PATH = /dm/log

## 每个日志文件最大 32M
CSSM_LOG_FILE_SIZE = 32

## 不限定日志文件总占用空间
CSSM_LOG_SPACE_LIMIT = 0

创建 DMCSSM 的日志存放路径。

mkdir -p /dm/log

启动 DMCSSM 集群监视器:

## 查看说明
[dmdba@dsc01:/home/dmdba]$ dmcssm help
version: 03134284294-20240919-243448-20119 Pack1
格式: ./dmcssm KEYWORD=value

例程: ./dmcssm [[INI_PATH] | [INI_PATH=/opt/dmdbms/data/DAMENG/dmcssm.ini] | help]

关键字             说明
----------------------------------------------------------------
INI_PATH           ini文件路径
HELP               打印帮助信息

## 启动
[dmdba@dsc01:/home/dmdba]$ dmcssm INI_PATH=/dmdata/DSC/dmcssm.ini
[monitor]          [2024-12-18 16:49:23:812] CSS MONITOR V8
[monitor]          [2024-12-18 16:49:23:862] CSS MONITOR SYSTEM IS READY.

[monitor]          [2024-12-18 16:49:23:888] Wait CSS Control Node choosed...
[monitor]          [2024-12-18 16:49:25:212] Wait CSS Control Node choosed succeed.

DMCSSM 启动之后,可使用一系列命令在 DMCSSM 监视器中查看集群状态信息。

命令使用

监视器提供一系列命令,支持集群的状态信息查看以及节点的故障处理,可输入help 命令,查看命令使用说明:

help

在 DMCSS 控制台输入help,显示帮助信息:

[dmdba@dsc01:/home/dmdba]$ dmcssm INI_PATH=/dmdata/DSC/dmcssm.ini
[monitor]          [2024-12-16 13:27:36:769] CSS MONITOR V8
[monitor]          [2024-12-16 13:27:36:796] CSS MONITOR SYSTEM IS READY.

[monitor]          [2024-12-16 13:27:36:799] Wait CSS Control Node choosed...
[monitor]          [2024-12-16 13:27:38:002] Wait CSS Control Node choosed succeed.

help
DMCSSM使用说明:
SHOW命令中可以通过指定group_name获取指定组的信息,如果没有指定,则显示所有组的信息
---------------------------------------------------------------------------------------------
1.help                                            --显示帮助
2.show [group_name]                               --显示指定的组信息
3.show config                                     --显示配置文件信息
4.show monitor                                    --显示当前连接的监视器信息
5.set group_name auto restart on                  --打开指定组的自动拉起功能(只修改dmcss内存值)
6.set group_name auto restart off                 --关闭指定组的自动拉起功能(只修改dmcss内存值)
7.open force group_name                           --强制OPEN指定的ASM或DB组
8.ep startup group_name                           --启动指定的ASM或DB组
9.ep stop group_name                              --停止指定的ASM或DB组
10.ep halt group_name.ep_name                     --强制退出指定组的指定节点
11.extend node                                    --扩展集群节点
12.ep crash group_name.ep_name                    --设定指定节点故障
13.check crash over group_name                    --检查指定组故障处理是否结束
14.exit                                           --退出监视器

---------------------------------------------------------------------------------------------

show

在 DMCSS 控制台输入show 命令可以看到所监控的集群状态,可以指定的组信息,如果没有指定 group_name,则显示所有组信息。

group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] 行显示的内容为:

  • name:集群名称
  • seq:集群编号
  • type:集群类型[CSS/ASM/DB]
  • control_node:集群内控制节点

ep 行显示的内容为:

  • inst_name:节点实例名
  • seqno:节点编号
  • port:实例对外提供服务的端口号
  • mode:模式[控制/普通]
  • sys_status:实例系统状态[MOUNT/OPEN 等]
  • vtd_status:实例的集群状态[WORKING/SHUTDOWN/SYSHALT 等]
  • is_ok:实例在集群内是否正常,ERROR 的节点暂时从集群内剔除
  • active:实例是否活动
  • guid:实例的 guid 值
  • ts:实例的时间戳
show

monitor current time:2024-12-16 13:41:36, n_group:3
=================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] ========================================

[CSS01] auto check = TRUE, global info:
[ASM01] auto restart = TRUE
[DSC01] auto restart = TRUE
[CSS02] auto check = TRUE, global info:
[ASM02] auto restart = TRUE
[DSC02] auto restart = TRUE

ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-12-16 13:41:36    CSS01         0         12345   Control Node OPEN               WORKING      OK           TRUE         13815             20305           
        2024-12-16 13:41:36    CSS02         1         12345   Normal Node  OPEN               WORKING      OK           TRUE         13918             20418           

=================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-12-16 13:41:36    ASM01         0         12346   Control Node OPEN               WORKING      OK           TRUE         21156             27650           
        2024-12-16 13:41:36    ASM02         1         12346   Normal Node  OPEN               WORKING      OK           TRUE         21233             27734           

=================== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 0] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-12-16 13:41:36    DSC01         0         5236    Control Node OPEN               WORKING      OK           TRUE         13930             20404           
        2024-12-16 13:41:36    DSC02         1         5236    Normal Node  OPEN               WORKING      OK           TRUE         350892            355722          

==================================================================================================================

show config

在 DMCSS 控制台输入show config,显示 DMDCR_CFG.INI 的配置信息,对于 DB 类型的节点,会比 CSS/ASM 节点多一项 DCR_EP_SEQNO 的显示值,如果原本的 ini 文件中没有手动配置,则显示的是自动分配的序列值。

show config

monitor current time:2024-12-16 13:52:51
==================================================================================================================
        DCR_N_GRP            = 3
        DCR_VTD_PATH         = /dev/asmdisk/dmvote01
        DCR_OGUID            =795681
        [GRP]
        DCR_GRP_TYPE         = CSS
        DCR_GRP_NAME         = GRP_CSS
        DCR_GRP_N_EP         = 2
        DCR_GRP_DSKCHK_CNT   = 60
        [GRP_CSS]
        DCR_EP_NAME          = CSS01
        DCR_EP_HOST          = 5.5.5.1
        DCR_EP_PORT          = 12345
        [GRP_CSS]
        DCR_EP_NAME          = CSS02
        DCR_EP_HOST          = 5.5.5.2
        DCR_EP_PORT          = 12345

        [GRP]
        DCR_GRP_TYPE         = ASM
        DCR_GRP_NAME         = GRP_ASM
        DCR_GRP_N_EP         = 2
        DCR_GRP_DSKCHK_CNT   = 60
        [GRP_ASM]
        DCR_EP_NAME          = ASM01
        DCR_EP_HOST          = 5.5.5.1
        DCR_EP_PORT          = 12346
        DCR_EP_SHM_KEY       = 78901
        DCR_EP_SHM_SIZE      = 512
        DCR_EP_ASM_LOAD_PATH = /dev/asmdisk
        [GRP_ASM]
        DCR_EP_NAME          = ASM02
        DCR_EP_HOST          = 5.5.5.2
        DCR_EP_PORT          = 12346
        DCR_EP_SHM_KEY       = 78902
        DCR_EP_SHM_SIZE      = 512
        DCR_EP_ASM_LOAD_PATH = /dev/asmdisk

        [GRP]
        DCR_GRP_TYPE         = DB
        DCR_GRP_NAME         = GRP_DSC
        DCR_GRP_N_EP         = 2
        DCR_GRP_DSKCHK_CNT   = 60
        [GRP_DSC]
        DCR_EP_SEQNO         = 0
        DCR_EP_NAME          = DSC01
        DCR_EP_PORT          = 5236
        DCR_CHECK_PORT       = 12347
        [GRP_DSC]
        DCR_EP_SEQNO         = 1
        DCR_EP_NAME          = DSC02
        DCR_EP_PORT          = 5236
        DCR_CHECK_PORT       = 12347

==================================================================================================================

show monitor

在 DMCSS 控制台输入show monitor 显示当前连接到主 CSS 的所有监视器信息,返回的信息中,第一行为当前执行命令的监视器的连接信息。

show monitor
==================================================

Get monitor connect info from css(seqno:0, name:CSS01).
The first line is self connect info.

CONN_TIME            MID            MON_IP                   FROM_NAME                
2024-12-16 13:41:30  1734327690     ::ffff:5.5.5.1           dmcssm                   
2024-12-16 13:28:55  1734326935     ::ffff:5.5.5.2           dmcssm                   

==================================================

在数据守护环境中,守护监视器 dmmonitor 的部分命令(启动/停止/强杀实例)最终是由 dmcss 执行的,守护进程 dmwatcher 在命令执行中充当了 dmcssm 的角色,守护进程通知 dmcss 执行完成后,再将执行结果返回给守护监视器。因此 dmcss 上会有 dmwatcher 的连接信息,show monitor 命令也会显示 dmwatcher 的连接信息,可以根据 from_name 字段值进行区分。

set auto restart on/off

打开/关闭指定组的自动拉起功能。可借助show css 命令查看每个节点的自动拉起标记,每个 css 只能控制和自己的 DMDCR.INI 中配置的 DMDCR_SEQNO 相同节点的自动拉起。

## 查看当前组是否开启自动拉起
show grp_css

monitor current time:2024-12-16 17:28:51
=================== group[name = grp_css, seq = 0, type = CSS, Control Node = 0] ========================================

[CSS01] auto check = TRUE, global info:
[ASM01] auto restart = TRUE
[DSC01] auto restart = TRUE
[CSS02] auto check = TRUE, global info:
[ASM02] auto restart = TRUE
[DSC02] auto restart = TRUE

ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-12-16 17:28:50    CSS01         0         12345   Control Node OPEN               WORKING      OK           TRUE         13815             33425           
        2024-12-16 17:28:50    CSS02         1         12345   Normal Node  OPEN               WORKING      OK           TRUE         13918             33516           

==================================================================================================================

## 关闭 DB 自动拉起
set grp_dsc auto restart off
[monitor]          [2024-12-16 17:20:07:035] 通知CSS(seqno:0)关闭节点(DSC01)的自动拉起功能
[monitor]          [2024-12-16 17:20:07:338] 通知CSS(seqno:0)关闭节点(DSC01)的自动拉起功能成功
[monitor]          [2024-12-16 17:20:07:339] 通知CSS(seqno:1)关闭节点(DSC02)的自动拉起功能
[monitor]          [2024-12-16 17:20:07:642] 通知CSS(seqno:1)关闭节点(DSC02)的自动拉起功能成功
[monitor]          [2024-12-16 17:20:07:643] 通知当前活动的CSS执行清理操作
[monitor]          [2024-12-16 17:20:08:496] 清理CSS(0)请求成功
[monitor]          [2024-12-16 17:20:08:849] 清理CSS(1)请求成功
[monitor]          [2024-12-16 17:20:08:852] 关闭CSS自动拉起功能成功

## 查看 DB 自动拉起状态
show

monitor current time:2024-12-16 17:20:16, n_group:3
=================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] ========================================

[CSS01] auto check = TRUE, global info:
[ASM01] auto restart = TRUE
[DSC01] auto restart = FALSE
[CSS02] auto check = TRUE, global info:
[ASM02] auto restart = TRUE
[DSC02] auto restart = FALSE

## 开启 DB 自动拉起
set grp_dsc auto restart on
[monitor]          [2024-12-16 17:21:02:742] 通知CSS(seqno:0)打开节点(DSC01)的自动拉起功能
[monitor]          [2024-12-16 17:21:03:094] 通知CSS(seqno:0)打开节点(DSC01)的自动拉起功能成功
[monitor]          [2024-12-16 17:21:03:097] 通知CSS(seqno:1)打开节点(DSC02)的自动拉起功能
[monitor]          [2024-12-16 17:21:03:399] 通知CSS(seqno:1)打开节点(DSC02)的自动拉起功能成功
[monitor]          [2024-12-16 17:21:03:400] 通知当前活动的CSS执行清理操作
[monitor]          [2024-12-16 17:21:04:254] 清理CSS(0)请求成功
[monitor]          [2024-12-16 17:21:05:661] 清理CSS(1)请求成功
[monitor]          [2024-12-16 17:21:05:662] 打开CSS自动拉起功能成功

open force

在启动 ASM 或 DB 组时,如果某个节点故障一直无法启动,可借助此命令将 ASM 或 DB 组强制 OPEN。此命令需要发送到主 CSS 执行,并且主 CSS 的监控需要处于打开状态,如果主 CSS 故障或尚未选出,则命令执行失败。

open force GRP_DSC

ep stop/startup

通知 CSS 启动/关闭指定的 ASM 或 DB 组,如果 CSS 已经打开了指定组的自动拉起功能,则启动命令不允许执行,需要等待 CSS 自动检测故障并执行拉起操作。

每个 CSS 只负责拉起和自己的 dmdcr.ini 中配置的 DMDCR_SEQNO 相同的 ASM 或 DB 节点,因此需要所有 CSS 都处于活动状态,否则只通知当前活动的 CSS 自动拉起相对应的节点。

## 关闭 DB
ep stop GRP_DSC  
[monitor]          [2024-12-16 17:10:41:449] 通知CSS(seqno:0)关闭节点(DSC01)的自动拉起功能
[monitor]          [2024-12-16 17:10:41:652] 通知CSS(seqno:0)关闭节点(DSC01)的自动拉起功能成功
[monitor]          [2024-12-16 17:10:41:653] 通知CSS(seqno:1)关闭节点(DSC02)的自动拉起功能
[monitor]          [2024-12-16 17:10:41:855] 通知CSS(seqno:1)关闭节点(DSC02)的自动拉起功能成功
[monitor]          [2024-12-16 17:10:41:856] 关闭CSS自动拉起功能成功
[monitor]          [2024-12-16 17:10:41:858] 通知CSS(seqno:0)执行EP STOP(GRP_DSC)
[monitor]          [2024-12-16 17:10:51:071] 通知当前活动的CSS执行清理操作
[monitor]          [2024-12-16 17:10:53:227] 清理CSS(0)请求成功
[monitor]          [2024-12-16 17:10:53:280] 清理CSS(1)请求成功
[monitor]          [2024-12-16 17:10:53:281] 命令EP STOP GRP_DSC执行成功

## 查看 DB 状态
show GRP_DSC

monitor current time:2024-12-16 17:12:22
=================== group[name = grp_dsc, seq = 2, type = DB, Control Node = 255] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is FALSE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-12-16 17:12:21    DSC01         0         5236    Normal Node  SHUTDOWN           SHUTDOWN     OK           FALSE        13930             32647           
        2024-12-16 17:12:21    DSC02         1         5236    Normal Node  SHUTDOWN           SHUTDOWN     OK           FALSE        350892            367969          

==================================================================================================================

## 启动 DB
ep startup grp_dsc
[monitor]          [2024-12-16 17:13:49:260] 通知CSS(seqno:0)执行EP STARTUP(DSC01)
[monitor]          [2024-12-16 17:14:03:383] 通知CSS(seqno:0)执行EP STARTUP(DSC01)成功
[monitor]          [2024-12-16 17:14:03:385] 通知CSS(seqno:1)执行EP STARTUP(DSC02)
[monitor]          [2024-12-16 17:14:18:016] 通知CSS(seqno:1)执行EP STARTUP(DSC02)成功
[monitor]          [2024-12-16 17:14:18:021] 通知CSS(seqno:0)打开节点(DSC01)的自动拉起功能
[monitor]          [2024-12-16 17:14:18:781] 通知CSS(seqno:0)打开节点(DSC01)的自动拉起功能成功
[monitor]          [2024-12-16 17:14:18:783] 通知CSS(seqno:1)打开节点(DSC02)的自动拉起功能
[monitor]          [2024-12-16 17:14:19:135] 通知CSS(seqno:1)打开节点(DSC02)的自动拉起功能成功
[monitor]          [2024-12-16 17:14:19:137] 打开CSS自动拉起功能成功
[monitor]          [2024-12-16 17:14:19:138] 通知当前活动的CSS执行清理操作
[monitor]          [2024-12-16 17:14:19:589] 清理CSS(0)请求成功
[monitor]          [2024-12-16 17:14:20:394] 清理CSS(1)请求成功
[monitor]          [2024-12-16 17:14:20:395] 命令EP STARTUP GRP_DSC执行成功

[CSS01]            [2024-12-16 17:14:20:154] [DB]: 设置命令[NONE], 目标站点 DSC02[1], 命令序号[0]
[CSS01]            [2024-12-16 17:14:20:573] [DB]: 设置命令[EP START], 目标站点 DSC01[0], 命令序号[73]
[CSS01]            [2024-12-16 17:14:21:605] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-16 17:14:21:744] [DB]: 设置命令[EP START], 目标站点 DSC02[1], 命令序号[75]
[CSS01]            [2024-12-16 17:14:22:217] [DB]: 设置命令[NONE], 目标站点 DSC02[1], 命令序号[0]
[CSS01]            [2024-12-16 17:14:22:243] [DB]: 设置命令[EP START2], 目标站点 DSC01[0], 命令序号[78]
[CSS01]            [2024-12-16 17:14:24:423] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-16 17:14:24:555] [DB]: 设置命令[EP START2], 目标站点 DSC02[1], 命令序号[80]
[CSS01]            [2024-12-16 17:14:25:511] [DB]: 设置命令[NONE], 目标站点 DSC02[1], 命令序号[0]
[CSS01]            [2024-12-16 17:14:25:640] [DB]: 设置命令[EP OPEN], 目标站点 DSC01[0], 命令序号[83]
[CSS01]            [2024-12-16 17:14:25:812] [DB]: 设置命令[EP OPEN], 目标站点 DSC02[1], 命令序号[84]
[CSS01]            [2024-12-16 17:14:26:250] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-16 17:14:26:479] [DB]: 设置命令[NONE], 目标站点 DSC02[1], 命令序号[0]
[CSS01]            [2024-12-16 17:14:26:792] [DB]: 设置命令[EP REAL OPEN], 目标站点 DSC01[0], 命令序号[86]
[CSS01]            [2024-12-16 17:14:27:108] [DB]: 设置命令[EP REAL OPEN], 目标站点 DSC02[1], 命令序号[87]
[CSS01]            [2024-12-16 17:14:28:109] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-16 17:14:28:379] [DB]: 设置命令[NONE], 目标站点 DSC02[1], 命令序号[0]

## 查看 DB 状态
show grp_dsc

monitor current time:2024-12-16 17:16:57
=================== group[name = grp_dsc, seq = 2, type = DB, Control Node = 0] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-12-16 17:16:57    DSC01         0         5236    Control Node OPEN               WORKING      OK           TRUE         3899323           3899495         
        2024-12-16 17:16:57    DSC02         1         5236    Normal Node  OPEN               WORKING      OK           TRUE         3902670           3902828         

==================================================================================================================

只有在 ASM 组正常启动到 OPEN 状态,并且所有活动的 ASM 节点都处于 OPEN 状态时,才允许启动 DB 组,否则执行 DB 组的启动命令会报错,CSS 自动拉起 DB 组时也需要满足此条件。在命令执行前,如果 CSS 对指定组的自动拉起功能是关闭的,在节点拉起成功后,会打开对指定组的自动拉起功能。

在退出 ASM 组时,需要保证 DB 组已经退出,否则会报错处理。在命令执行前,如果 CSS 对指定组的自动拉起功能是打开的,则会先通知 CSS 关闭对指定组的自动拉起功能,再通知指定组退出,避免命令执行成功后节点再次被自动拉起。

ep halt

强制退出指定组的指定 EP。适用于下述场景:

  1. 某个 ASM 或 DB 集群节点故障,CSS 的心跳容错时间DCR_GRP_DSKCHK_CNT 配置值很大,在容错时间内,CSS 不会调整故障节点的 active 标记,一直是 TRUE,CSS 认为故障 EP 仍然处于活动状态,不会自动执行故障处理,并且不允许手动执行故障处理。

    另外,执行EP STARTUP 或EP STOP 命令时,会误认为故障 EP 仍然处于活动状态,导致执行结果与预期不符。此时可以通过执行EP HALT 命令,通知 CSS 再次 HALT 故障 EP,确认 EP 已经被 HALT 后,CSS 会及时调整 active 标记为 FALSE,在此之后,对自动/手动故障处理,EP STARTUP/EP STOP 命令都可以正常执行。

  2. 需要强制 HALT 某个正在运行的 ASM 或 DB 节点,也可以通过此命令完成。

ep halt grp_dsc.DSC02
[monitor]          [2024-12-18 10:04:27:101] 通知CSS(CSS01, seqno:0)执行EP HALT GRP_DSC.DSC02
[monitor]          [2024-12-18 10:04:28:738] 通知当前活动的CSS执行清理操作
[monitor]          [2024-12-18 10:04:30:648] 清理CSS(0)请求成功
[monitor]          [2024-12-18 10:04:30:701] 清理CSS(1)请求成功
[monitor]          [2024-12-18 10:04:30:729] 命令EP HALT GRP_DSC.DSC02执行成功

[CSS01]            [2024-12-18 10:04:30:457] [DB]: 设置命令[EP_CRASH], 目标站点 DSC01[0], 命令序号[92]
[CSS01]            [2024-12-18 10:04:42:453] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-18 10:04:42:458] [DB]: 命令[EP_CRASH]处理结束
[CSS01]            [2024-12-18 10:04:42:618] [DB]: 设置命令[CMD CLEAR], 目标站点 DSC01[0], 命令序号[95]
[CSS01]            [2024-12-18 10:04:42:893] [CSS]: 设置命令[CONFIG VIP], 目标站点 CSS02[1], 命令序号[4]
[CSS01]            [2024-12-18 10:04:43:441] [DB]: 设置命令[CONFIG VIP], 目标站点 DSC01[0], 命令序号[100]
[CSS01]            [2024-12-18 10:04:44:580] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-18 10:04:44:745] [DB]: 命令[CONFIG VIP]处理结束
[CSS01]            [2024-12-18 10:04:45:929] [DB]: 上次故障处理已完成,允许故障ep重加入

## 查看 DB 状态
show grp_dsc

monitor current time:2024-12-18 10:05:28
=================== group[name = grp_dsc, seq = 2, type = DB, Control Node = 0] ========================================

n_ok_ep = 1
ok_ep_arr(index, seqno):
(0, 0)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-12-18 10:05:28    DSC01         0         5236    Control Node OPEN               WORKING      OK           TRUE         3899323           4044687         
        2024-12-18 10:05:28    DSC02         1         5236    Normal Node  OPEN               SYSHALT      ERROR        FALSE        3902670           4047981         

==================================================================================================================

## 先关闭所有 DB
ep stop grp_dsc
[monitor]          [2024-12-18 10:18:46:035] 通知CSS(seqno:0)关闭节点(DSC01)的自动拉起功能
[monitor]          [2024-12-18 10:18:46:187] 通知CSS(seqno:0)关闭节点(DSC01)的自动拉起功能成功
[monitor]          [2024-12-18 10:18:46:203] 通知CSS(seqno:1)关闭节点(DSC02)的自动拉起功能
[monitor]          [2024-12-18 10:18:46:405] 通知CSS(seqno:1)关闭节点(DSC02)的自动拉起功能成功
[monitor]          [2024-12-18 10:18:46:406] 关闭CSS自动拉起功能成功
[monitor]          [2024-12-18 10:18:46:407] 通知CSS(seqno:0)执行EP STOP(GRP_DSC)
[monitor]          [2024-12-18 10:18:51:717] 通知当前活动的CSS执行清理操作
[monitor]          [2024-12-18 10:18:52:672] 清理CSS(0)请求成功
[monitor]          [2024-12-18 10:18:52:737] 清理CSS(1)请求成功
[monitor]          [2024-12-18 10:18:52:739] 命令EP STOP GRP_DSC执行成功

## 执行 ep startup 可以再次启动
ep startup grp_dsc
[monitor]          [2024-12-18 10:07:32:089] 通知CSS(seqno:0)执行EP STARTUP(DSC01)
[monitor]          [2024-12-18 10:07:45:470] 通知CSS(seqno:0)执行EP STARTUP(DSC01)成功
[monitor]          [2024-12-18 10:07:45:507] 通知CSS(seqno:1)执行EP STARTUP(DSC02)
[monitor]          [2024-12-18 10:08:02:055] 通知CSS(seqno:1)执行EP STARTUP(DSC02)成功
[monitor]          [2024-12-18 10:08:02:073] 通知CSS(seqno:0)打开节点(DSC01)的自动拉起功能
[monitor]          [2024-12-18 10:08:02:276] 通知CSS(seqno:0)打开节点(DSC01)的自动拉起功能成功
[monitor]          [2024-12-18 10:08:02:277] 通知CSS(seqno:1)打开节点(DSC02)的自动拉起功能
[monitor]          [2024-12-18 10:08:02:579] 通知CSS(seqno:1)打开节点(DSC02)的自动拉起功能成功
[monitor]          [2024-12-18 10:08:02:590] 打开CSS自动拉起功能成功
[monitor]          [2024-12-18 10:08:02:591] 通知当前活动的CSS执行清理操作
[monitor]          [2024-12-18 10:08:03:695] 清理CSS(0)请求成功
[monitor]          [2024-12-18 10:08:03:807] 清理CSS(1)请求成功
[monitor]          [2024-12-18 10:08:03:809] 命令EP STARTUP GRP_DSC执行成功

[CSS01]            [2024-12-18 10:08:03:518] [DB]: 设置命令[DCR_LOAD], 目标站点 DSC02[1], 命令序号[109]
[CSS01]            [2024-12-18 10:08:03:830] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-18 10:08:03:906] [DB]: 设置命令[NONE], 目标站点 DSC02[1], 命令序号[0]
[CSS01]            [2024-12-18 10:08:04:068] [DB]: 设置命令[EP START], 目标站点 DSC01[0], 命令序号[111]
[CSS01]            [2024-12-18 10:08:12:435] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-18 10:08:12:577] [DB]: 设置命令[EP START], 目标站点 DSC02[1], 命令序号[113]
[CSS01]            [2024-12-18 10:08:12:837] [DB]: 设置命令[NONE], 目标站点 DSC02[1], 命令序号[0]
[CSS01]            [2024-12-18 10:08:12:861] [DB]: 设置命令[EP START2], 目标站点 DSC01[0], 命令序号[116]
[CSS01]            [2024-12-18 10:08:14:717] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-18 10:08:14:857] [DB]: 设置命令[EP START2], 目标站点 DSC02[1], 命令序号[118]
[CSS01]            [2024-12-18 10:08:15:684] [DB]: 设置命令[NONE], 目标站点 DSC02[1], 命令序号[0]
[CSS01]            [2024-12-18 10:08:15:813] [DB]: 设置命令[EP OPEN], 目标站点 DSC01[0], 命令序号[121]
[CSS01]            [2024-12-18 10:08:15:839] [DB]: 设置命令[EP OPEN], 目标站点 DSC02[1], 命令序号[122]
[CSS01]            [2024-12-18 10:08:16:151] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-18 10:08:16:164] [DB]: 设置命令[NONE], 目标站点 DSC02[1], 命令序号[0]
[CSS01]            [2024-12-18 10:08:16:300] [DB]: 设置命令[EP REAL OPEN], 目标站点 DSC01[0], 命令序号[124]
[CSS01]            [2024-12-18 10:08:16:435] [DB]: 设置命令[EP REAL OPEN], 目标站点 DSC02[1], 命令序号[125]
[CSS01]            [2024-12-18 10:08:17:034] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-18 10:08:17:184] [DB]: 设置命令[NONE], 目标站点 DSC02[1], 命令序号[0]
[CSS01]            [2024-12-18 10:08:18:399] [DB]: 上次故障处理未真正完成,不允许故障ep重加入

show grp_dsc

monitor current time:2024-12-18 10:09:39
=================== group[name = grp_dsc, seq = 2, type = DB, Control Node = 0] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-12-18 10:09:38    DSC01         0         5236    Control Node OPEN               WORKING      OK           TRUE         34076905          34077011        
        2024-12-18 10:09:38    DSC02         1         5236    Normal Node  OPEN               WORKING      OK           TRUE         34080259          34080356        

==================================================================================================================

extend node

DMDSC 集群联机增加节点时使用。程序会通知所有实例(CSS/ASMSVR/dmserver)更新 dcr 信息。

使用show 命令能看到新增节点信息,新增ASMSVR/dmserver 为 ERROR 状态。

ep crash

手动指定节点故障,节点故障后,css 只有在DCR_GRP_DSKCHK_CNT 配置的时间过后才会判定实例故障,开始故障处理流程。用户如果明确知道实例已经故障,可以收到执行此命令,CSS 可以立即开始故障处理流程。

## 强制关闭节点 2 DB
ep halt grp_dsc.dsc02
[monitor]          [2024-12-18 10:14:07:230] 通知CSS(CSS01, seqno:0)执行EP HALT GRP_DSC.DSC02
[monitor]          [2024-12-18 10:14:08:537] 通知当前活动的CSS执行清理操作
[monitor]          [2024-12-18 10:14:09:492] 清理CSS(0)请求成功
[monitor]          [2024-12-18 10:14:09:643] 清理CSS(1)请求成功
[monitor]          [2024-12-18 10:14:09:645] 命令EP HALT GRP_DSC.DSC02执行成功

[CSS01]            [2024-12-18 10:14:27:631] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-18 10:14:27:640] [DB]: 命令[EP_CRASH]处理结束
[CSS01]            [2024-12-18 10:14:27:791] [DB]: 设置命令[CMD CLEAR], 目标站点 DSC01[0], 命令序号[133]
[CSS01]            [2024-12-18 10:14:28:034] [CSS]: 设置命令[CONFIG VIP], 目标站点 CSS02[1], 命令序号[5]
[CSS01]            [2024-12-18 10:14:28:541] [DB]: 设置命令[CONFIG VIP], 目标站点 DSC01[0], 命令序号[138]
[CSS01]            [2024-12-18 10:14:28:779] [DB]: 设置命令[NONE], 目标站点 DSC01[0], 命令序号[0]
[CSS01]            [2024-12-18 10:14:28:786] [DB]: 命令[CONFIG VIP]处理结束
[CSS01]            [2024-12-18 10:14:29:940] [DB]: 上次故障处理已完成,允许故障ep重加入

## 指定节点 2 DB 故障
ep crash grp_dsc.dsc02
[monitor]          [2024-12-18 10:15:38:419] 通知CSS(CSS01, seqno:0)执行EP CRASH GRP_DSC DSC02
[monitor]          [2024-12-18 10:15:38:640] 通知当前活动的CSS执行清理操作
[monitor]          [2024-12-18 10:15:39:795] 清理CSS(0)请求成功
[monitor]          [2024-12-18 10:15:40:699] 清理CSS(1)请求成功
[monitor]          [2024-12-18 10:15:40:704] 通知CSS(CSS01, seqno:0)执行EP CRASH GRP_DSC DSC02成功,请等待CSS处理完成

show grp_dsc 

monitor current time:2024-12-18 10:16:37
=================== group[name = grp_dsc, seq = 2, type = DB, Control Node = 0] ========================================

n_ok_ep = 1
ok_ep_arr(index, seqno):
(0, 0)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:     css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
        2024-12-18 10:16:36    DSC01         0         5236    Control Node OPEN               WORKING      OK           TRUE         34076905          34077411        
        2024-12-18 10:16:36    DSC02         1         5236    Normal Node  OPEN               SYSHALT      ERROR        FALSE        34080259          34080624 

check crash over

DB 集群环境故障处理后,需要满足一定条件(控制节点重做 REDO 日志产生的数据页修改都已经刷盘完成),才允许故障节点重新加回集群环境。此命令用来显示 DB 集群环境故障处理是否真正结束。

check crash over grp_dsc
[monitor]          [2024-12-18 10:17:45:089] 检查故障处理是否结束

[CSS01]            [2024-12-18 10:17:45:111] Group crash process over flag: TRUE
[monitor]          [2024-12-18 10:17:45:460] 通知当前活动的CSS执行清理操作
[monitor]          [2024-12-18 10:17:46:565] 清理CSS(0)请求成功
[monitor]          [2024-12-18 10:17:47:319] 清理CSS(1)请求成功
[monitor]          [2024-12-18 10:17:47:340] 命令CHECK CRASH OVER grp_dsc执行成功

至此,DMCSSM 监视器的命令使用演示完成。

写在最后

达梦十分建议使用 DMCSSM 来管理 ASM 和 DB,十分安全可靠,可视化更加清晰!

如果有遗漏或者不足的地方,欢迎评论区补充或者投稿,感谢阅读!

往期精彩文章

达梦数据库安装最详细教程
一招教你学会达梦数据库的免密登录
一文讲透达梦数据库的大小写敏感
效率翻倍!达梦数据库 disql 使用技巧全攻略
达梦数据库参数配置与一键优化指南
达梦 AWR 报告快速上手指南
达梦 DMDSC 共享存储集群介绍
官方认证:达梦共享集群 DMDSC 一键安装脚本

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」

原文作者:DBA学习之路;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2024-09-16

  • 博文量
    39
  • 访问量
    37197