注册
DMDSC集群的搭建和介绍
专栏/技术分享/ 文章详情 /

DMDSC集群的搭建和介绍

9999 2025/08/01 238 0 0
摘要

DSC集群的搭建和介绍

一.DSC集群的概述

1.DSC集群的介绍

DM数据共享集群又称共享存储集群。英文全称是DM Data Share Cluster,简称DMDSC。
DSC是一个多实例,单数据库的系统。多个数据库实例可以同时访问,修改同一个数据库的数据。数据文件,控制文件在集群中只有一份,不论几个节点,这些文件保存在ASM共享存储上。每个节点有自己独立的联机日志和归档日志,这些也保存在ASM共享存储上。DSC集群最多支持8个数据库实例节点。
DSC有数据库和数据库实例、共享存储、本地存储、DMASM镜像或DMASM、通信网络、DMCSS、DMCSSM组成。
DMDSC集群类型:DMCSS集群(css组)、ASM集群(asm组)、DMDSC集群(db组)。关于详细部分本文下文会详细介绍
心跳机制:DMCSS 的心跳机制(Heartbeat)是通过 VOTE 磁盘(非镜像环境下)或 DCRV 磁盘(镜像环境下)的 Disk Heartbeat 实现
DMCSS:集群控制软件。DMCSS 专门负责监控集群中各个节点的运行状态,主要功能包括集群环境中节点的启动、故障处理、节点重加入等操作。
DMCSSM:集群监视器。用来监控整个集群的状态信息。DMCSSM 提供一系列管理维护集群的命令。
共享存储:由DMASM文件系统来管理
通信网络:
1.MAL链路。实例间数据交换。使用DMASM系统的DMDSC存在2套MAL链路:DMASM服务器之间配置1套MAL系统,DMSERVER之间配置一套MAL系统。两套 MAL 系统工作原理相同:一旦 MAL 链路出现异常,DMCSS 会进行裁定,并从集群中踢出一个节点,保证集群环境正常运行。
2.对外服务网络:用户访问入口
3.高速共享存储网络:实例和存储之间通信
  下图是一个2节点DSC集群的架构图:
12.png

2. DSC集群优缺点

优点:
1.高可用性:只要集群中有一个活动节点,就能正常提供数据库服务。此外,当出现磁盘损坏或数据丢失时,既可以利用其他镜像副本继续提供数据库服务,又可以使用其他镜像副本进行数据恢复。
2.高吞吐量:多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。
3.负载均衡:一方面,通过巧用服务名,用户的连接请求被平均分配到集群中的各个节点,确保连接负载平衡;另一方面,条带化技术可保证写入的数据均匀分布到磁盘组内的不同磁盘中,实现数据负载均衡。

缺点:
目前 DMDSC 在功能上与单机版 DM 相比存在一定限制,具体功能限制如下:
1.支持定时器,但只有控制节点上配置的定时器生效。只支持脱机配置定时器,不支持联机配置。
2.支持作业,但只有控制节点上支持执行作业。
3.不支持外部表。支持 HUGE 表,但只有控制节点支持。
4.不支持 table 级别的 space limit 功能。
5.支持全文索引,但仅支持默认词库,需要将默认词库文件 SYSWORD.UTF8.LIB 放到 ASM 文件系统中。
6.不能与 MPP 集群混合使用。

3. DSC集群中的配置文件介绍

类型 名称 作用
DSC配置文件1 dmdcr_cfg.ini 用于格式化非镜像环境下 DCR DISK、VOTE DISK 和镜像环境下 DCRV 磁盘的配置文件
DSC配置文件2 dmdcr.ini 是 DMCSS、DMASMSVR、DMASMTOOL 等工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径
DSC配置文件3 dminit.ini 用于数据库初始化的参数,DMASM文件系统必须使用dminit.ini文件来进行初始化
Mal配置文件1 dmasvrmal.ini 用于ASM服务的mal系统的参数记录与传入
Mal配置文件2 dmmal.ini 用于mal系统的参数记录与传入
SERVER配置文件1 dm.ini 数据库的配置参数文件
SERVER配置文件2 dmarch.ini 数据库的归档参数文件
SERVER配置文件3 dmcssm.ini DMCSSM监视器的配置信息
客户端配置文件 dm_svc.conf 客户端配置文件

表1.1 DMDCR_CFG.INI配置项

