第二章 DMDSC集群搭建

本文详细介绍了DMDSC集群的部署过程,包括集群规划、存储管理(60GB分配与挂载)、DSC搭建(dmdcr_cfg.ini、磁盘组初始化等步骤)、CSS、ASM及DMSERVER服务的启动与注册,以及监视器配置和集群操作。

第二章 DMDSC集群搭建

第一章 DMDSC集群介绍


五、DMDSC部署

5.1集群规划

服务器配置信息
A机器	B机器
业务IP	192.168.2.100	192.168.2.201
心跳IP	192.168.10.100	192.168.10.101
软件目录	/dm8/	/dm8/
安装目录	/dm8/	/dm8/
配置文件目录	/dm8/dsc/config	/dm8/dsc/config
归档日志目录	/dm8/dsc/arch_0	/dm8/dsc/arch_1
远程归档目录	/dm8/dsc/arch_0_remote	/dm8/dsc/arch_1_remote
备份目录	/dm8/dsc/bak	/dm8/dsc/bak
dmdcr_cfg	CSS	DCR_EP_NAME	CSS0	CSS1
DCR_EP_HOST	192.168.10.100	192.168.10.101
DCR_EP_PORT	5336	5337
ASM	DCR_EP_NAME	ASM0	ASM1
DCR_EP_HOST	192.168.10.100	192.168.10.101
DCR_EP_PORT	5436	5437
DB	DCR_EP_NAME	DSC0	DSC1
DCR_EP_PORT	5236	5236
DCR_CHECK_PORT	5536	5537
dmasvrmal	MAL_INST_NAME	ASM0	ASM1
MAL_HOST	192.168.10.100	192.168.10.101
MAL_PORT	5636	5637
dminit	PORT_NUM	5236	5236
MAL_HOST	192.168.10.100	192.168.10.101
MAL_PORT	5736	5737
归档上限	51200	51200
OGUID	45331

5.2、存储规划

5.2.1划分存储(虚拟机一共分配了60G)

用途	空间规划(总共60G)
sdb1用于dcr信息	100M
sdb2用于存放vote信息	100M
sdb3用于存放redo log	20480M
sdb4用于存放data	剩下的全部空间

A机器:小于2TB的存储使用fdisk命令来划分
[root@~]# fdisk /dev/sdb
  1) 依次输入  n  p  1  回车  +100M,完成第一块磁盘划分
  2) 依次输入  n  p  2  回车  +100M,完成第二块磁盘划分
  3) 依次输入  n  p  3  回车  +20480M,完成第三块磁盘划分
  4) 依次输入  n  p  回车  回车  回车,完成第四块磁盘划分
  5) 输入w命令,将裸设备划分的设置进行保存

A机器:大于2TB的需要使用parted命令来划分
[root@~]# parted /dev/sdb
  1)  输入  mklabel gpt  回车,将MBR磁盘磁盘转换为gpt格式
  2)  输入  mkpart primary 0 100 回车,完成第一块磁盘划分
  3)  输入  mkpart primary 100 200 回车,完成第二块磁盘划分
  4)  输入  mkpart primary 200 20680 回车,完成第三块磁盘划分
  5)  输入  mkpart primary 20680 5498G 回车,完成第四块磁盘划分
  6)  输入  quit  回车,完成磁盘划分
A机器、B机器依次执行
[root@~]# partprobe /dev/sdb

5.2.2挂存储方法1:直接挂

A机器、B机器依次修改
[root@~]# vi /etc/udev/rules.d/70-persistent-ipoib.rules
  ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
  ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
  ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
  ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N"
  ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
[root@~]# partprobe /dev/sdb
[root@~]# reboot
注意:可通过blockdev --getsize64 /dev/raw/raw*命令查看设备大小。

5.2.3挂存储方法2:多路径绑定

使用命令ll /dev/mappr和ll /dev/dm*查看对应设备的信息
例如,/dev/mapper/mpathg1对应dm-3,主设备编号为253,次设备编号为3

A机器、B机器依次修改
[root@~]# vi /etc/udev/rules.d/70-persistent-ipoib.rules
  ACTION=="add",ENV{MAJOR}=="253",ENV{MINOR}=="3",RUN+="/bin/raw /dev/raw/raw1 %M %m"
  ACTION=="add",ENV{MAJOR}=="253",ENV{MINOR}=="4",RUN+="/bin/raw /dev/raw/raw2 %M %m"
  ACTION=="add",ENV{MAJOR}=="253",ENV{MINOR}=="5",RUN+="/bin/raw /dev/raw/raw3 %M %m"
  ACTION=="add",ENV{MAJOR}=="253",ENV{MINOR}=="6",RUN+="/bin/raw /dev/raw/raw4 %M %m"
  ACTION=="add",KERNEL=="raw[1-4]",OWNER="dmdba",GROUP="dinstall",MODE="660"
