根据新版本 dm8.1.4.200,创建2台虚拟机安装kylin V10,部署达梦DSC
bash
安装clear os做快照
mkdir f:\vm\dmdsc\asmdisk\
cd /d C:\Program Files (x86)\VMware\VMware Workstation\
.\vmware-vdiskmanager.exe -c -s 100MB -a lsilogic -t 2 "f:\vm\dmdsc\asmdisk\share-dcr.vmdk"
.\vmware-vdiskmanager.exe -c -s 100MB -a lsilogic -t 2 "f:\vm\dmdsc\asmdisk\share-vote.vmdk"
.\vmware-vdiskmanager.exe -c -s 2GB -a lsilogic -t 2 "f:\vm\dmdsc\asmdisk\share-data1.vmdk"
.\vmware-vdiskmanager.exe -c -s 2GB -a lsilogic -t 2 "f:\vm\dmdsc\asmdisk\share-data2.vmdk"
.\vmware-vdiskmanager.exe -c -s 2GB -a lsilogic -t 2 "f:\vm\dmdsc\asmdisk\share-data3.vmdk"
.\vmware-vdiskmanager.exe -c -s 2GB -a lsilogic -t 2 "f:\vm\dmdsc\asmdisk\share-data4.vmdk"
虚拟机上增加共享磁盘 选择现有设备 设置在scsi1下
编辑虚拟机vmx文件,增加
scsi1.virtualDev = "lsilogic"
scsi1.present = "TRUE"
scsi1:1.fileName = "f:\vm\dmdsc\asmdisk\share-vote.vmdk"
scsi1:1.present = "TRUE"
scsi1:2.fileName = "f:\vm\dmdsc\asmdisk\share-data1.vmdk"
scsi1:2.present = "TRUE"
scsi1:0.fileName = "f:\vm\dmdsc\asmdisk\share-dcr.vmdk"
scsi1:0.present = "TRUE"
scsi1:3.fileName = "f:\vm\dmdsc\asmdisk\share-data2.vmdk"
scsi1:3.present = "TRUE"
scsi1:4.fileName = "f:\vm\dmdsc\asmdisk\share-data3.vmdk"
scsi1:4.present = "TRUE"
scsi1:5.fileName = "f:\vm\dmdsc\asmdisk\share-data4.vmdk"
scsi1:5.present = "TRUE"
scsi1.sharedBus = "virtual"
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.EnableUUID = "TRUE"
虚拟机配置两块网卡
cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-ens38
sed -i "s/ens33/ens38/g" ifcfg-ens38
sed -i "s/192.168.32.11/10.34.61.13/g" ifcfg-ens38
sed -i "s/192.168.32.22/10.34.61.49/g" ifcfg-ens38
sed -i "s/GATEWAY=192.168.32.2/GATEWAY=192.168.0.1/g" ifcfg-ens38
sed -i "s/ONBOOT=no/ONBOOT=yes/g" ifcfg-ens3?
sed -i "/UUID/c UUID=$(uuidgen)" /etc/sysconfig/network-scripts/ifcfg-ens38
systemctl restart network
nmcli d
启动虚拟机
nmcli c up ens33
nmcli c up ens38
mobaxerm登录两个主机,开启Multi模式
sed -i "s/X11Forwarding no/X11Forwarding yes/g" /etc/ssh/sshd_config
systemctl restart sshd
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
systemctl stop firewalld; systemctl disable firewalld
hostnamectl set-hostname dsc1
date -s "2025-11-25 22:59:10"
mkdir /opt/soft
上传数据库安装介质
mount -r /opt/soft/dm8_20250527_x86_kylin10_64.iso /mnt
groupadd -g 1001 dinstall
groupadd -g 1000 dmdba
useradd -u 1000 -g dinstall -G dmdba -m -d /home/dmdba -s /bin/bash dmdba
echo "Dameng123" | passwd --stdin dmdba
mkdir -p /dm/dmdbms/
chown -R dmdba:dinstall /dm
cat >>/etc/security/limits.conf<<EOF
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 10240
dmdba hard nproc 10240
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft data unlimited
dmdba hard data unlimited
EOF
for i in b c d e f g;
do
echo /dev/sd$i `/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`
done
cd /etc/udev/rules.d/
curr=`pwd`
j=-1
for i in b c d e f g ;
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+=\"asmdisk/asmdata$j\",OWNER=\"dmdba\", GROUP=\"dinstall\",MODE=\"0660\"" >> $curr/88-dm-asmdevices.rules
j=$((j+1))
done
vi /etc/udev/rules.d/88-dm-asmdevices.rules 修改dcr vote磁盘名
/sbin/udevadm control --reload-rules
/sbin/udevadm trigger --type=devices --action=change
ls -l /dev/asmdisk/
lrwxrwxrwx 1 root root 6 11月 8 10:26 asmdata1 -> ../sdd
lrwxrwxrwx 1 root root 6 11月 8 10:26 asmdata2 -> ../sde
lrwxrwxrwx 1 root root 6 11月 8 10:26 asmdata3 -> ../sdf
lrwxrwxrwx 1 root root 6 11月 8 10:26 asmdata4 -> ../sdg
lrwxrwxrwx 1 root root 6 11月 8 10:26 dcr1 -> ../sdb
lrwxrwxrwx 1 root root 6 11月 8 10:26 asm-vote -> ../sdc
su - dmdba
export DM_INSTALL_TMPDIR=~
/mnt/DMInstall.bin -i
/dm/dmdbms/script/root/root_installer.sh
cat >>~/.bash_profile<<EOF
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH
alias d="disql SYSDBA/Dameng123"
alias m="dmcssm ini_path=/dm/dmdbms/config/dmcssm.ini"
EOF
. ~/.bash_profile
mkdir /dm/dmdbms/config
快照
#仅在节点1上
vi /dm/dmdbms/config/dmdcr_cfg.ini
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/asmdisk/asm-vote ##规划的vote盘
DCR_OGUID = 112233 ##长度不超过19位只能为数字,消息标识,DMCSSM 登录DMCSS 消息校验用
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS ##CSS服务组名,固定名称
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60 ##参数的标准配置规范
[GRP_CSS] ##与CSS [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = GRP_CSS1 ##节点CSS服务名
DCR_EP_HOST = 10.0.0.51 #dsc1心跳ip
DCR_EP_PORT = 9220 ##端口使用规范
[GRP_CSS] ##与[GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = GRP_CSS2 ##节点CSS服务名
DCR_EP_HOST = 10.0.0.52 #dsc2心跳ip
DCR_EP_PORT = 9220
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM ##ASM服务组名,固定名称
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM] ##与ASM [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = GRP_ASM1 ##节点ASM服务名
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 100 #共享内存大小,每10M管理600G的ASM磁盘空间,初始化配置100,可管理6T
DCR_EP_HOST = 10.0.0.51 #dsc1心跳ip
DCR_EP_PORT = 8221
DCR_EP_ASM_LOAD_PATH = /dev/asmdisk
[GRP_ASM] ##与ASM [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = GRP_ASM2 ##节点ASM服务名
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 100 #共享内存大小,每10M管理600G的ASM磁盘空间,初始化配置100,可管理6T
DCR_EP_HOST = 10.0.0.52 #dsc2心跳ip
DCR_EP_PORT = 8221
DCR_EP_ASM_LOAD_PATH = /dev/asmdisk ##规划的磁盘目录
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DB ##DB服务组名,固定名称
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DB] ##与DB [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = TEST1 ##节点实例名
DCR_EP_SEQNO = 0 #固定数值
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 7222
[GRP_DB] ##与DB [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = TEST2 ##节点实例名
DCR_EP_SEQNO = 1 #固定数值
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 7222
#节点1上
vi /dm/dmdbms/config/dmdcr.ini
DMDCR_PATH = /dev/asmdisk/asm-dcr
DMDCR_MAL_PATH =/dm/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 35
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/bin/DmASMSvrServiceTEST1 start ##服务名与注册的服务名保持一致
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dmdbms/bin/DmServiceTEST1 start ##服务名与注册的服务名保持一致
#节点2上
vi /dm/dmdbms/config/dmdcr.ini
DMDCR_PATH = /dev/asmdisk/asm-dcr
DMDCR_MAL_PATH =/dm/dmdbms/config/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_AUTO_OPEN_CHECK = 35
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm/dmdbms/bin/DmASMSvrServiceTEST2 start ##服务名与注册的服务名保持一致
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dmdbms/bin/DmServiceTEST2 start ##服务名与注册的服务名保持一致
#节点1和节点2上
vi /dm/dmdbms/config/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = GRP_ASM1 ##与dmdcr_cfg.ini配置文件中ASM组中配置的节点名称保持一致
MAL_HOST = 10.0.0.51 ##dsc1心跳ip
MAL_PORT = 6223
[MAL_INST2]
MAL_INST_NAME = GRP_ASM2 ##与dmdcr_cfg.ini配置文件中ASM组中配置的节点名称保持一致
MAL_HOST = 10.0.0.52 ##dsc2心跳ip
MAL_PORT = 6223
#仅在节点1上
vi /dm/dmdbms/config/dminit.ini
db_name = TEST #初始化数据库名称大写
system_path = +DMDATA/ #初始化数据库存放的路径
system = +DMDATA/TEST/SYSTEM.DBF #SYSTEM 表空间路径
system_size = 128 #SYSTEM 表空间大小
roll = +DMDATA/TEST/ROLL.DBF #ROLL 表空间路径
roll_size = 128 #ROLL 表空间大小
main = +DMDATA/TEST/MAIN.DBF #MAIN 表空间路径
main_size = 128 #MAIN 表空间大小
ctl_path = +DMDATA/TEST/dm.ctl #DM.CTL 控制文件路径
ctl_size = 8 #DM.CTL 控制文件大小
log_size = 256 #日志文件大小
dcr_path = /dev/asmdisk/asm-dcr #dcr 磁盘路径
dcr_seqno = 0 #连接 DMASM 节点节点号
auto_overwrite = 1 #文件存在时的处理方式0或1
PAGE_SIZE = 32
EXTENT_SIZE = 32
CHARSET =1 #应用提供字符集
CASE_SENSITIVE =1 #应用提供大小写是否敏感 未提供默认敏感
BLANK_PAD_MODE=0 #应用提供结尾是否空格填充
SYSDBA_PWD=Dameng123
SYSAUDITOR_PWD=Dameng123
[TEST1] ##与dmdcr_cfg.ini配置文件中DB组中配置的节点名称保持一致
config_path = /dm/dmdbms/config/dsc1_config #路径要有创建权限
port_num = 5236
mal_host = 10.0.0.51 #dsc1心跳ip,节点 MAL 系统使用 IP
mal_port = 4234
LOG_PATH = +DMDATA/TEST1_01.log
LOG_PATH = +DMDATA/TEST1_02.log
[TEST2] ##与dmdcr_cfg.ini配置文件中DB组中配置的节点名称保持一致
config_path = /dm/dmdbms/config/dsc2_config #路径要有创建权限
port_num = 5236
mal_host = 10.0.0.52 #dsc2心跳ip
mal_port = 4234
LOG_PATH = +DMDATA/TEST2_01.log
LOG_PATH = +DMDATA/TEST2_02.log
#仅在节点1上
vi /dm/dmdbms/config/asmcmd.txt
#asm script file
create dcrdisk '/dev/asmdisk/asm-dcr' 'dcr'
create votedisk '/dev/asmdisk/asm-vote' 'vote'
init dcrdisk '/dev/asmdisk/asm-dcr' from '/dm/dmdbms/config/dmdcr_cfg.ini' identified by 'Dameng123'
init votedisk '/dev/asmdisk/asm-vote' from '/dm/dmdbms/config/dmdcr_cfg.ini'
create asmdisk '/dev/asmdisk/asmdata1' 'DATA01'
create asmdisk '/dev/asmdisk/asmdata2' 'DATA02'
create asmdisk '/dev/asmdisk/asmdata3' 'DATA03'
create asmdisk '/dev/asmdisk/asmdata4' 'ARCH01'
dmasmcmd SCRIPT_FILE=/dm/dmdbms/config/asmcmd.txt
dd if=/dev/asmdisk/asm-dcr bs=4096 count=1 2>/dev/null | hexdump -C | head -20
节点1、2启动CSS:
dmcss DCR_INI=/dm/dmdbms/config/dmdcr.ini
新开窗口,节点1、2启动ASM:
dmasmsvr DCR_INI=/dm/dmdbms/config/dmdcr.ini
节点1上:
vim /dm/dmdbms/config/create_asm_group.txt
#asm script file
create diskgroup 'DMDATA' asmdisk '/dev/asmdisk/asmdata1'
alter diskgroup 'DMDATA' add asmdisk '/dev/asmdisk/asmdata2'
alter diskgroup 'DMDATA' add asmdisk '/dev/asmdisk/asmdata3'
create diskgroup 'DMARCH' asmdisk '/dev/asmdisk/asmdata4'
cd /dm/dmdbms/config
dmasmtool DCR_INI=dmdcr.ini SCRIPT_FILE=create_asm_group.txt
dmasmtool DCR_INI=/dm/dmdbms/config/dmdcr.ini
mkdir +DMDATA/arch0
mkdir +DMDATA/arch1
dminit control=/dm/dmdbms/config/dminit.ini
scp -r dsc2_config dmdba@192.168.218.52:/dm/dmdbms/config/
密码是 Dameng123
两个节点上
vi /dm/dmdbms/config/dmcssm.ini
CSSM_OGUID = 112233 #和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_CSS_IP = 10.0.0.51:9220 #与DMDCR_CFG.INI中CSS配置项的DCR_EP_HOST和DCR_EP_PORT保持一致 dsc1的心跳IP
CSSM_CSS_IP = 10.0.0.52:9220 #与DMDCR_CFG.INI中CSS配置项的DCR_EP_HOST和DCR_EP_PORT保持一致 dsc2的心跳IP
CSSM_LOG_PATH =/dm/dmdbms/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 256 #每个日志文件大小上限
CSSM_LOG_SPACE_LIMIT = 1024 #限定日志文件总占用空间
cd /dm/dmdbms/config/dsc1_config 节点1上
cd /dm/dmdbms/config/dsc2_config 节点2上
sed -i "s/ARCH_INI = 0/ARCH_INI = 1/g" dm.ini
节点1上
vi /dm/dmdbms/config/dsc1_config/dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/arch0
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 20480
ARCH_FLUSH_BUF_SIZE = 0
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = TEST2
ARCH_INCOMING_PATH = +DMDATA/arch1
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 20480
ARCH_FLUSH_BUF_SIZE = 0
节点2上
vi /dm/dmdbms/config/dsc2_config/dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/arch1
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 20480
ARCH_FLUSH_BUF_SIZE = 0
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = TEST1
ARCH_INCOMING_PATH = +DMDATA/arch0
ARCH_FILE_SIZE = 256
ARCH_SPACE_LIMIT = 20480
ARCH_FLUSH_BUF_SIZE = 0
# 切换到root用户下
cd /dm/dmdbms/script/root/
./dm_service_installer.sh -t dmcss -p TEST1 -dcr_ini /dm/dmdbms/config/dmdcr.ini
./dm_service_installer.sh -t dmcss -p TEST2 -dcr_ini /dm/dmdbms/config/dmdcr.ini
./dm_service_installer.sh -t dmasmsvr -p TEST1 -dcr_ini /dm/dmdbms/config/dmdcr.ini -y DmCSSServiceTEST1
./dm_service_installer.sh -t dmasmsvr -p TEST2 -dcr_ini /dm/dmdbms/config/dmdcr.ini -y DmCSSServiceTEST2
./dm_service_installer.sh -t dmserver -p TEST1 -dm_ini /dm/dmdbms/config/dsc1_config/dm.ini -y DmASMSvrServiceTEST1 -dcr_ini /dm/dmdbms/config/dmdcr.ini
./dm_service_installer.sh -t dmserver -p TEST2 -dm_ini /dm/dmdbms/config/dsc2_config/dm.ini -y DmASMSvrServiceTEST2 -dcr_ini /dm/dmdbms/config/dmdcr.ini
各窗口exit退出 ps -ef|grep dbms
DmCSSServiceTEST1 start
DmCSSServiceTEST2 start
DmASMSvrServiceTEST1 start
DmASMSvrServiceTEST2 start
m #启动 CSS MONITOR
show
ep startup grp_db
exit
d #登录disql
select * from v$dsc_ep_info;
select name,status$,host_name,start_time,mode$,DSC_SEQNO,dsc_role from gv$instance order by 1;

bash
[dmdba@dsc2 ~]$ disql -id
DM Database 64 V8 03134284488-20260212-314192-20200