集群环境全局信息
DCR_VTD_PATH VOTE DISK路径
DCR_N_GRP 集群环境包括多少个组(即包括多少个集群)取值范围1~16。例如:配置了1个DMCSS集群、1个DMASM集群、1个DMDSC集群,则DCR_N_GRP=3。目前仅支持3个组
DCR_OGUID 消息标识,DMCSSM登录DMCSS消息校验用。取值范围:正整数
集群组信息
DCR_GRP_TYPE 组类型:CSS、ASM或DB。分别表示DMCSS集群、DMASM集群和DMDSC集群
DCR_GRP_NAME 组名,16字节,配置文件内不可重复
DCR_GRP_N_EP 组内节点个数N,最大8
DCR_GRP_DSKCHK_CNT 磁盘心跳机制,容错时间,单位秒S,缺省60S,取值范围5~600
节点信息,某些属性可能只针对某一类型节点,比如SHM_KEY只针对ASM节点有效
DCR_EP_NAME 节点名,16字节,配置文件内不可重复, DB的节点名必须和DM.INI里的INSTANCE_NAME保持一致, ASM的节点名必须和DMASVRMAL.INI里的MAL_INST_NAME一致, 同一类型各节点的EP_NAME不能重复
DCR_EP_SEQNO 组内序号,CSS/ASM不能配置,自动分配 DB可以配置,0 ~ n_ep -1,组内不能重复,如不配置则自动分配
DCR_EP_HOST 心跳地址,即节点IP(实例所在机器的IP地址)。 CSS中设置表示DMCSSM可以通过该IP连接CSS,可以不配置。 dmasmsvr允许通过IP/PORT远程访问,ASM必须配置
DCR_EP_PORT 节点TCP监听端口(CSS/ASM/DB有效,对应登录CSS/ASM/DB的端口号),节点实例配置此参数,取值范围102465534;发起连接端的端口在102465535之间随机分配。 特别对DB来说,DB的DCR_EP_PORT与DM.INI中的PORT_NUM不一致时,DB端口以DM.INI中的PORT_NUM为准
DCR_EP_SHM_KEY 共享内存标识,数值类型(ASM有效,初始化共享内存的标识符),应为大于0的4字节整数。同一机器上每个ASM节点对应的DCR_EP_SHM_KEY必须唯一,需要人为保证其唯一性
DCR_EP_SHM_SIZE 共享内存大小,单位MB,取值范围10~40000。
DCR_EP_ASM_LOAD_PATH ASM磁盘扫描路径,Linux下一般为/dev/raw,文件模拟情况,必须是全路径,不能是相对路径。 支持多路径配置,各路径以英文逗号’,'进行分隔,所有配置的路径都必须为有效路径,且暂不支持中文路径,例如:/dev/disk1,/dev/disk2,/dev/disk3。最多可以同时配置8个磁盘扫描路径,但配置的所有路径长度之和必须小于256,若超过该长度,只能减小磁盘扫描路径个数

注意:
1.在用 dmasmcmd 工具执行 init votedisk disk_path from dcr_cfg_path 时,指定的 disk_path 必须和 dcr_cfg_path 里面配置的 DCR_VTD_PATH 相同。
2.如果配置 dmcssm,dmcssm 的 OGUID 必须和 DCR_OGUID 保持一致。
3.DCR_N_GRP 必须和实际配置的组数目保持一致。
4.CSS 和 ASM 组的 DCR_GRP_N_EP 要相等,DB 的 DCR_GRP_N_EP 要小于等于 CSS/ASM 的 DCR_GRP_N_EP。
5.ASM 节点的 DCR_EP_NAME 必须和 DMASM 系统使用的 DMASVRMAL.INI 配置文件里的 MAL_INST_NAME 保持一致。
6.DB 节点的 DCR_EP_NAME 必须和数据库实例使用 DMMAL.INI 配置文件里的 MAL_INST_NAME、以及 DM.INI 配置文件里的 INSTANCE_NAME 保持一致。
7.所有 DB 节点的 DCR_EP_NAME 都不能重复,DB 组内的 DCR_EP_SEQNO 不能重复。
8.DMDCR_CFG.INI 配置文件中的所有路径均不支持中文路径。

表1.2 DMDCR.INI配置项

DMDCR_PATH 记录DCR磁盘路径
DMDCR_SEQNO 记录当前节点序号(用来获取ASM登录信息)
DMDCR_MAL_PATH 保存DMMAL.INI配置文件的路径,仅对DMASMSVR有效
DMDCR_ASM_RESTART_INTERVAL DMCSS认定DMASM节点故障重启的时间间隔(取值范围0~86400s),单位S,DMCSS只负责和DMDCR_SEQNO节点号相等的DMASM节点的故障重启,超过设置的时间后,如果DMASM节点的active标记仍然为FALSE,则DMCSS会执行自动拉起。 如果配置为0,则不会执行自动拉起操作,缺省为60s
DMDCR_ASM_STARTUP_CMD DMCSS认定DMASM节点故障后,执行自动拉起的命令串,命令串长度不应超过256,可以配置为服务方式或命令行方式启动,具体可参考表下方的DMDCR.INI使用说明
DMDCR_ASM_TRACE_LEVEL 指定日志级别。1:TRACE级别;2:INFO级别;3:WARN级别;4:ERROR级别;5:FATAL级别。缺省为1。日志级别越低(参数值越小),输出的日志越详细。当设置日志级别为较低级别时,兼容输出级别大的日志,如WARN级别也可输出ERROR级别的日志
DMDCR_DB_RESTART_INTERVAL DMCSS认定DMDSC节点故障重启的时间间隔(取值范围0~ 86400s),单位S,DMCSS只负责和DMDCR_SEQNO节点号相等的DMDSC节点的故障重启,超过设置的时间后,如果DMDSC节点的active标记仍然为FALSE,则DMCSS会执行自动拉起。 如果配置为0,则不会执行自动拉起操作,缺省为60s
DMDCR_DB_STARTUP_CMD DMCSS认定DMDSC节点故障后,执行自动拉起的命令串,命令串长度不应超过256,可以配置为服务方式或命令行方式启动,具体可参考表下方的DMDCR.INI使用说明
DMDCR_AUTO_OPEN_CHECK 指定时间内如果节点实例未启动,DMCSS会自动将节点踢出集群环境,单位S,取值应大于等于30s。不配置此参数时表示不启用此功能