[root@~]# partprobe /dev/mapper/mpathg
[root@~]# reboot
注意:可通过blockdev --getsize64 /dev/raw/raw*命令查看设备大小。

5.3、搭建DSC

5.3.1创建dmdcr_cfg.ini

A机器、B机器配置相同
[dmdba@dmdsc01 config]$ vi dmdcr_cfg.ini
  DCR_N_GRP                = 3  #集群环境有多少个GROUP,范围:1~16
  DCR_VTD_PATH             = /dev/raw/raw2 #Voting Disk Path
  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              = 192.168.10.100  #心跳地址
  DCR_EP_PORT              = 5336  #CSS端口
[GRP_CSS]
  DCR_EP_NAME              = CSS1
  DCR_EP_HOST              = 192.168.10.101
  DCR_EP_PORT              = 5337

[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              = ASM0  #ASM节点名,和dmasvrmal的MAL_INST_NAME一致
  DCR_EP_SHM_KEY           = 93360  #共享内存标识
  DCR_EP_SHM_SIZE          = 10  #共享内存大小
  DCR_EP_HOST              = 192.168.10.100  #心跳地址
  DCR_EP_PORT              = 5436  #ASM端口
  DCR_EP_ASM_LOAD_PATH     = /dev/raw
[GRP_ASM]
  DCR_EP_NAME              = ASM1
  DCR_EP_SHM_KEY           = 93361
  DCR_EP_SHM_SIZE          = 10
  DCR_EP_HOST              = 192.168.10.101
  DCR_EP_PORT              = 5437
  DCR_EP_ASM_LOAD_PATH     = /dev/raw

[GRP]
  DCR_GRP_TYPE             = DB
  DCR_GRP_NAME             = GRP_DSC
  DCR_GRP_N_EP             = 2
  DCR_GRP_DSKCHK_CNT       = 60
[GRP_DSC]
  DCR_EP_NAME              = DSC0  #实例名,和dm.ini的INSTANCE_NAME一致
  DCR_EP_SEQNO             = 0  #组内序号,不能重复
  DCR_EP_PORT              = 5236  #实例端口,和dm.ini的PORT_NUM一致
  DCR_CHECK_PORT           = 5536  #DCR检查端口
[GRP_DSC]
  DCR_EP_NAME              = DSC1
  DCR_EP_SEQNO             = 1
  DCR_EP_PORT              = 5236
  DCR_CHECK_PORT           = 5537

5.3.2初始化磁盘组

A机器
[dmdba@dmdsc01 bin]$ ./dmasmcmd 
DMASMCMD V8
ASM>
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
[Trace]The ASM initialize dcrdisk /dev/raw/raw1 to name DMASMdcr
Used time: 49.881(ms).
ASM>create votedisk '/dev/raw/raw2' 'vote'
[Trace]The ASM initialize votedisk /dev/raw/raw2 to name DMASMvote
Used time: 11.775(ms).
ASM>create asmdisk '/dev/raw/raw3' 'LOG0'
[Trace]The ASM initialize asmdisk /dev/raw/raw3 to name DMASMLOG0
Used time: 16.099(ms).
ASM>create asmdisk '/dev/raw/raw4' 'DATA0'
[Trace]The ASM initialize asmdisk /dev/raw/raw4 to name DMASMDATA0
Used time: 1.568(ms).
ASM>
ASM>init dcrdisk '/dev/raw/raw1' from '/dm8/dsc/config/dmdcr_cfg.ini' identified by 'admin1234' 
[Trace]DG 126 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
[Trace]DG 126 alloc 4 extents for 0xfe000002, addr(disk_id, disk_auno, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.
Used time: 107.381(ms).
ASM>init votedisk '/dev/raw/raw2' from '/dm8/dsc/config/dmdcr_cfg.ini'
[Trace]DG 125 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
[Trace]DG 125 alloc 4 extents for 0xfd000002, addr(disk_id, disk_auno, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.
Used time: 61.020(ms).

5.3.3创建dmasvrmal.ini

A机器、B机器配置相同
[dmdba@dmdsc01 config]$ vi dmasvrmal.ini 
[MAL_INST1]
  MAL_INST_NAME            = ASM0
  MAL_HOST                 = 192.168.10.100  #心跳地址
  MAL_PORT                 = 5636  #MAL监听端口
[MAL_INST2]
  MAL_INST_NAME            = ASM1
  MAL_HOST                 = 192.168.10.101
  MAL_PORT                 = 5637 

5.3.4创建dmdcr.ini

A机器
[dmdba@dmdsc01 config]$ vi dmdcr.ini 
DMDCR_PATH                 = /dev/raw/raw1
DMDCR_MAL_PATH             = /dm8/dsc/config/dmasvrmal.ini
DMDCR_SEQNO                = 0
DMDCR_AUTO_OPEN_CHECK      = 90

#DMDCR_ASM_RESTART_INTERVAL = 30  #CSS认定ASM故障重启的时间
#DMDCR_ASM_STARTUP_CMD      = /dm8/bin/dmasmsvr dcr_ini=/dm8/dsc/config/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL  = 60  #CSS认定DSC故障重启的时间
#DMDCR_DB_STARTUP_CMD       = /dm8/bin/dmserver path=/dm8/dsc/config/dsc0_config/dm.ini dcr_ini=/dm8/dsc/config/dmdcr.ini
B机器
[dmdba@dmdsc02 config]$ vi dmdcr.ini 
DMDCR_PATH                 = /dev/raw/raw1
DMDCR_MAL_PATH             = /dm8/dsc/config/dmasvrmal.ini
DMDCR_SEQNO                = 1
DMDCR_AUTO_OPEN_CHECK      = 90

#DMDCR_ASM_RESTART_INTERVAL = 30  #CSS认定ASM故障重启的时间
#DMDCR_ASM_STARTUP_CMD      = /dm8/bin/dmasmsvr dcr_ini=/dm8/dsc/config/dmdcr.ini

#DMDCR_DB_RESTART_INTERVAL  = 60  #CSS认定DSC故障重启的时间
#DMDCR_DB_STARTUP_CMD       = /dm8/bin/dmserver path=/dm8/dsc/config/dsc1_config/dm.ini dcr_ini=/dm8/dsc/config/dmdcr.ini
注意:当前为手动拉起A机器和B机器的ASM和DMSERVER服务。待集群配置完成后,再修改为自动拉起(删除dmdcr.ini中红色井号)。

5.3.5启动CSS、ASM服务

A机器、B机器依次执行
[dmdba@dmdsc01 bin]$ dmcss DCR_INI=/dm8/dsc/config/dmdcr.ini
DMCSS V8
DMCSS IS READY

[2022-06-07 11:03:31:375] [CSS]: 设置EP CSS0[0]为控制节点

--B机器
[dmdba@dmdsc02 bin]$ dmcss DCR_INI=/dm8/dsc/config/dmdcr.ini
DMCSS V8
DMCSS IS READY

[2022-06-07 11:04:46:401] [CSS]: 设置EP CSS0[0]为控制节点

A机器、B机器依次执行
[dmdba@dmdsc01 bin]$ dmasmsvr DCR_INI=/dm8/dsc/config/dmdcr.ini

ASM SELF EPNO:0
DMASMSVR V8
dmasmsvr task worker thread startup
the ASM server is Ready.

--B机器
[dmdba@dmdsc02 bin]$ dmasmsvr DCR_INI=/dm8/dsc/config/dmdcr.ini

ASM SELF EPNO:1
DMASMSVR V8
dmasmsvr task worker thread startup
the ASM server is Ready.

5.3.6创建DMASM磁盘组

A机器
[dmdba@dmdsc01 bin]$ dmasmtool DCR_INI=/dm8/dsc/config/dmdcr.ini
  ASM> create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
  ASM> create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

日志信息:
ASM Control Node EPNO:0
check css cmd: EP OPEN, cmd_seq: 12
check css cmd: EP REAL OPEN, cmd_seq: 15
[Trace]atsk_process_connect client is local(1)
[Trace]atsk_process_connect success, client_is_local=1
[Trace]Pre-check asmdisk /dev/raw/raw3
[Trace]asvr2_sync_disk_pre_check code:0
[Trace]asm_disk_add: /dev/raw/raw3
[Trace]Create diskgroup DMLOG, with asmdisk /dev/raw/raw3
[Trace]DG 0 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]aptx op_type 1, log_len 1170, start seq 0
[Trace]generate one rpag seq 0.
[Trace]generate one rpag seq 1.
[Trace]generate one rpag seq 2.
[Trace]aptx flush op_type 1, log_len 1170, start seq 3
[Trace]The disk metadata addr(0, 0) flush.
[Trace]Pre-check asmdisk /dev/raw/raw4
[Trace]asvr2_sync_disk_pre_check code:0
[Trace]aptx op_type 1, log_len 15, start seq 3
[Trace]generate one rpag seq 3.
[Trace]aptx flush op_type 1, log_len 15, start seq 4
[Trace]asm_disk_add: /dev/raw/raw4
[Trace]Create diskgroup DMDATA, with asmdisk /dev/raw/raw4
[Trace]DG 1 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]aptx op_type 1, log_len 1171, start seq 0
[Trace]generate one rpag seq 0.
[Trace]generate one rpag seq 1.
[Trace]generate one rpag seq 2.
[Trace]aptx flush op_type 1, log_len 1171, start seq 3
[Trace]The disk metadata addr(1, 0) flush.

5.3.7创建dminit.ini

A机器、B机器配置相同
[dmdba@dmdsc01 config]$ vi dminit.ini
  db_name                  = dsc
  system_path              = +DMDATA/data
  main                     = +DMDATA/data/dsc/main.dbf
  main_size                = 128
  roll                     = +DMDATA/data/dsc/roll.dbf
  roll_size                = 128
  system                   = +DMDATA/data/dsc/system.dbf
  system_size              = 128
  ctl_path                 = +DMDATA/data/dsc/dm.ctl
  ctl_size                 = 8
  log_size                 = 2048
  dcr_path                 = /dev/raw/raw1
  dcr_seqno                = 0
  auto_overwrite           = 1
  PAGE_SIZE                = 32
  CASE_SENSITIVE           = Y
  CHARSET                  = 0

[DSC0]
  config_path              = /dm8/dsc/config/dsc0_config
  port_num                 = 5236
  mal_host                 = 192.168.10.100
  mal_port                 = 5736
  log_path                 = +DMLOG/log/dsc0_log01.log
  log_path                 = +DMLOG/log/dsc0_log02.log 
[DSC1]
  config_path              = /dm8/dsc/config/dsc1_config
  port_num                 = 5236
  mal_host                 = 192.168.10.101
  mal_port                 = 5737
  log_path                 = +DMLOG/log/dsc1_log01.log
  log_path                 = +DMLOG/log/dsc1_log02.log

5.3.8初始化实例

A机器
--初始化实例
[dmdba@dmdsc01 config]$ dminit control=/dm8/dsc/config/dminit.ini
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-03-04
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: +DMLOG/log/dsc0_log01.log


 log file path: +DMLOG/log/dsc0_log02.log


 log file path: +DMLOG/log/dsc1_log01.log


 log file path: +DMLOG/log/dsc1_log02.log

write to dir [+DMDATA/data/dsc].
create dm database success. 2022-06-07 11:13:32

--拷贝文件到B机器
[dmdba@dmdsc01 config]$ scp -r /dm8/dsc/config/dsc1_config dmdba@192.168.10.101:/dm8/dsc/config/

5.3.9创建dmarch.ini

A机器
--修改dm.ini
[dmdba@dmdsc01 config]$ vi /dm8/dsc/config/dsc0_config/dm.ini
  ARCH_INI                 = 1

--创建dmarch.ini
[dmdba@dmdsc01 config]$ vi /dm8/dsc/config/dsc0_config/dmarch.ini
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL
  ARCH_DEST                = /dm8/dsc/arch_0
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200
[ARCHIVE_REMOTE]
  ARCH_TYPE                = REMOTE
  ARCH_DEST                = DSC1
  ARCH_INCOMING_PATH       = /dm8/dsc/arch_0_remote
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200
B机器
--修改dm.ini
[dmdba@dmdsc02 config]$ vi /dm8/dsc/config/dsc1_config/dm.ini
  ARCH_INI                 = 1

--创建dmarch.ini
[dmdba@dmdsc02 config]$ vi /dm8/dsc/config/dsc1_config/dmarch.ini
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL
  ARCH_DEST                = /dm8/dsc/arch_1
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200
[ARCHIVE_REMOTE]
  ARCH_TYPE                = REMOTE
  ARCH_DEST                = DSC0
  ARCH_INCOMING_PATH       = /dm8/dsc/arch_1_remote
  ARCH_FILE_SIZE           = 1024
  ARCH_SPACE_LIMIT         = 51200

5.3.10启动DMSERVER服务

A机器
[dmdba@dmdsc01 bin]$ dmserver /dm8/dsc/config/dsc0_config/dm.ini dcr_ini=/dm8/dsc/config/dmdcr.ini

B机器
[dmdba@dmdsc02 bin]$ dmserver /dm8/dsc/config/dsc1_config/dm.ini dcr_ini=/dm8/dsc/config/dmdcr.ini

5.3.11注册CSS、ASM、DMSERVER后台服务

A机器
[root@dmdsc01 root]# ./dm_service_installer.sh -t dmcss -dcr_ini /dm8/dsc/config/dmdcr.ini -p CSS
Created symlink from /etc/systemd/system/multi-user.target.wants/DmCSSServiceCSS.service to /usr/lib/systemd/system/DmCSSServiceCSS.service.
创建服务(DmCSSServiceCSS)完成

[root@dmdsc01 root]# ./dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
Created symlink from /etc/systemd/system/multi-user.target.wants/DmASMSvrServiceASM.service to /usr/lib/systemd/system/DmASMSvrServiceASM.service.
创建服务(DmASMSvrServiceASM)完成

[root@dmdsc01 root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/dsc/config/dsc0_config/dm.ini -dcr_ini /dm8/dsc/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDSC.service to /usr/lib/systemd/system/DmServiceDSC.service.
创建服务(DmServiceDSC)完成
[root@dmdsc01 root]# 
B机器
[root@dmdsc02 root]# ./dm_service_installer.sh -t dmcss -dcr_ini /dm8/dsc/config/dmdcr.ini -p CSS
Created symlink from /etc/systemd/system/multi-user.target.wants/DmCSSServiceCSS.service to /usr/lib/systemd/system/DmCSSServiceCSS.service.
创建服务(DmCSSServiceCSS)完成

[root@dmdsc02 root]# ./dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
Created symlink from /etc/systemd/system/multi-user.target.wants/DmASMSvrServiceASM.service to /usr/lib/systemd/system/DmASMSvrServiceASM.service.
创建服务(DmASMSvrServiceASM)完成

[root@dmdsc02 root]# ./dm_service_installer.sh -t dmserver -dm_ini /dm8/dsc/config/dsc1_config/dm.ini -dcr_ini /dm8/dsc/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSC
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDSC.service to /usr/lib/systemd/system/DmServiceDSC.service.
创建服务(DmServiceDSC)完成
[root@dmdsc02 root]# 
备注:删除自启
[root@dmdsc01 root]# ./dm_service_uninstaller.sh -n DmCSSServiceCSS
[root@dmdsc01 root]# ./dm_service_uninstaller.sh -n DmASMSvrServiceASM
[root@dmdsc01 root]# ./dm_service_uninstaller.sh -n DmServiceDSC

5.4配置监视器

5.4.1创建dmcssm.ini

A机器、B机器配置相同
[dmdba@dmdsc01 bin]$ vi dmcssm.ini
CSSM_OGUID                 = 45331
CSSM_CSS_IP                = 192.168.10.100:5336
CSSM_CSS_IP                = 192.168.10.101:5337
CSSM_LOG_PATH              = ../log
CSSM_LOG_FILE_SIZE         = 512
CSSM_LOG_SPACE_LIMIT       = 2048

5.4.2注册服务

[dmdba@dmdsc01 bin]$./dm_service_installer.sh -t dmcssm -cssm_ini /dm8/bin/dmcssm.ini -p Monitor
备注:删除自启
[dmdba@dmdsc01 bin]$./dm_service_uninstaller.sh -n DmCSSMonitorServiceMonitor

5.5启停服务

5.5.1启动监视器

[dmdba@dmdsc01 bin]$ DmCSSMonitorServiceMonitor start
前台启动:[dmdba@dmdsc01 bin]$ dmcssm ini_path=/dm8/bin/dmcssm.ini
[monitor]         2022-06-07 12:43:23: CSS MONITOR V8
[monitor]         2022-06-07 12:43:24: CSS MONITOR SYSTEM IS READY.

[monitor]         2022-06-07 12:43:24: Wait CSS Control Node choosed...
[monitor]         2022-06-07 12:43:25: Wait CSS Control Node choosed succeed.

5.5.2启停集群

启动:A/B机器CSS
A/B机器:[dmdba@dmdsc01 bin]$ /opt/dsc/dmdbms/bin/DmCSSServiceCSS start
说明:CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER。

停止: A/B机器DMSERVER→A/B机器ASM→A/B机器CSS
A/B机器:[dmdba@dmdsc01 bin]$ DmServiceDSC stop
A/B机器:[dmdba@dmdsc01 bin]$ DmASMSvrServiceASM stop
A/B机器:[dmdba@dmdsc01 bin]$ DmCSSServiceCSS stop
说明:
(1)、DSC正常停库必须2节点同时停止,根据目前脚本配置,CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER,所以停止DMSERVER和ASM后,要尽快停止CSS,避免被自动拉起。
(2)、ASM服务在任意节点停止,2个节点的ASM服务都会停止,为了保险起见,可以两边都执行停止命令。
(3)、服务全部停止后,要检查后台进程是否全部停止。

社区地址:https://eco.dameng.com

<think>我们正在讨论达梦数据库DMDSC技术。根据用户问题,需要解释DMDSC的含义及其作用,并结合引用内容进行说明。 引用[1]提到了dmdcr.ini配置文件,这是DMDSC集群配置的一部分。 引用[2]和[3]都提到了MAL系统(内部通信机制)以及它在DMDSC集群中的重要性。 根据这些信息,我们可以组织回答如下: 1. DMDSC的定义:达梦数据库共享存储集群(DM Data Shared Cluster)的缩写。 2. 作用:提供高可用性、高吞吐量的数据库集群解决方案。 3. 关键技术点:共享存储架构、MAL通信机制、DMCSS(集群同步服务)等。 同时,我们需要生成相关问题。 注意:回答中引用的段落末尾要自然地添加引用标识。 因此,回答结构如下: 首先解释DMDSC是什么,然后说明其作用,再结合引用内容说明其关键技术(如MAL系统、DMCSS等)。 最后生成相关问题。</think>### DMDSC 的含义及作用 **DMDSC**(DM Data Shared Cluster)是达梦数据库的核心高可用解决方案,全称为**达梦共享存储数据库集群**。其核心作用是通过多节点共享存储架构,实现数据库的高并发、高可用和负载均衡。 #### 核心作用详解: 1. **高可用性** - 集群节点通过共享存储(如 ASM 磁盘组)访问同一份数据。当某个节点故障时,DMCSS(集群同步服务)会自动裁定异常节点并将其踢出集群,其他节点继续提供服务,实现故障秒级切换[^2][^3]。 - 示例:若节点间 MAL 链路异常,DMCSS 会触发节点重组,确保服务连续性。 2. **高性能扩展** - 多节点并行处理请求,突破单机性能瓶颈。通过负载均衡分发读写操作,显著提升吞吐量。 - 支持在线扩容,新增节点可动态加入集群。 3. **数据强一致性** - 基于共享存储架构,所有节点操作同一份数据文件,通过全局锁机制和 MAL 系统保障事务一致性[^1][^3]。 #### 关键技术组件: - **MAL 通信系统**(Multi-Access Layer) 基于 TCP 协议的内部通信机制,负责节点间心跳检测、数据同步和消息传递。DMDSC 包含两套 MAL 系统: - ASM 服务器间 MAL:管理共享存储状态。 - DMSERVER 间 MAL:协调数据库事务[^2][^3]。 - **DMCSS 集群同步服务** 监控节点状态,仲裁故障节点,并自动执行服务拉起(如 `DmService_DSC0 start`)[^1]。 - **共享存储层** 使用 DMASM 文件系统管理共享磁盘(如 `/dev/dm/asm-diske`),所有节点通过 `dmdcr.ini` 配置文件定义存储路径和集群参数[^1]。 > **典型应用场景**:金融核心交易系统、电信计费平台等对高可用和性能有严苛要求的领域。 --- ### 相关问题 1. DMDSC 的故障切换流程具体如何实现? 2. MAL 系统在 DMDSC 集群中承担哪些关键任务? 3. 如何通过 `dmdcr.ini` 配置文件优化 DMDSC 集群性能? 4. DMDSC 与传统主备架构相比有哪些核心优势? 5. DMASM 文件系统在共享存储集群中的作用是什么? [^1]: 达梦数据库 DMDSC 搭建中的 dmdcr.ini 配置示例,定义了共享存储路径、MAL 文件路径及集群自愈参数。 [^2]: MAL 系统作为 DMDSC 的内部通信机制,保障 ASM 服务器和 DMSERVER 节点间的可靠通信。 [^3]: 两套 MAL 系统协同工作原理及 DMCSS 的故障仲裁机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值