
介绍
DM 共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 DMDSC。
DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。
系统结构图:

前期准备
两台服务器、每台服务器至少2块网卡、内存至少2GB、三块共享存储磁盘、提前安装dm软件。
网络配置
###public192.168.31.200 dsc01192.168.31.58 dsc02###priv192.168.33.200 dsc01-priv192.168.33.58 dsc02-priv
存储配置
fdisk -lDisk /dev/sde: 2147 MB, 2147483648 bytes, 4194304 sectorsDisk /dev/sdf: 2147 MB, 2147483648 bytes, 4194304 sectorsDisk /dev/sdg: 2147 MB, 2147483648 bytes, 4194304 sectorsDisk /dev/sdh: 10.7 GB, 10737418240 bytes, 20971520 sectors
存储规划
VOTE 2G dev/sde---/dev/dm/asm-diskeDCR 2G dev/sdf---/dev/dm/asm-diskfARCH 2G dev/sdg---/dev/dm/asm-diskgDATA 10G dev/sdh---/dev/dm/asm-diskh
磁盘绑定
如没有配置多路径,采用 UUID 绑定多个 LUN 存储,可以通过 fdisk -l 命令查看 LUN 设备,这里以共享存储盘为 sde,sdf,sdg,sdh为例。
绑定设备的 UUID。创建 uuid.sh 文件,使用脚本生成配置文件。
ls etc/udev/rules.d/88-dm-asmdevices.rules
for i in e f g h;doecho "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\"" >> etc/udev/rules.d/88-dm-asmdevices.rulesdone
##脚本执行成功后,会生成绑定配置文件 88-dm-asmdevices.rules,可以根据自己的需求进行修改别名 SYMLINK,本文档修改如下:
cat etc/udev/rules.d/88-dm-asmdevices.rulesKERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VB4bbc185c-adebce47", SYMLINK+="dm/asm-diske",OWNER="dmdba", GROUP="dinstall",MODE="0660"KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VB5286a6b0-e686bf8e", SYMLINK+="dm/asm-diskf",OWNER="dmdba", GROUP="dinstall",MODE="0660"KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VB45416f69-4a1e1728", SYMLINK+="dm/asm-diskg",OWNER="dmdba", GROUP="dinstall",MODE="0660"KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="1ATA_VBOX_HARDDISK_VBc8102a7b-c9fec5b3", SYMLINK+="dm/asm-diskh",OWNER="dmdba", GROUP="dinstall",MODE="0660"
配置部署文件。生成配置文件后,把 88-dm-asmdevices.rules 配置文件 cp 到 DSC 的每个节点上。
检查生效。
(1)重启服务器,建议使用该方法。
(2)如果无法重启,执行下述命令。
udevadm control --reload-rulessystemctl restart systemd-udev-trigger.service[root@dsc01 ~]# ls -lrth dev/dm/asm-disk*lrwxrwxrwx 1 root root 6 Dec 8 15:01 dev/dm/asm-diske -> ../sdelrwxrwxrwx 1 root root 6 Dec 8 15:01 dev/dm/asm-diskh -> ../sdhlrwxrwxrwx 1 root root 6 Dec 8 15:01 dev/dm/asm-diskf -> ../sdflrwxrwxrwx 1 root root 6 Dec 8 15:01 dev/dm/asm-diskg -> ../sdg
(3)授权
chown dmdba:dinstall dev/dm/asm-* -R
(4)检查生效
blockdev --getsize64 dev/dm/asm-diskeblockdev --getsize64 dev/dm/asm-diskhblockdev --getsize64 dev/dm/asm-diskfblockdev --getsize64 dev/dm/asm-diskg
结果如下
[root@dsc01 ~]# blockdev --getsize64 dev/dm/asm-diske2147483648[root@dsc01 ~]# blockdev --getsize64 dev/dm/asm-diskh10737418240[root@dsc01 ~]# blockdev --getsize64 dev/dm/asm-diskf2147483648[root@dsc01 ~]# blockdev --getsize64 dev/dm/asm-diskg2147483648
配置 dmdcr_cfg.ini
dsc01 和 dsc02 机器配置相同。
[dmdba@dsc01 ~]$ mkdir dm/dmdbms/dsc_configvi dm/dmdbms/dsc_config/dmdcr_cfg.ini
DCR_N_GRP = 3 ##集群环境有多少个 GROUP,范围:1~16DCR_VTD_PATH = /dev/dm/asm-diske ##规划为 vote 的磁盘DCR_OGUID = 210715 ## 消息标识,一个组里面只有一个。[GRP] #新建一个 GROUPDCR_GRP_TYPE = CSS ##组类型(CSS/ASM/DB)DCR_GRP_NAME = GRP_CSS ##组名DCR_GRP_N_EP = 2 ##组内节点个数DCR_GRP_DSKCHK_CNT = 65 ##磁盘心跳容错时间,单位:秒[GRP_CSS]DCR_EP_NAME = CSS0 ##CSS 节点名DCR_EP_HOST = 192.168.33.200 ##心跳地址DCR_EP_PORT = 11286 ##CSS 端口[GRP_CSS]DCR_EP_NAME = CSS1DCR_EP_HOST = 192.168.33.58DCR_EP_PORT = 11286[GRP]DCR_GRP_TYPE = ASMDCR_GRP_NAME = GRP_ASMDCR_GRP_N_EP = 2DCR_GRP_DSKCHK_CNT = 61[GRP_ASM]DCR_EP_NAME = ASM0 ##ASM 节点名,和 dmasvrmal 的 MAL_INST_NAME 一致DCR_EP_SHM_KEY = 42424 ##共享内存标识DCR_EP_SHM_SIZE = 1024 ##共享内存大小DCR_EP_HOST = 192.168.33.200 ##心跳地址DCR_EP_PORT = 11276 ##ASM 端口DCR_EP_ASM_LOAD_PATH = /dev/dm[GRP_ASM]DCR_EP_NAME = ASM1DCR_EP_SHM_KEY = 42425DCR_EP_SHM_SIZE = 1024DCR_EP_HOST = 192.168.33.58DCR_EP_PORT = 11277DCR_EP_ASM_LOAD_PATH = /dev/dm[GRP]DCR_GRP_TYPE = DBDCR_GRP_NAME = GRP_DSCDCR_GRP_N_EP = 2DCR_GRP_DSKCHK_CNT = 57[GRP_DSC]DCR_EP_NAME = DSC0 ##实例名,和 dm.ini 的 INSTANCE_NAME 一致DCR_EP_SEQNO = 0 ##组内序号,不能重复DCR_EP_PORT = 5237 ##实例端口,和 dm.ini 的 PORT_NUM 一致DCR_CHECK_PORT = 11256 ##DCR 检查端口[GRP_DSC]DCR_EP_NAME = DSC1DCR_EP_SEQNO = 1DCR_EP_PORT = 5237DCR_CHECK_PORT = 11257
初始化磁盘组
在 dsc01 机器上进行如下操作。
/dm/dmdbms/bin/dmasmcmd
ASM>create votedisk '/dev/dm/asm-diske' 'vote'ASM>create dcrdisk '/dev/dm/asm-diskf' 'dcr'ASM>init dcrdisk '/dev/dm/asm-diskf' from '/dm/dmdbms/dsc_config/dmdcr_cfg.ini' identified by 'hust4400'ASM>init votedisk '/dev/dm/asm-diske' from '/dm/dmdbms/dsc_config/dmdcr_cfg.ini'ASM>create asmdisk '/dev/dm/asm-diskh' 'DATA0'ASM>create asmdisk '/dev/dm/asm-diskg' 'ARCH0'
配置 dmasvrmal.ini
vi /dm/dmdbms/dsc_config/dmasvrmal.ini
[MAL_INST0]MAL_INST_NAME = ASM0MAL_HOST = 192.168.33.200 #心跳地址MAL_PORT = 11266 #MAL 监听端口[MAL_INST1]MAL_INST_NAME = ASM1MAL_HOST = 192.168.33.58MAL_PORT = 11266
配置 dmdcr.ini 文件
dsc01 机器配置 dmdcr.ini,dmdcr_seqo 为 0
vi /dm/dmdbms/dsc_config/dmdcr.ini
DMDCR_PATH = /dev/dm/asm-diskfDMDCR_MAL_PATH = /dm/dmdbms/dsc_config/dmasvrmal.iniDMDCR_SEQNO = 0DMDCR_AUTO_OPEN_CHECK = 111DMDCR_ASM_TRACE_LEVEL = 2##DMDCR_ASM_RESTART_INTERVAL = 60 #CSS 认定 ASM 故障重启的时间##DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/dsc_config/DmAsmService_DSC0 start##DMDCR_DB_RESTART_INTERVAL = 60 ##CSS 认定 DSC 故障重启的时间,设置为 0 不自动拉起##DMDCR_DB_STARTUP_CMD = /dm/dmdbms/dsc_config/DmService_DSC0 start
dsc02 机器配置 dmdcr.ini,dmdcr_seqo 为 1
vi /dm/dmdbms/dsc_config/dmdcr.ini
DMDCR_PATH = /dev/dm/asm-diskfDMDCR_MAL_PATH = /dm/dmdbms/dsc_config/dmasvrmal.iniDMDCR_SEQNO = 1DMDCR_AUTO_OPEN_CHECK = 111DMDCR_ASM_TRACE_LEVEL = 2##DMDCR_ASM_RESTART_INTERVAL = 60##DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/dsc_config/DmAsmServiceDSC1 start##DMDCR_DB_RESTART_INTERVAL = 60##DMDCR_DB_STARTUP_CMD = /dm/dmdbms/dsc_config/DmServiceDSC1 start
注意
当前为手动拉起 dsc01 机器和 dsc02 机器的 ASM 和 DMSERVER 服务。待集群配置完成后,再修改为自动拉起(删除 dmdcr.ini 中的“##”号即可)。
启动DMCSS、DMASM服务
在 2 个节点分别启动 dmcss 命令:
前台启动,执行ctrl+c后服务会退出
/dm/dmdbms/bin/dmcss DCR_INI=/dm/dmdbms/dsc_config/dmdcr.ini
在 2 个节点分别启动 dmasmsvr 命令:
前台启动,执行ctrl+c后服务会退出
/dm/dmdbms/bin/dmasmsvr DCR_INI=/dm/dmdbms/dsc_config/dmdcr.ini
创建ASM
##在 dsc01 节点启动 dmasmtool 工具
/dm/dmdbms/bin/dmasmtool DCR_INI=/dm/dmdbms/dsc_config/dmdcr.ini
##输入下列语句创建 DMASM 磁盘组
##创建数据磁盘组
ASM> create diskgroup 'DMDATA' asmdisk '/dev/dm/asm-diskh'
##创建归档磁盘组
ASM> create diskgroup 'DMARCH' asmdisk '/dev/dm/asm-diskg'
初始化 DB 环境
dsc01 和 dsc02 机器配置相同。
创建 dminit.ini 文件
[dmdba@~]# vi /dm/dmdbms/dsc_config/dminit.ini
DB_NAME = DSCSYSDBA_PWD = 1SYSTEM_PATH = +DMDATA/dataSYSTEM = +DMDATA/data/SYSTEM.dbfSYSTEM_SIZE = 300ROLL = +DMDATA/data/ROLL.dbfROLL_SIZE = 300MAIN = +DMDATA/data/MAIN.dbfMAIN_SIZE = 300CTL_PATH = +DMDATA/data/dm.ctlCTL_SIZE = 8LOG_SIZE = 300DCR_PATH = /dev/dm/asm-diskfDCR_SEQNO = 0AUTO_OVERWRITE = 1PAGE_SIZE = 32EXTENT_SIZE = 16BLANK_PAD_MODE = 1[DSC0]CONFIG_PATH = /dm/dmdbms/dsc_config/DCS0PORT_NUM = 5237MAL_HOST = 192.168.33.200MAL_PORT = 11246LOG_PATH = +DMDATA/DSC0_LOG01.logLOG_PATH = +DMDATA/DSC0_LOG02.log[DSC1]CONFIG_PATH = /dm/dmdbms/dsc_config/DCS1PORT_NUM = 5237MAL_HOST = 192.168.33.58MAL_PORT = 11246LOG_PATH = +DMDATA/DSC1_LOG01.logLOG_PATH = +DMDATA/DSC1_LOG02.log
在 dsc01 节点执行初始化 db 命令
[dmdba@dsc01 dsc_config]$ /dm/dmdbms/bin/dminit control=/dm/dmdbms/dsc_config/dminit.ini
initdb V8db version: 0x7000cfile dm.key not found, use default license!License will expire on 2023-07-20Normal of FASTNormal of DEFAULTNormal of RECYCLENormal of KEEPNormal of ROLLlog file path: +DMDATA/DSC0_LOG01.loglog file path: +DMDATA/DSC0_LOG02.loglog file path: +DMDATA/DSC1_LOG01.loglog file path: +DMDATA/DSC1_LOG02.logFILE "/dm/dmdbms/dsc_config/DCS0/dm.ini" has already existedFILE "/dm/dmdbms/dsc_config/DCS0/sqllog.ini" has already existedFILE "/dm/dmdbms/dsc_config/DCS1/dm.ini" has already existedFILE "/dm/dmdbms/dsc_config/DCS1/sqllog.ini" has already existedFILE "+DMDATA/data/SYSTEM.dbf" has already existedFILE "+DMDATA/data/dm.ctl" has already existedFILE "+DMDATA/DSC0_LOG01.log" has already existedFILE "+DMDATA/DSC0_LOG02.log" has already existedFILE "+DMDATA/DSC1_LOG01.log" has already existedFILE "+DMDATA/DSC1_LOG02.log" has already existedwrite to dir [+DMDATA/data/DSC].create dm database success. 2022-12-08 17:52:12
拷贝文件到 dsc02 节点
scp -r /dm/dmdbms/dsc_config/DCS1 dmdba@192.168.33.58:/dm/dmdbms/dsc_config/
启动数据库
##dsc01 机器
/dm/dmdbms/bin/dmserver /dm/dmdbms/dsc_config/DCS0/dm.ini dcr_ini=/dm/dmdbms/dsc_config/dmdcr.ini
##dsc02 机器
/dm/dmdbms/bin/dmserver /dm/dmdbms/dsc_config/DCS1/dm.ini dcr_ini=/dm/dmdbms/dsc_config/dmdcr.ini
检查数据库
[dmdba@dsc01 ~]$ disql SYSDBA/Dameng123:5237Server[LOCALHOST:5237]:mode is normal, state is openlogin used time : 95.307(ms)disql V8
检查集群
SQL> select * from V$dsc_ep_info;LINEID EP_NAME EP_SEQNO EP_GUID EP_TIMESTAMP EP_MODE EP_STATUS---------- ------- ----------- -------------------- -------------------- ------------ ---------1 DSC0 0 9684163 9684477 Control Node OK2 DSC1 1 9725549 9725768 Normal Node OKused time: 468.386(ms). Execute id is 55000.
检查文件路径
SQL> select path from v$datafile;LINEID PATH---------- --------------------------1 +DMDATA/data/SYSTEM.dbf2 +DMDATA/data/ROLL.dbf3 +DMDATA/data/DSC/TEMP0.DBF4 +DMDATA/data/MAIN.dbfused time: 233.157(ms). Execute id is 55002.
SQL> select path from v$rlogfile;LINEID PATH---------- ----------------------1 +DMDATA/DSC0_LOG01.log2 +DMDATA/DSC0_LOG02.logused time: 272.908(ms). Execute id is 55005.
检查实例
SQL> select name,instance_name,host_name from v$instance;LINEID NAME INSTANCE_NAME HOST_NAME---------- ---- ------------- ---------1 DSC0 DSC0 dsc01used time: 822.051(ms). Execute id is 55100.
SQL> select name,instance_name,host_name from v$instance;LINEID NAME INSTANCE_NAME HOST_NAME---------- ---- ------------- ---------1 DSC1 DSC1 dsc02used time: 17.985(ms). Execute id is 7.
检查ASM
SQL> select group_id,group_name,TOTAL_SIZE from v$asmgroup;LINEID GROUP_ID GROUP_NAME TOTAL_SIZE---------- ----------- ---------- -----------1 0 DMDATA 102392 1 DMARCH 20473 125 VOTE 20484 126 DCR 2048used time: 907.805(ms). Execute id is 55007.
SQL> select disk_name,disk_path from v$asmdisk;LINEID DISK_NAME DISK_PATH---------- ---------- -----------------1 DMASMDATA0 /dev/dm/asm-diskh2 DMASMARCH0 /dev/dm/asm-diskg3 DMASMvote /dev/dm/asm-diske4 DMASMdcr /dev/dm/asm-diskfused time: 433.907(ms). Execute id is 55008.
SQL> select * from V$ASMATTR;LINEID AU_SIZE EXTENT_SIZE LOCAL_CODE LOCAL_LANG USE_SHM EXTENT_ARR_SIZE---------- ----------- ----------- ---------- ---------- ------- ---------------1 1048576 4 PG_GB18030 EN TRUE 12351936used time: 77.872(ms). Execute id is 55013.
SQL> select file_id,type,path from v$asmfile;LINEID FILE_ID TYPE PATH---------- -------------------- --------- ------------------------1 2147483649 DIRECTORY +DMDATA2 2147483650 DIRECTORY +DMDATA/data3 2147483651 DIRECTORY +DMDATA/data/DSC4 2147483652 DIRECTORY +DMDATA/data/DSC/bak5 2147483653 FILE +DMDATA/data/dm.ctl6 2147483679 FILE +DMDATA/DSC0_LOG01.log7 2147483680 FILE +DMDATA/DSC0_LOG02.log8 2147483681 FILE +DMDATA/DSC1_LOG01.log9 2147483682 FILE +DMDATA/DSC1_LOG02.log10 2147483661 FILE +DMDATA/data/SYSTEM.dbf11 2147483659 DIRECTORY +DMDATA/data/DSC/ctl_bak12 2147483685 FILE +DMDATA/data/MAIN.dbf13 2147483662 FILE +DMDATA/data/DSC/dm_service.prikey14 2147483684 FILE +DMDATA/data/DSC/ctl_bak/dm_20221208175156_758750.ctl15 2147483686 FILE +DMDATA/data/ROLL.dbf16 2147483687 DIRECTORY +DMDATA/data/DSC/HMAIN17 2147483688 FILE +DMDATA/data/DSC/TEMP0.DBF18 2147483689 FILE +DMDATA/data/DSC/TEMP1.DBF19 2147483692 FILE +DMDATA/data/DSC/rep_conflict.log20 2147483691 FILE +DMDATA/data/DSC/ctl_bak/dm_20221208180445_380829.ctl21 2147483694 FILE +DMDATA/data/DSC/ctl_bak/dm_20221208180608_533426.ctl22 2164260865 DIRECTORY +DMARCH23 4244635649 DIRECTORY +VOTE24 4244635650 FILE +VOTE/VOTE25 4261412865 DIRECTORY +DCR26 4261412866 FILE +DCR/DCR26 rows gotused time: 485.758(ms). Execute id is 55009.
检查DCR
SQL> select * from V$DCR_INFO;LINEID VERSION N_GROUP VTD_PATH UDP_FLAG UDP_OGUID DCR_PATH---------- ----------- ----------- ----------------- ----------- -------------------- -----------------1 259 3 /dev/dm/asm-diske 0 210715 /dev/dm/asm-diskfused time: 923.717(ms). Execute id is 55010.
SQL> select * from V$DCR_GROUP;LINEID GROUP_TYPE GROUP_NAME N_EP DSKCHK_CNT NETCHK_TIME---------- ---------- ---------- ----------- ----------- -----------1 CSS GRP_CSS 2 65 02 ASM GRP_ASM 2 61 03 DB GRP_DSC 2 57 0used time: 903.076(ms). Execute id is 55011.
SQL> select * from V$DCR_EP;LINEID GROUP_NAME EP_NAME EP_SEQNO EP_HOST EP_PORT UDP_PORT SHM_KEY SHM_SIZE ASM_LOAD_PATH---------- ---------- ------- ----------- -------------- ----------- ----------- ----------- ----------- -------------1 GRP_CSS CSS0 0 192.168.33.200 11286 0 0 0 NULL2 GRP_CSS CSS1 1 192.168.33.58 11286 0 0 0 NULL3 GRP_ASM ASM0 0 192.168.33.200 11276 0 42424 1024 /dev/dm4 GRP_ASM ASM1 1 192.168.33.58 11277 0 42425 1024 /dev/dm5 GRP_DSC DSC0 0 5237 0 0 0 NULL6 GRP_DSC DSC1 1 5237 0 0 0 NULL6 rows got
创建测试数据
SQL> create table t1(id int,time datetime);executed successfullyused time: 535.329(ms). Execute id is 55016.SQL> insert into t1 values(1,now());affect rows 1used time: 0.908(ms). Execute id is 55017.SQL> commit;executed successfullyused time: 502.314(ms). Execute id is 55019.SQL> select * from t1;LINEID ID TIME---------- ----------- --------------------------1 1 2022-12-08 18:24:26.540339used time: 00:00:01.008. Execute id is 55018.
登录另一个节点,可以正常查到数据
[dmdba@dsc02 ~]$ disql SYSDBA/Dameng123:5237SQL> select * from t1;LINEID ID TIME---------- ----------- --------------------------1 1 2022-12-08 18:24:26.540339used time: 00:00:03.320. Execute id is 2.
注册服务
注册 CSS、ASM、DMSERVER 后台服务,必须root用户执行
##dsc01 机器
/dm/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dmdbms/dsc_config/dmdcr.ini -p CSS/dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/dsc_config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/dsc_config/DCS0/dm.ini -dcr_ini /dm/dmdbms/dsc_config/dmdcr.ini -y DmASMSvrServiceASM.service -m open -p DSC
##dsc02 机器
/dm/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm/dmdbms/dsc_config/dmdcr.ini -p CSS/dm/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm/dmdbms/dsc_config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM/dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/dsc_config/DCS1/dm.ini -dcr_ini /dm/dmdbms/dsc_config/dmdcr.ini -y DmASMSvrServiceASM.service -m open -p DSC
查看服务
[root@dsc01 ~]# systemctl list-unit-files |grep -E "DmA|DmCSS|DmS"DmAPService.service enabledDmASMSvrServiceASM.service enabledDmCSSServiceCSS.service enabledDmServiceDSC.service enabled
集群启动和关闭
启动集群
启动CSS
[root@dsc01 ~]# systemctl start DmCSSServiceCSS.service[root@dsc02 ~]# systemctl start DmCSSServiceCSS.service
对应进程
[root@dsc01 ~]# ps -ef|grep -i dmcdmdba 25475 1 0 18:51 ? 00:00:00 /dm/dmdbms/bin/dmcss dcr_ini=/dm/dmdbms/dsc_config/dmdcr.ini -noconsole
启动ASM
[root@dsc01 ~]# systemctl start DmASMSvrServiceASM.service[root@dsc02 ~]# systemctl start DmASMSvrServiceASM.service
对应进程
[root@dsc01 ~]# ps -ef|grep -i dmasmdmdba 25612 1 2 18:53 ? 00:00:01 /dm/dmdbms/bin/dmasmsvr dcr_ini=/dm/dmdbms/dsc_config/dmdcr.ini -noconsole
启动数据库
[root@dsc01 ~]# systemctl start DmServiceDSC[root@dsc02 ~]# systemctl start DmServiceDSC
对应进程
[root@dsc01 ~]# ps -ef|grep -i dmsdmdba 25875 1 1 18:55 ? 00:00:00 /dm/dmdbms/bin/dmserver path=/dm/dmdbms/dsc_config/DCS0/dm.ini dcr_ini=/dm/dmdbms/dsc_config/dmdcr.ini -noconsole
关闭集群
关闭数据库
[root@dsc01 ~]# systemctl stop DmServiceDSC[root@dsc02 ~]# systemctl stop DmServiceDSC
关闭ASM
[root@dsc01 ~]# systemctl stop DmASMSvrServiceASM.service[root@dsc02 ~]# systemctl stop DmASMSvrServiceASM.service
关闭CSS
[root@dsc01 ~]# systemctl stop DmCSSServiceCSS.service[root@dsc02 ~]# systemctl stop DmCSSServiceCSS.service
其他操作
关闭服务自动启动
systemctl disable DmCSSServiceCSS.servicesystemctl disable DmASMSvrServiceASM.servicesystemctl disable DmServiceDSCsystemctl disable DmAPService.service
[root@dsc01 ~]# systemctl list-unit-files |grep -E "DmA|DmCSS|DmS"DmAPService.service disabledDmASMSvrServiceASM.service disabledDmCSSServiceCSS.service disabledDmServiceDSC.service disabled
删除服务
/dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmCSSServiceCSS/dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmASMSvrServiceASM/dm/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceDSC
故障处理
错误一:启动CSS服务失败
报错如下:
[dmdba@dsc01 ~]$ /dm/dmdbms/bin/dmcss DCR_INI=/dm/dmdbms/dsc_config/dmdcr.ini/dm/dmdbms/bin/dmcss: error while loading shared libraries: libdmcalc.so: cannot open shared object file: No such file or directory
需要进到/dm/dmdbms/bin/目录下执行,不能直接使用绝对路径
[dmdba@dsc01 bin]$ ./dmcss DCR_INI=/dm/dmdbms/dsc_config/dmdcr.iniDMCSS V8DMCSS IS READY[2022-12-08 16:21:47:027] [CSS]: Set EP CSS0[0] as Control node
错误二:启动ASM服务失败
报错如下:
[dmdba@dsc01 bin]$ /dm/dmdbms/bin/dmasmsvr DCR_INI=/dm/dmdbms/dsc_config/dmdcr.iniASM SELF EPNO:0DMASMSVR V8dmasmsvr task worker thread startupshmget: Invalid argumentcreate share memory failed[code: -9728], please check shm config and try again, errno:[22]
需要调大kernel.shmmax值
[root@dsc01 mnt]# vi /etc/sysctl.conf#kernel.shmmax = 858783744
调大kernel.shmmax
[root@dsc01 mnt]# sysctl -p
错误三:创建数据库失败
报错如下:
[dmdba@dsc01 dsc_config]$ /dm/dmdbms/bin/dminit control=/dm/dmdbms/dsc_config/dminit.ini......write to dir [+DMDATA/data/DSC].fsm_file_add group_id 4, file_id 0, size_in_pages 32768, path +DMDATA/data/MAIN.dbf failed, code -7004Please check whether exist file or directory with the same name, code:[-7014]You may get more details in file ../log/dm_DSC0_202212.logfail to init db.
查看日志../log/dm_DSC0_202212.log,空间不足了,减小参数文件里配置的数据文件大小,重新执行
2022-12-08 17:48:55.401 [ERROR] dminit P0000020632 T0000000000000020632 os_file_create_ex->os_asm_file_create: [path: +DMDATA/data/MAIN.dbf]: [CODE:-523] Out of space
错误四:达梦官方文档存在部分错误
1.2.8 初始化 DB 环境
##在 db0 节点执行初始化 db 命令
[dmdba@~]# vi /dm/dmdbms/bin/dminit control=/dm/dmdbms/dsc_config/init/dminit.ini
没有vi。
1.2.11 注册 CSS、ASM、DMSERVER 后台服务
[root@~]# /dm/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dm/dmdbms/dsc_config/DSC0/dm.ini -dcr_ini /dm/dmdbms/dsc_config/dmdcr.ini -y DmASMSvrServiceASM.service -m -p DSC
这里的-m 后需要接mount或open。
参考文档
https://eco.dameng.com/document/dm/zh-cn/ops/DSC-installation-cluster.htmlhttps://eco.dameng.com/document/dm/zh-cn/pm/dsc-monitor.html
###chenjuchao 20221208 20:25###