使用说明
1.DMASMSVR 和 DMSERVER 使用不同的 MAL 系统,需要配置两套 MAL 系统,配置文件 DMMAL.INI 需要分别生成,保存到不同的目录下,并且 DMMAL.INI 中的配置项不能重复、冲突。
2.DMDSC 集群环境下,只有当所有 OK 节点实例都启动时,整个集群环境才能启动。可能存在某些场景,部分 OK 节点无法正常启动,导致整个集群环境无法正常启动。指定参数 DMDCR_AUTO_OPEN_CHECK 后,如果超过指定时间节点实例还未启动,DMCSS 自动将未启动节点踢出集群环境,变为 ERROR 节点,之后其他活动 OK 节点可以正常启动。
3.DMCSS 自动拉起故障 DMASMSVR 或 DMSERVER 实例。

表1.3 DMINIT.INI配置项

SYSTEM_PATH 初始化数据库存放的路径
DB_NAME 初始化数据库名称
MAIN MAIN表空间路径
MAIN_SIZE MAIN表空间大小
SYSTEM SYSTEM表空间路径
SYSTEM_SIZE SYSTEM表空间大小
ROLL ROLL表空间路径
ROLL_SIZE ROLL表空间大小
CTL_PATH DM.CTL控制文件路径
CTL_SIZE DM.CTL控制文件大小
LOG_SIZE 日志文件大小
DCR_PATH DCR磁盘路径
DCR_SEQNO 连接DMASM节点节点号
ASM_PORT 连接DMASM节点的端口号
节点参数,对具体节点有效
CONFIG_PATH 实例配置文件存放路径
PORT_NUM 节点服务器监听通讯端口号,服务器配置此参数,取值范围102465534,发起连接端的端口在102465535之间随机分配
MAL_HOST 节点MAL系统使用IP。(心跳ip) 对于IPv6地址,若当前环境存在多块网卡,需要用%号指定具体有效的网卡序号或网卡名称;若只有一块网卡或者已配置默认网卡,则可以不指定序号或名称。例如:MAL_HOST = fe80::610e:9715:5ec6:4ea8%ens01,其中ens01为当前环境使用的网卡名称
MAL_PORT MAL监听端口,用于数据守护、DSC、MPP等环境中各节点实例之间MAL链路配置,监听端端口配置此参数,取值范围102465534,发起连接端的端口在102465535之间随机分配
LOG_PATH 日志文件路径

mal 配置文件包括 dmmal.ini 和 dmasvrmal.ini。使用同一套 MAL 系统的所有实例,mal 系统配置文件须严格保持一致。
DMDSC 使用 MAL 配置文件的前提条件:
一 DMASMSVR 和 DMDSC 集群中的 DMSERVER 实例需要分别配置一套独立的 MAL 系统,两者配置的 MAL 环境不能冲突。
二 DMASMSVR 组成的集群环境使用一套 MAL 系统进行通讯,需要在 dmdcr.ini 配置文件中配置 DMDCR_MAL_PATH 参数,指定 MAL 配置文件路径。例如:DMDCR_MAL_PATH =/home/data/dmasvrmal.ini。
三 使用 MAL 系统的 DMSERVER 实例,需要将 DM.INI 配置项 MAL_INI 设置为 1。同时 MAL 系统配置文件名称必须为 DMMAL.INI。

表1.4 DMMAL.INI系统配置文件

MAL_INST_NAME 数据库实例名,与 DM.INI 的 INSTANCE_NAME 配置项保持一致,MAL 系统中数据库实例名要保持唯一
MAL_HOST MAL IP 地址,使用 MAL_HOST+MAL_PORT 创建 MAL 链路。 对于 IPv6 地址,若当前环境存在多块网卡,需要用 % 号指定具体有效的网卡序号或网卡名称;若只有一块网卡或者已配置默认网卡,则可以不指定序号或名称。例如:MAL_HOST = fe80::610e:9715:5ec6:4ea8%ens01,其中 ens01 为当前环境使用的网卡名称

表1.5 dmasvrmal.ini系统配置文件

MAL_INST_NAME 数据库实例名,与 DM.INI 的 INSTANCE_NAME 配置项保持一致,MAL 系统中数据库实例名要保持唯一
MAL_HOST 心跳地址:MAL IP 地址,使用 MAL_HOST+MAL_PORT 创建 MAL 链路。 对于 IPv6 地址,若当前环境存在多块网卡,需要用 % 号指定具体有效的网卡序号或网卡名称;若只有一块网卡或者已配置默认网卡,则可以不指定序号或名称。例如:MAL_HOST = fe80::610e:9715:5ec6:4ea8%ens01,其中 ens01 为当前环境使用的网卡名称
MAL_PORT MAL 监听端口,用于数据守护、DSC、MPP 等环境中各节点实例之间 MAL 链路配置,监听端端口配置此参数,取值范围 1024~65534,发起连接端的端口在 1024~65535 之间随机分配

4. DMDSC使用的环境

硬件环境
主机两台。用于部署数据库实例dmserver、DMCSS、DMASMSVR。内存大小要求:至少2GB。
共享存储。两台机器可以同时访问到的,可以划分为裸设备的磁盘。
网卡。每台主机至少准备2块网卡。提供内部网络和外部网络服务。
注:生产环境必须是2块网卡,本次实验是测试环境无心跳网络,只有公网一块网卡和ip地址

软件环境
操作系统。Linux、Unix、Windows等。
达梦数据库软件。安装好DM数据库软件之后,将拥有配置和管理DMDSC所需的所有软件:dmserver、dminit、dmasmcmd、dmasmsvr、dmasmtool、dmcss、dmcssm等。这些软件位于安装目录/dameng/dmdbms/bin中

二.测试部署

1.环境总体规划

1.1 服务器虚机信息

本次服务器使用的是超融合平台上面的虚拟机。
虚机上的磁盘要设置成共享磁盘,这步骤要在超融合上的虚拟机页面上设置。
本次没有心跳ip,暂且用公网ip,12.22和12.23对应的机器表格上写成1.1.1.1 和2.2.2.2(或者分别叫A和B机器)实际上虚机上面是没有1.1.1.1和2.2.2.2,为了表格美观。

服务器信息 名称 用途和查看的命令
操作系统 麒麟v10 Linux dsc1 4.19.90-52.22.v2207.ky10.x86_64 #1 SMP Tue Mar 14 12:19:10 CST 2023 x86_64 x86_64 x86_64 GNU/Linux
Cpu 16核 cat /proc/cpuinfo
内存 32g free -g
网络 ens18 外部通信ip
心跳网络无 暂且用公网ip
硬盘 sda 共享盘100G,存储DCR信息
硬盘 sdb 共享盘100G,存储VOTE DISK信息
硬盘 sdc 共享盘100G,存储REDO信息
硬盘 sdd 共享盘100G,存储DATA信息

1.2 IP和端口目录的规划

图片21.png
图片22.png

2. 共享盘的介绍

绑定磁盘官方上面有3种方式:多路径方式、uuid方式、裸设备,本次实验采用的是uuid方式
1. 多路径方式
虚机需要装多路径对应的包,然后才能调用多路径对应的命令
2. uuid方式
如没有配置多路径,采用 UUID 绑定多个 LUN 存储,可以通过 fdisk -l 命令查看 LUN 设备,本次实验共享存储盘为 sda,sdb,sdc,sdd,采用的是此方式
3. 裸设备的方式
缺点:Linux主机的每个磁盘最多能划分 16 个分区,去掉一个扩展分区后,可用的只有 15 个;每个分区只支持一个裸设备;每个裸设备只能对应一个文件、裸设备一经创建大小就固定、不能动态调整等。所以实际使用时可能会出现数据库文件空间不够或者空间浪费的情况,需要根据应用实际情况提前分配好裸设备大小。
优点:设置方便
步骤:磁盘要分区–格式化—清除磁盘头信息 
dd if=/dev/zero of=/dev/sdb bs=1M count=100   --磁盘头信息清除
麒麟v10上面设置的共享盘文件参考
[root@localhost rules.d]# cat 98-raw.rules
KERNEL==“vdb”, OWNER=“dmdba”, GROUP=“dinstall”, MODE=“0660”, SYMLINK+=“raw10”
KERNEL==“vdc”, OWNER=“dmdba”, GROUP=“dinstall”, MODE=“0660”, SYMLINK+=“raw11”
KERNEL==“vdd”, OWNER=“dmdba”, GROUP=“dinstall”, MODE=“0660”, SYMLINK+=“raw12”
KERNEL==“vde”, OWNER=“dmdba”, GROUP=“dinstall”, MODE=“0660”, SYMLINK+=“raw13”

重启裸设备的命令
udevadm control --reload-rules
udevadm trigger

查看裸设备对应的共享盘
[root@localhost rules.d]# ls -l /dev/raw*
lrwxrwxrwx 1 root root  3 Jul 16 11:24 /dev/raw10 -> vdb
lrwxrwxrwx 1 root root  3 Jul 16 11:24 /dev/raw11 -> vdc
lrwxrwxrwx 1 root root  3 Jul 16 11:24 /dev/raw12 -> vdd
lrwxrwxrwx 1 root root  3 Jul 16 11:24 /dev/raw13 -> vde

2.1 查看共享磁盘信息

A和B机器查看共享盘
[root@dsc1 ~]# fdisk -l
图片23.png

2.2 查看uuid信息

/usr/lib/udev/scsi_id -g -u /dev/sda
/usr/lib/udev/scsi_id -g -u /dev/sdb
/usr/lib/udev/scsi_id -g -u /dev/sdc
/usr/lib/udev/scsi_id -g -u /dev/sdd

2.3 绑定磁盘

A和B机器上面相同,A生成直接scp传输到B机器上
[root@dsc1 ~]# cat uuid.sh
curr=$(cd “$(dirname “$0”)”;pwd)
rm -f $curr/88-dm-asmdevices.rules
for i in a b c d;
do
echo “KERNEL==\“sd?\”,SUBSYSTEM==\“block\”, PROGRAM==\”/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\“dm/asm-disk$i\”,OWNER=\“dmdba\”, GROUP=\“dinstall\”,MODE=\“0660\”" >> $curr/88-dm-asmdevices.rules
done

[root@dsc2 ~]# cd /etc/udev/rules.d/
[root@dsc1 rules.d]# cat 88-dm-asmdevices.rules
KERNEL==“sd?”,SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“366010c804041590ac3b0b818bd2b2ad4”, SYMLINK+=“dm/asm-diska”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”

KERNEL==“sd?”,SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“36bd805c6f04a9908500024693eb6485f”, SYMLINK+=“dm/asm-diskb”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”

KERNEL==“sd?”,SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“364a20cb9d048d60853e07dcc274c4819”, SYMLINK+=“dm/asm-diskc”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”

KERNEL==“sd?”,SUBSYSTEM==“block”, PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT==“36e7904821044760b63205b9913524b36”, SYMLINK+=“dm/asm-diskd”,OWNER=“dmdba”, GROUP=“dinstall”,MODE=“0660”

2.4 生效查看

生效的命令或者重启
udevadm trigger --type=devices --action=change
udevadm control --reload-rules
查看A和B机器
图片24.png

4. 数据库软件的介绍

A和B机器都要装数据库软件,软件存放的目录是/dameng/dmdbms
安装过程省略

5. DSC集群的部署

5.1 非镜像环境下dcr、vote和镜像环境下dcrv磁盘格式化使用的文件

A&B机器
[dmdba@dsc2 ~]$ cd /dameng/dmdbms/
[dmdba@dsc2 dmdbms]$ mdkir -p config
[dmdba@dsc1 config]$ ll
total 24
-rw-r–r-- 1 dmdba dinstall  372 Jul 22 16:38 asminit.txt
drwxr-xr-x 3 dmdba dinstall  138 Jul 24 16:10 db0_config
drwxr-xr-x 2 dmdba dinstall   73 Jul 22 17:29 db1_config
-rw-r–r-- 1 dmdba dinstall  274 Jul 22 12:07 dmasvrmal.ini
-rw-r–r-- 1 dmdba dinstall  246 Jul 22 17:25 dmcssm.ini
-rw-r–r-- 1 dmdba dinstall 1985 Jul 22 16:39 dmdcr_cfg.ini
-rw-r–r-- 1 dmdba dinstall  410 Jul 23 14:26 dmdcr.ini
-rw-r–r-- 1 dmdba dinstall 1529 Jul 22 17:21 dminit.ini

[dmdba@dsc1 config]$ cat dmdcr_cfg.ini
DCR_N_GRP              = 3  #集群环境有多少个GROUP,范围:1~16
DCR_VTD_PATH           = /dev/dm/asm-diskb
DCR_OGUID              = 45331
[GRP]  #新建一个GROUP
  DCR_GRP_TYPE             = CSS  #组类型(CSS/ASM/DB)
  DCR_GRP_NAME             = GRP_CSS  #组名
  DCR_GRP_N_EP             = 2  #组内节点个数
  DCR_GRP_DSKCHK_CNT       = 60  #磁盘心跳容错时间,单位:秒
[GRP_CSS]
  DCR_EP_NAME              = CSS0  #CSS节点名
  DCR_EP_HOST              = 215.244.12.22 #心跳地址
  DCR_EP_PORT              = 5336  #CSS端口
[GRP_CSS]
  DCR_EP_NAME              = CSS1
  DCR_EP_HOST              = 215.244.12.23 #心跳地址
  DCR_EP_PORT              = 5336
[GRP]
  DCR_GRP_TYPE             = ASM #组类型(CSS/ASM/DB)
  DCR_GRP_NAME             = GRP_ASM
  DCR_GRP_N_EP             = 2
  DCR_GRP_DSKCHK_CNT       = 60
[GRP_ASM]
  DCR_EP_NAME              = ASM0  #ASM节点名,和dmasvrmal的MAL_INST_NAME一致
  DCR_EP_SHM_KEY           = 93360  #共享内存标识
  DCR_EP_SHM_SIZE          = 10  #共享内存大小
  DCR_EP_HOST              = 215.244.12.22  #心跳地址
  DCR_EP_PORT              = 5436  #ASM端口
  DCR_EP_ASM_LOAD_PATH     = /dev/dm
[GRP_ASM]
  DCR_EP_NAME              = ASM1
  DCR_EP_SHM_KEY           = 93361
  DCR_EP_SHM_SIZE          = 10
  DCR_EP_HOST              = 215.244.12.23 #心跳地址
  DCR_EP_PORT              = 5436
  DCR_EP_ASM_LOAD_PATH     = /dev/dm
[GRP]
  DCR_GRP_TYPE             = DB #组类型(CSS/ASM/DB)
  DCR_GRP_NAME             = GRP_DB
  DCR_GRP_N_EP             = 2
  DCR_GRP_DSKCHK_CNT       = 60
[GRP_DB]
  DCR_EP_NAME              = DB0  #实例名,和dm.ini的INSTANCE_NAME一致
  DCR_EP_SEQNO             = 0  #组内序号,不能重复
  DCR_EP_PORT              = 5236  #实例端口,和dm.ini的PORT_NUM一致
  DCR_CHECK_PORT           = 5536  #DCR检查端口
[GRP_DB]
  DCR_EP_NAME              = DB1
  DCR_EP_SEQNO             = 1
  DCR_EP_PORT              = 5236
  DCR_CHECK_PORT           = 5536

5.2 初始化磁盘组

在任意机器上执行
[dmdba@dsc1 config]$ cat asminit.txt
#asm script file
create dcrdisk ‘/dev/dm/asm-diska’ ‘DMDCR’
create votedisk ‘/dev/dm/asm-diskb’ ‘DMVOTE’
create asmdisk ‘/dev/dm/asm-diskc’ ‘DMREDO’
create asmdisk ‘/dev/dm/asm-diskd’ ‘DMDATA’
init dcrdisk ‘/dev/dm/asm-diska’ from ‘/dameng/dmdbms/config/dmdcr_cfg.ini’ identified by ‘Dameng123’
init votedisk ‘/dev/dm/asm-diskb’ from ‘/dameng/dmdbms/config/dmdcr_cfg.ini’
注意:默认密码要符合密码要求,密码后续初始化数据库也要使用
[dmdba@dsc1 config]$ dmasmcmd  --help
dmasmcmd V8
Analyze parameter failed, code: -3503, desc: Invalid input --help
version: 03134284294-20250121-257909-20119 Pack28
Format:  ./dmasmcmd KEYWORD=value
Example: ./dmasmcmd SCRIPT_FILE=asmcmd.txt
Keyword              Explanation(default value)
------------------------------------------------------------
SCRIPT_FILE          asmcmd script file path
RET_FLAG             Whether to return error when exec script file. 0 for ignore, 1 for return.(0)
HELP                 Show this help info

[dmdba@dsc1 config]$ dmasmcmd SCRIPT_FILE=/dameng/dmdbms/config/asminit.txt

图片25.png

5.3 mal系统中关于ASM的配置dmasvrmal.ini

A&B机器
[dmdba@dsc1 config]$ cat dmasvrmal.ini
[MAL_INST1]
  MAL_INST_NAME            = ASM0
  MAL_HOST                 = 215.244.12.22 #心跳地址
  MAL_PORT                 = 5636
[MAL_INST2]
  MAL_INST_NAME            = ASM1
  MAL_HOST                 = 215.244.12.23 #心跳地址
  MAL_PORT                 = 5636

5.4 集群中css,asm相关的配置文件dmdcr.ini

注意:DMDCR_SEQNO在A和B 机器上的不同
A机器
[dmdba@dsc1 config]$ cat dmdcr.ini
DMDCR_PATH                 = /dev/dm/asm-diska
DMDCR_MAL_PATH             = /dameng/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO                = 0
DMDCR_ASM_TRACE_LEVEL      = 2
DMDCR_AUTO_OPEN_CHECK      = 90
#DMDCR_ASM_RESTART_INTERVAL = 30
#DMDCR_ASM_STARTUP_CMD      = /dameng/dmdbms/bin/DmASMSvrServiceASM start
#DMDCR_DB_RESTART_INTERVAL  = 60
#DMDCR_DB_STARTUP_CMD       = /dameng/dmdbms/bin/DmServiceDMS start

B机器
[dmdba@dsc2 config]$ cat dmdcr.ini
DMDCR_PATH                 = /dev/dm/asm-diska
DMDCR_MAL_PATH             = /dameng/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO                = 1
DMDCR_ASM_TRACE_LEVEL      = 2
DMDCR_AUTO_OPEN_CHECK      = 90
#DMDCR_ASM_RESTART_INTERVAL = 30
#DMDCR_ASM_STARTUP_CMD      = /dameng/dmdbms/bin/DmASMSvrServiceASM start
#DMDCR_DB_RESTART_INTERVAL  = 60
#DMDCR_DB_STARTUP_CMD       = /dameng/dmdbms/bin/DmServiceDMS start
当前为手动拉起 db0 机器和 db1 机器的 ASM 和 DMSERVER 服务。待集群配置完成后,再修改为自动拉起(删除 dmdcr.ini 中的“#”号即可)。在实际项目中集群出现异常时需排查诱因,故在生产环境上一般不建议配置自动拉起。

5.5 两台服务器都使用root用户注册CSS和ASM服务

A&B机器
/dameng/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dameng/dmdbms/config/dmdcr.ini  -p CSS 
/dameng/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dameng/dmdbms/config/dmdcr.ini  -y DmCSSServiceCSS.service -p ASM

卸载服务:
 [root@dsc2 root]#  /dameng/dmdbms/script/root/dm_service_uninstaller.sh -n  DmASMSvrServiceASM
[root@dsc1 root]# /dameng/dmdbms/script/root/dm_service_uninstaller.sh -n DmCSSServiceCSS

5.6 两台服务器分别顺序启动CSS、ASM服务

DSC1服务器:
/dameng/dmdbms/bin/DmCSSServiceCSS start
DSC2服务器:
/dameng/dmdbms/bin/DmCSSServiceCSS start
DSC1服务器:
/dameng/dmdbms/bin/DmASMSvrServiceASM start
DSC2服务器:
/dameng/dmdbms/bin/DmASMSvrServiceASM start

5.7 创建DMASM磁盘组

任意节点
[dmdba@dsc2 bin]$ dmasmtool --help
DMASMTOOL V8
Analyze parameter failed, [code: -3503] Invalid input --help
version: 03134284294-20250121-257909-20119 Pack28
Format:  ./dmasmtool KEYWORD=value
Example: ./dmasmtool DCR_INI=/opt/data/DAMENG/dmdcr.ini
Keyword              Explanation
------------------------------------------------------------
DCR_INI              dmdcr.ini file path
HOST                 asm server address, ipv6 address should enclosed by []
PORT_NUM             asm server port
USERID               user info for login asm server (format: ASMSYS/PASSWORD)
SCRIPT_FILE          asmtool script file path
HELP                 Show this help info
[dmdba@dsc2 bin]$ dmasmtool DCR_INI=/dameng/dmdbms/config/dmdcr.ini
create diskgroup ‘DM_REDO’ asmdisk ‘/dev/dm/asm-diskc’
create diskgroup ‘DM_DATA’ asmdisk ‘/dev/dm/asm-diskd’
图片26.png

5.8 初始化数据库

A机器执行
[dmdba@dsc1 config]$ cat dminit.ini
  db_name                  = DSC
  system_path              = +DM_DATA/DATA
  main                     = +DM_DATA/DATA/DSC/main.dbf
  main_size                = 128
  roll                     = +DM_DATA/DATA/DSC/roll.dbf
  roll_size                = 128
  system                   = +DM_DATA/DATA/DSC/system.dbf
  system_size              = 128
  ctl_path                 = +DM_DATA/DATA/DSC/dm.ctl
  ctl_size                 = 8
  log_size                 = 256
  dcr_path                 = /dev/dm/asm-diska
  dcr_seqno                = 0
  auto_overwrite           = 1
  PAGE_SIZE                = 32
  EXTENT_SIZE              = 32
  CASE_SENSITIVE           = Y
  CHARSET                  = 0
  BLANK_PAD_MODE           = 1
  SYSDBA_PWD               = Dameng123
  SYSAUDITOR_PWD           = Dameng123
[DB0]
  config_path              = /dameng/dmdbms/config/db0_config
  port_num                 = 5236
  mal_host                 = 215.244.12.22 #心跳地址
  mal_port                 = 5736
  log_path                 = +DM_REDO/log/db0_log01.log
  log_path                 = +DM_REDO/log/db0_log02.log
  log_path                 = +DM_REDO/log/db0_log03.log
[DB1]
  config_path              = /dameng/dmdbms/config/db1_config
  port_num                 = 5236
  mal_host                 = 215.244.12.23 #心跳地址
  mal_port                 = 5736
  log_path                 = +DM_REDO/log/db1_log01.log
  log_path                 = +DM_REDO/log/db1_log02.log
  log_path                 = +DM_REDO/log/db1_log03.log 
[dmdba@dsc1 config]$ dminit control=/dameng/dmdbms/config/dminit.ini
图片27.png
A机器执行结束后,会在/dameng/dmdbms/config目录下面生成db0_config、db1_config2个文件,叫db1_config传输到DSC2机器上

[root@dsc1 config]# scp -r -P 22234 db1_config/   root@215.244.12.23:/dameng/dmdbms/config

B机器上面查看
[root@dsc2 config]# chown -R dmdba:dinstall db1_config/
[root@dsc2 config]# ls -l
total 20
drwxr-xr-x 3 dmdba dinstall 106 Jul 25 15:33 db1_config
-rw-r–r-- 1 dmdba dinstall 274 Jul 22 12:08 dmasvrmal.ini
-rw-r–r-- 1 dmdba dinstall 246 Jul 22 17:24 dmcssm.ini
-rw-r–r-- 1 dmdba dinstall 1985 Jul 22 16:35 dmdcr_cfg.ini
-rw-r–r-- 1 dmdba dinstall 410 Jul 23 14:27 dmdcr.ini
-rw-r–r-- 1 dmdba dinstall 1529 Jul 22 17:21 dminit.ini
[root@dsc2 config]# pwd
/dameng/dmdbms/config

5.9 配置监视器配置文件dmcssm.ini

A&B机器
[root@dsc2 config]# cat dmcssm.ini
CSSM_OGUID                 = 45331
CSSM_CSS_IP                = 215.244.12.22:5336 #心跳ip
CSSM_CSS_IP                = 215.244.12.23:5336 #心跳ip
CSSM_LOG_PATH              = /dameng/dmdbms/log
CSSM_LOG_FILE_SIZE         = 256
CSSM_LOG_SPACE_LIMIT       = 2048

5.10 配置A&B归档文件

A机器
/dameng/dmdbms/config/db0_config/dm.ini
修改ARCH_INI的值为1(默认值为0)
[dmdba@dsc1 db0_config]$ cat dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DM_DATA/DB0/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DB1
ARCH_INCOMING_PATH = +DM_DATA/DB1/arch
ARCH_FILE_SIZE = 1024

B机器
/dameng/dmdbms/config/db1_config/dm.ini
修改ARCH_INI的值为1(默认值为0)
[root@dsc2 db1_config]# cat dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DM_DATA/DB1/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DB0
ARCH_INCOMING_PATH = +DM_DATA/DB0/arch
ARCH_FILE_SIZE = 1024

5.11 注册DMSERVER服务

DSC1基于DMASMSvrServiceASM.service注册DMSERVER服务
/dameng/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dameng/dmdbms/config/db0_config/dm.ini -dcr_ini /dameng/dmdbms/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DMS

DSC2基于DMASMSvrServiceASM.service注册DMSERVER服务
/dameng/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dameng/dmdbms/config/db1_config/dm.ini -dcr_ini /dameng/dmdbms/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DMS

5.12 查看集群的进程

A&B机器
[root@dsc1 ~]# ps -ef|grep dmdba
dmdba 1675 1 0 Jul25 ? 00:00:06 /dameng/dmdbms/bin/dmap dmap_ini=/dameng/dmdbms/bin/dmap.ini
dmdba 1676 1 0 Jul25 ? 00:01:28 /dameng/dmdbms/bin/dmcss dcr_ini=/dameng/dmdbms/config/dmdcr.ini -noconsole
dmdba 6342 1 0 Jul25 ? 00:01:49 /dameng/dmdbms/bin/dmasmsvr dcr_ini=/dameng/dmdbms/config/dmdcr.ini -noconsole
dmdba 12032 1 0 Jul25 ? 00:21:49 /dameng/dmdbms/bin/dmserver path=/dameng/dmdbms/config/db0_config/dm.ini dcr_ini=/dameng/dmdbms/config/dmdcr.ini -noconsole

[root@dsc2 config]# ps -ef|grep dmdba
dmdba 1655 1 0 Jul25 ? 00:01:11 /dameng/dmdbms/bin/dmcss dcr_ini=/dameng/dmdbms/config/dmdcr.ini -noconsole
dmdba 1656 1 0 Jul25 ? 00:00:07 /dameng/dmdbms/bin/dmap dmap_ini=/dameng/dmdbms/bin/dmap.ini
dmdba 6698 1 0 Jul25 ? 00:01:49 /dameng/dmdbms/bin/dmasmsvr dcr_ini=/dameng/dmdbms/config/dmdcr.ini -noconsole
dmdba 10129 1 0 Jul25 ? 00:21:29 /dameng/dmdbms/bin/dmserver path=/dameng/dmdbms/config/db1_config/dm.ini dcr_ini=/dameng/dmdbms/config/dmdcr.ini -noconsole

三.集群的验证和启停

1. 集群数据验证

A机器是控制节点
图片1.png

B机器是普通节点

图片2.png

创建测试表,添加数据
A机器未提交,B查看不到A的数据
A机器提交,B查看能看到A的数据

SQL> create table ycy(id int,name varchar(200));

SQL> insert into ycy values(1,‘we’);

SQL> commit;

SQL> select * from ycy;

LINEID     ID          NAME

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

1          1           we

SQL> insert into ycy values(2,‘dddd’);  --未提交

B机器上面查看,只能看到ID=1的数据

SQL> select * from ycy;

LINEID     ID          NAME

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

1          1           we

图片3.png

2. 集群自启动验证

注意:DMDCR_SEQNO在A和B 机器上的不同
A机器
[dmdba@dsc1 config]$ cat dmdcr.ini
DMDCR_PATH                 = /dev/dm/asm-diska
DMDCR_MAL_PATH             = /dameng/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO                = 0
DMDCR_ASM_TRACE_LEVEL      = 2
DMDCR_AUTO_OPEN_CHECK      = 90
DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD      = /dameng/dmdbms/bin/DmASMSvrServiceASM start
DMDCR_DB_RESTART_INTERVAL  = 60
DMDCR_DB_STARTUP_CMD       = /dameng/dmdbms/bin/DmServiceDMS start

B机器

[dmdba@dsc2 config]$ cat dmdcr.ini
DMDCR_PATH                 = /dev/dm/asm-diska
DMDCR_MAL_PATH             = /dameng/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO                = 1
DMDCR_ASM_TRACE_LEVEL      = 2
DMDCR_AUTO_OPEN_CHECK      = 90
DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD      = /dameng/dmdbms/bin/DmASMSvrServiceASM start
DMDCR_DB_RESTART_INTERVAL  = 60
DMDCR_DB_STARTUP_CMD       = /dameng/dmdbms/bin/DmServiceDMS start
叫注释全部删掉

A&B机器全部reboot
[root@dsc1 db0_config]# reboot
[root@dsc2 db1_config]# reboot

可以看到机器重启后DMCSS,DMASM,DMSERVER进程都会自动重启,重启后控制节点和普通节点都不会发生变化

3. 集群启停步骤的验证

集群启停的步骤如下:
停止顺序:A/B机器DMSERVER→A/B机器ASM→A/B机器CSS

停止DMSERVER (A/B机器操作):
su - dmdba
/dameng/dmdbms/bin/DmServiceDMS stop
停止ASM (A/B机器操作):
su - dmdba
/dameng/dmdbms/bin/DmASMSvrServiceASM stop
停止CSS (A/B机器操作):
su - dmdba
/dameng/dmdbms/bin/DmCSSServiceCSS stop

启动CSS (A/B机器操作):
su - dmdba
/dameng/dmdbms/bin/DmCSSServiceCSS start
启动ASM (A/B机器操作):
su - dmdba
/dameng/dmdbms/bin/DmASMSvrServiceASM start
启动DMSERVER (A/B机器操作):
su - dmdba
/dameng/dmdbms/bin/DmServiceDMS start

四.集群监视器查看

4.1启动监视器

[dmdba@dsc1 ~]$ dmcssm --help
Invalid input --help

version: 03134284294-20250121-257909-20119 Pack28

Format: ./dmcssm KEYWORD=value

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

Keyword              Explanation

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

INI_PATH             ini file path

HELP                 Show this help info

[dmdba@dsc1 ~]$ dmcssm INI_PATH=/dameng/dmdbms/config/dmcssm.ini

图片4.png
图片5.png

4.2监视器的使用命令

命令 含义
show 查看所有组的信息
show config 查看 dmdcr_cfg.ini 的配置信息
show monitor 查看当前连接到主 CSS 的所有监视器信息
help 更多指令可通过 help 命令获取

图片6.png

图片7.png图片8.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服