注册
记录一次DSC环境安装部署
专栏/技术分享/ 文章详情 /

记录一次DSC环境安装部署

dm-9527 2026/09/30 179 0 0
摘要

DSC部署文档

本次环基于KylinV10 SP3 ARM + HW存储进行DSC部署。

1 安装前准备

1.1 集群架构

image.png

1.2 集群规划

image.png
image.png
image.png
image.png

1.3 硬件准备

image.png

1.4 硬件环境建议

心跳网络方面:
    ① 集群间的心跳网络要走数据,最好走两个交换机,来实现冗余和负载均衡。
    ② 需要把服务器多个心跳网卡绑定为一个逻辑网卡来使用(比如bond方式)。
    ③ 交换机速度建议为万兆。
存储网络方面:
    ① 每台数据库服务器上必须有两块HBA卡连接光纤交换机,做冗余和负载均衡。
存储方面:
    ① 两台服务器都连接到同一个存储上(共享存储只需要映射到服务器端fdisk -l可以查看到就行,不需要格式化)。
    ② 节点1所在服务器单独挂存储,需要格式化好,用来备份数据等,文件系统建议使用xfs。

1.5 硬件环境环境验证

心跳网络方面:
    ① 关闭其中一台交换机或者模拟其中一条线路故障,是否能做到网络方面的冗余。
    ② 测试心跳网络的稳定性,会不会出现断连或者丢包等情况。

2 存储准备

2.1 共享存储挂载

2.1.1 查看共享存储信息

upadmin_plus show vlun
image.png
image.png

2.1.2 A机器

[root@node1 rules.d]# vi 88-dm-asmdevices.rules 
KERNEL=="ultrapatha",SUBSYSTEM=="block",SYMLINK+="DMDATA",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMDATA /dev_DSC2/DMDATA'"
KERNEL=="ultrapathc",SUBSYSTEM=="block",SYMLINK+="DMARCH01",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMARCH01 /dev_DSC2/DMARCH01'"
KERNEL=="ultrapathb",SUBSYSTEM=="block",SYMLINK+="DMARCH02",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMARCH02 /dev_DSC2/DMARCH02'"
KERNEL=="ultrapathg",SUBSYSTEM=="block",SYMLINK+="DMDCR",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMDCR /dev_DSC2/DMDCR'"
KERNEL=="ultrapathd",SUBSYSTEM=="block",SYMLINK+="DMVOTE",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMVOTE /dev_DSC2/DMVOTE'"
KERNEL=="ultrapathh",SUBSYSTEM=="block",SYMLINK+="DMREDO",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMREDO /dev_DSC2/DMREDO'"

udevadm control --reload-rules
udevadm trigger --type=devices --action=change

[root@node1 rules.d]# ls -lL /dev_DSC2/
总用量 0
brw-rw---- 1 dmdba dinstall 251,  32  9月  9 12:36 DMARCH01
brw-rw---- 1 dmdba dinstall 251,   0  9月  9 12:36 DMARCH02
brw-rw---- 1 dmdba dinstall 251,  16  9月  9 12:36 DMDATA
brw-rw---- 1 dmdba dinstall 251,  80  9月  9 12:36 DMDCR
brw-rw---- 1 dmdba dinstall 251, 112  9月  9 12:36 DMREDO
brw-rw---- 1 dmdba dinstall 251,  48  9月  9 12:36 DMVOTE

2.1.3 B机器

[root@node2 rules.d]# cat 88-dm-asmdevices.rules 
KERNEL=="ultrapathb",SUBSYSTEM=="block",SYMLINK+="DMDATA",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMDATA /dev_DSC2/DMDATA'"
KERNEL=="ultrapatha",SUBSYSTEM=="block",SYMLINK+="DMARCH01",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMARCH01 /dev_DSC2/DMARCH01'"
KERNEL=="ultrapathc",SUBSYSTEM=="block",SYMLINK+="DMARCH02",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMARCH02 /dev_DSC2/DMARCH02'"
KERNEL=="ultrapathd",SUBSYSTEM=="block",SYMLINK+="DMDCR",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMDCR /dev_DSC2/DMDCR'"
KERNEL=="ultrapathe",SUBSYSTEM=="block",SYMLINK+="DMVOTE",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMVOTE /dev_DSC2/DMVOTE'"
KERNEL=="ultrapathf",SUBSYSTEM=="block",SYMLINK+="DMREDO",OWNER="dmdba",GROUP="dmdba",MODE="0660",RUN+="/bin/sh -c 'chown dmdba:dinstall /dev/$name; mkdir -p /dev_DSC2; ln -sf /dev/DMREDO /dev_DSC2/DMREDO'"

udevadm control --reload-rules
udevadm trigger --type=devices --action=change

[root@node2 rules.d]# ls -lL /dev_DSC2/
总用量 0
brw-rw---- 1 dmdba dinstall 251,  32  9月  9 12:36 DMARCH01
brw-rw---- 1 dmdba dinstall 251,   0  9月  9 12:36 DMARCH02
brw-rw---- 1 dmdba dinstall 251,  16  9月  9 12:36 DMDATA
brw-rw---- 1 dmdba dinstall 251,  80  9月  9 12:36 DMDCR
brw-rw---- 1 dmdba dinstall 251, 112  9月  9 12:36 DMREDO
brw-rw---- 1 dmdba dinstall 251,  48  9月  9 12:36 DMVOTE

3 Linux环境配置

3.1 调整sysctl.conf

[root@~]# vi /etc/sysctl.conf
vm.numa_stat = 0
vm.overcommit_memory=0
vm.swappiness=1 
#vm.min_free_kbytes=1153434
##core文件路径
kernel.core_pattern =/data/dmcore/core-%e-%p-%s
[root@~]# sysctl -p

3.2 调整limits.conf

[root@~]# ulimit -n 65536

[root@~]# chmod a+x /etc/security
[root@~]# chmod a+r /etc/security/limits.conf

[root@~]# vi /etc/security/limits.conf
dmdba   soft    data    unlimited
dmdba   hard    data    unlimited
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    nice    0
dmdba   hard    nice    0
dmdba   soft    as      unlimited
dmdba   hard    as      unlimited
dmdba   soft    memlock unlimited
dmdba   hard    memlock unlimited

[root@~]# vi /etc/security/limits.d/90-nproc.conf
*  soft  nproc  65536
*  hard  nproc  65536


[root@~]# vi /etc/profile
ulimit -SHn 65536


[root@~]# vi /etc/systemd/system.conf
DefaultLimitFSIZE=unlimited
DefaultLimitDATA=unlimited
DefaultLimitCORE=unlimited
DefaultLimitNOFILE=65536
DefaultLimitAS=unlimited
DefaultLimitNPROC=10240
DefaultLimitNICE=0

3.3 调整login

[root@localhost]# vi /etc/pam.d/login
session  required  /lib64/security/pam_limits.so
session  required  pam_limits.so

3.4 调整防火墙

##关闭防火墙
[root@~]# systemctl stop firewalld 
##关闭开机自启
[root@~]# systemctl disable firewalld

3.5 关闭selinux

[root@~]# vi /etc/sysconfig/selinux
SELINUX = disabled

3.6 关闭swap

##临时关闭 swap 分区,重启后失效
[root@~]# swapoff  -a
##永久关闭 swap 分区,重启后生效
[root@~]# sed -ri 's/.*swap.*/#&/' /etc/fstab  

3.7 配置环境变量

su - dmdba 
vi .bash_profile 
export DM_HOME="/home/dmdba/dmdbms" 
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/dmdba/dmdbms/bin" 
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool

3.8 关闭透明大页

永久关闭 transparent_hugepage
1.查看透明大页设置:
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
说明已启用透明大页 

2.vi /etc/default/grub文件,配置如下参数(标红部分):
GRUB_CMDLINE_LINUX="resume=/dev/sda1 splash=silent quiet showopts crashkernel=113M,high crashkernel=72M,low transparent_hugepage=never"

3.查询是UEFI-based机器还是BIOS-based的机器
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

是 UEFI-based 的机器,请执行:
grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg

3.9 安装操作系统工具包

为方便后期维护时分析问题,建议安装perf、gdb、nmon、pstack等工具包具体列表如下:

工具包名称	备注
perf		系统性能分析工具
gdb		gdb调试工具
gcc		gcc编译工具
pstack		打印正在运行的进程的栈跟踪信息
nmon		系统性能分析工具
unixODBC	连接数据库的组件(后用于dblink)
zip		数据库压缩工具
tar		数据库压缩工具
telnet		远程登录协议/工具,连接远程主机的指定端口
netstat		查看端口、连接、监听状态
nc(netcat)	端口探测、端口监听、网络传输小工具
ethtool		查询和配置网卡参数(速率、双工模式)
tcpdump		网络抓包工具,排查网络。
traceroute	追踪路由,查网络从本机到目标经过哪些节点
net-tools	网络工具集
sysstat		包含 iostat、mpstat、pidstat、sar 工具包
iostat		查看磁盘 I/O 使用率、读写速度
iotop		按进程实时查看磁盘 I/O使用情况
strace		跟踪系统进程,查程序崩溃、卡住、权限问题
libaio		异步 I/O 运行库,数据库加速必备
libaio-devel	异步 I/O 开发库,用于编译依赖异步I/O的程序
unixODBC-devel	ODBC 开发包,第三方程序连数据库用
vim		终端文本编辑器
java		JDK 运行环境,运行 Java 程序

3.10 规划用户及安装目录

3.10.1 创建用户

[root@~]# groupadd dinstall -g 2001
[root@~]# useradd -g dinstall -u 1001 -s /bin/bash -m -d /home/dmdba dmdba
[root@~]# passwd dmdba
[root@~]# <输入密码>
[root@~]# <再次输入密码>
备注:dmdba密码以现场要求为准。

3.10.2 创建目录及授权

规划好安装以及数据目录,安装数据库及初始化实例。
主备库(A/B节点):
[root@ ~]# mkdir -p /home/dmdba/dmdbms
[root@ ~]# mkdir -p /data/dsc/sqllog
[root@ ~]# mkdir -p /data/dmcore
[root@ ~]# mkdir -p /dmbak/dsc/
[root@ ~]# chown dmdba.dinstall -R /dmbak;chmod 775 /data -R 

3.11 安装数据库软件

严禁使用root用户安装数据库及数据库相关操作。必须使用dmdba用户执行安装以及数据库相关操作。
数据库安装路径:/home/dmdba/dmdbms
[dmdba@~]# /opt/soft/DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:C
解压安装程序..........
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:N
是否设置时区? (Y/y:是 N/n:否) [Y/y]:Y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1010M

请选择安装目录 [/home/dmdba/dmdbms]:/home/dmdba/dmdbms
可用空间: 11G

是否确认安装路径(/home/dmdba/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:Y
安装前小结
安装位置: /home/dmdba/dmdbms
所需空间: 1010M
可用空间: 11G
版本信息: 企业版
有效日期: 2020-12-25
安装类型: 典型安装

是否确认安装? (Y/y:是 N/n:否):Y
2020-12-24 21:52:38 
[INFO] 安装达梦数据库...
2020-12-24 21:52:39 
[INFO] 安装 基础 模块...
2020-12-24 21:52:48 
[INFO] 安装 服务器 模块...
2020-12-24 21:52:48 
[INFO] 安装 客户端 模块...
2020-12-24 21:52:56 
[INFO] 安装 驱动 模块...
2020-12-24 21:52:58 
[INFO] 安装 手册 模块...
2020-12-24 21:53:00 
[INFO] 安装 服务 模块...
2020-12-24 21:53:02 
[INFO] 移动ant日志文件。
2020-12-24 21:53:03 
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/home/dmdba/dmdbms/script/root/root_installer.sh

安装结束

[root@~]# /home/dmdba/dmdbms/	script/root/root_installer.sh
移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from /etc/systemd/system/multiuser.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service
创建服务(DmAPService)完成
启动DmAPService服务

4 搭建DSC

4.1 创建dmdcr_cfg.ini(全局集群注册配置文件)

A机器、B机器配置相同

[dmdba@~]# vi /home/dmdba/dsc/config/dmdcr_cfg.ini
DCR_N_GRP                = 3
DCR_VTD_PATH             = /dev_DSC2/DMVOTE
DCR_OGUID                = 45333

[GRP]  #新建一个GROUP 组与节点配置段
DCR_GRP_TYPE             = CSS  #组类型(CSS/ASM/DB)
DCR_GRP_NAME             = GRP_CSS  #组名
DCR_GRP_N_EP             = 2  #组内节点个数
DCR_GRP_DSKCHK_CNT       = 30  #磁盘心跳容错时间,单位:秒
[GRP_CSS]
DCR_EP_NAME              = CSS0  #CSS节点名
DCR_EP_HOST              = 192.168.10.1 #心跳地址
DCR_EP_PORT              = 5636  #CSS端口
[GRP_CSS]
DCR_EP_NAME              = CSS1
DCR_EP_HOST              = 192.168.10.2
DCR_EP_PORT              = 5637

[GRP]
DCR_GRP_TYPE             = ASM
DCR_GRP_NAME             = GRP_ASM
DCR_GRP_N_EP             = 2
DCR_GRP_DSKCHK_CNT       = 30
[GRP_ASM]
DCR_EP_NAME              = ASM0  #ASM节点名,和dmasvrmal的MAL_INST_NAME一致
DCR_EP_SHM_KEY           = 93360  #共享内存标识
DCR_EP_SHM_SIZE          = 1024  #共享内存大小
DCR_EP_HOST              = 192.168.10.1  #心跳地址
DCR_EP_PORT              = 5736  #ASM端口
DCR_EP_ASM_LOAD_PATH     = /dev_DSC2
[GRP_ASM]
DCR_EP_NAME              = ASM1
DCR_EP_SHM_KEY           = 93361
DCR_EP_SHM_SIZE          = 1024
DCR_EP_HOST              = 192.168.10.2
DCR_EP_PORT              = 5737
DCR_EP_ASM_LOAD_PATH     = /dev_DSC2

[GRP]
DCR_GRP_TYPE             = DB
DCR_GRP_NAME             = GRP_DSC
DCR_GRP_N_EP             = 2
DCR_GRP_DSKCHK_CNT       = 30
[GRP_DSC]
DCR_EP_NAME              = KYDSC1  #实例名,和dm.ini的INSTANCE_NAME一致
DCR_EP_SEQNO             = 0  #组内序号,不能重复
DCR_EP_PORT              = 5238  #实例端口,和dm.ini的PORT_NUM一致
DCR_CHECK_PORT           = 5836  #DCR检查端口
[GRP_DSC]
DCR_EP_NAME              = KYDSC2
DCR_EP_SEQNO             = 1
DCR_EP_PORT              = 5238
DCR_CHECK_PORT           = 5837

[dmdba@~]# chmod +x  /home/dmdba/dsc/config/dmdcr_cfg.ini

4.2 初始化磁盘组

A机器

[dmdba@~]# /home/dmdba/dmdbms/bin/dmasmcmd
create dcrdisk '/dev_DSC2/DMDCR' 'DCR'
create votedisk '/dev_DSC2/DMVOTE' 'VOTE'
create asmdisk '/dev_DSC2/DMDATA' 'DATA'
create asmdisk '/dev_DSC2/DMREDO'  'DMREDO'
create asmdisk '/dev_DSC2/DMARCH01'  'ARCH1'
create asmdisk '/dev_DSC2/DMARCH02'  'ARCH1'
init dcrdisk '/dev_DSC2/DMDCR' from '/home/dmdba/dsc/config/dmdcr_cfg.ini' identified by 'Dameng123'
init votedisk  '/dev_DSC2/DMVOTE' from '/home/dmdba/dsc/config/dmdcr_cfg.ini'

4.3 创建dmasvrmal.ini

A机器、B机器配置相同

[dmdba@~]# vi /home/dmdba/dsc/config/dmasvrmal.ini
[MAL_INST1]
  MAL_INST_NAME            = ASM0
  MAL_HOST                 = 192.168.10.1  #心跳地址
  MAL_PORT                 = 5936  #MAL监听端口
[MAL_INST2]
  MAL_INST_NAME            = ASM1
  MAL_HOST                 = 192.168.10.2
  MAL_PORT                 = 5937 

4.4 创建dmdcr.ini

A机器

[dmdba@~]# vi /home/dmdba/dsc/config/dmdcr.ini
DMDCR_PATH                 = /dev/raw/raw1
DMDCR_MAL_PATH             = /home/dmdba/dsc/config/dmasvrmal.ini
DMDCR_SEQNO                = 0
DMDCR_AUTO_OPEN_CHECK      = 30
DMDCR_ASM_TRACE_LEVEL      = 2
#DMDCR_LINK_CHECK_IP = 192.168.1.4
#DMDCR_ASM_RESTART_INTERVAL = 60  #CSS认定ASM故障重启的时间
#DMDCR_ASM_STARTUP_CMD      = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dsc/config/dmdcr.ini
#DMDCR_DB_RESTART_INTERVAL  = 60  #CSS认定DSC故障重启的时间
#DMDCR_DB_STARTUP_CMD       = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dsc/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/dsc/config/dmdcr.ini

B机器

[dmdba@~]# vi /home/dmdba/dsc/config/dmdcr.ini
DMDCR_PATH                 = /dev_DSC2/DMDCR 
DMDCR_MAL_PATH             = /home/dmdba/dsc/config/dmasvrmal.ini
DMDCR_SEQNO                = 1
DMDCR_AUTO_OPEN_CHECK      = 30
DMDCR_ASM_TRACE_LEVEL      = 2
#DMDCR_LINK_CHECK_IP = 192.168.1.4
#DMDCR_ASM_RESTART_INTERVAL = 60
#DMDCR_ASM_STARTUP_CMD      = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dsc/config/dmdcr.ini
#DMDCR_DB_RESTART_INTERVAL  = 60
#DMDCR_DB_STARTUP_CMD       = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dsc/config/kydsc2_config/dm.ini dcr_ini=/home/dmdba/dsc/config/dmdcr.ini

注意:当前为手动拉起A机器和B机器的ASM和DMSERVER服务。待集群配置完成后,再修改为自动拉起(删除dmdcr.ini中红色井号)。

如果配置了 DMDCR_LINK_CHECK_IP, 需要为 DMSERVER 、DMASMSVR(非 DMASM 镜像)和 DMASMSVRM(DASM 镜像)赋予创建 raw socket 的权限来完成联通功能。使用 ROOT 权限执行以下语句分别进行赋权:
#DMSERVER 权限:
sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdbms/bin/dmserver
#DMASMSVR 权限:
sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdbms/bin/dmasmsvr
#DMASMSVRM 权限:
sudo setcap cap_net_raw,cap_net_admin=eip /home/dmdba/dmdbms/bin/dmasmsvrm
#其中,/home/dmdba/dmdbms/bin 为 dmserver、dmasmsvr、dmasmsvrm 所在目录

4.5 启动CSS、ASM服务

A机器、B机器依次执行

[dmdba@~]# /home/dmdba/dmdbms/bin/dmcss DCR_INI=/home/dmdba/dsc/config/dmdcr.ini 
 ...
  DMCSS IS READY

A机器、B机器依次执行

[dmdba@~]# /home/dmdba/dmdbms/bin/dmasmsvr DCR_INI=/home/dmdba/dsc/config/dmdcr.ini
  ...
  the ASM server is Ready.

4.6 创建DMASM磁盘组

A机器

[dmdba@ky1 ~]$ /home/dmdba/dmdbms/bin/dmasmtool DCR_INI=/home/dmdba/dsc/config/dmdcr.ini
dmasmtool V8
ASM>lsdg
total 2 groups......
1 disk_group:
         name: VOTE
         id: 125
         au_size: 1.00 MB
         extent_size: 4
         total_size: 10.00 GB
         free_size: 9.98 GB
         total_file_num: 2
2 disk_group:
         name: DCR
         id: 126
         au_size: 1.00 MB
         extent_size: 4
         total_size: 10.00 GB
         free_size: 9.98 GB
         total_file_num: 2
Used time: 1.814(ms).
ASM> create diskgroup 'DMLOG' asmdisk '/dev_DSC2/DMREDO'
ASM> create diskgroup 'DMARCH' asmdisk '/dev_DSC2/DMARCH01'
ASM> create diskgroup 'DMDATA' asmdisk '/dev_DSC2/DMDATA'

4.7 创建dminit.ini

A机器、B机器配置相同

[dmdba@~]# vi /home/dmdba/dsc/config/dminit.ini
  db_name                  = kydsc
  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                 = 10
  log_size                 = 4096
  dcr_path                 = /dev_DSC2/DMDCR
  dcr_seqno                = 0
  PAGE_SIZE                = 32
  EXTENT_SIZE              = 32
  CASE_SENSITIVE           = Y
  CHARSET                  = 0
  SYSDBA_PWD		   = Dameng123
  SYSAUDITOR_PWD	   = Dameng123

[DSC1]
  config_path              = /home/dmdba/dsc/config/dsc1_config
  port_num                 = 5238
  mal_host                 = 192.168.10.1
  mal_port                 = 6136
  log_path                 = +DMLOG/log/dsc1_log01.log
  log_path                 = +DMLOG/log/dsc1_log02.log 
[DSC2]
  config_path              = /home/dmdba/dsc/config/dsc2_config
  port_num                 = 5238
  mal_host                 = 192.168.10.2
  mal_port                 = 6137
  log_path                 = +DMLOG/log/dsc2_log01.log
  log_path                 = +DMLOG/log/dsc2_log02.log

4.8 初始化实例

A机器

--初始化实例
[dmdba@~]# /home/dmdba/dmdbms/bin/dminit control=/home/dmdba/dsc/config/dminit.ini
dminit V8
db version: 0x7000d
file dm.key not found, use default license!
License will expire on 2027-07-17
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
log file path: +DMLOG/log/dsc1_log01.log
log file path: +DMLOG/log/dsc1_log02.log
log file path: +DMLOG/log/dsc2_log01.log
log file path: +DMLOG/log/dsc2_log02.log
write to dir [+DMDATA/data/dsc].
create dm database success. 2026-09-09 13:38:01

--拷贝文件
[dmdba@ky1 config]$  scp -r /home/dmdba/dsc/config/dsc2_config dmdba@192.168.1.2:/home/dmdba/dsc/config/

4.9 创建dmarch.ini

A机器

--修改dm.ini
[dmdba@~]# vi /home/dmdba/dsc/config/dsc1_config/dm.ini
  ARCH_INI                 = 1
  INSTANCE_NAME		   = DSC1

--创建dmarch.ini 

[dmdba@ky1 dsc1_config]$ cat dmarch.ini 
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL
  ARCH_DEST                = +DMARCH/DSC1/arch
  ARCH_FILE_SIZE           = 2048
  ARCH_SPACE_LIMIT         = 102400
  ARCH_HANG_FLAG           = 0
  ARCH_FLUSH_BUF_SIZE      = 32    
[ARCHIVE_REMOTE]
  ARCH_TYPE                = REMOTE
  ARCH_DEST                = DSC2
  ARCH_INCOMING_PATH       = +DMARCH/DSC2/arch
  ARCH_FILE_SIZE           = 2048
  ARCH_SPACE_LIMIT         = 102400
  ARCH_HANG_FLAG           = 0
  ARCH_FLUSH_BUF_SIZE      = 32

B机器

--修改dm.ini
[dmdba@~]# vi /home/dmdba/dsc/config/dsc2_config/dm.ini
  ARCH_INI                 = 1
  INSTANCE_NAME			   = dsc2

--创建dmarch.ini
[dmdba@node2 dsc2_config]$ cat dmarch.ini 
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL
  ARCH_DEST                = +DMARCH/dsc2/arch
  ARCH_FILE_SIZE           = 2048
  ARCH_SPACE_LIMIT         = 102400
  ARCH_HANG_FLAG           = 0
  ARCH_FLUSH_BUF_SIZE      = 32    
[ARCHIVE_REMOTE]
  ARCH_TYPE                = REMOTE
  ARCH_DEST                = dsc1
  ARCH_INCOMING_PATH       = +DMARCH/dsc1/arch
  ARCH_FILE_SIZE           = 2048
  ARCH_SPACE_LIMIT         = 102400
  ARCH_HANG_FLAG           = 0
  ARCH_FLUSH_BUF_SIZE      = 32

4.10 启动DMSERVER服务

A机器

[dmdba@~]# /home/dmdba/dmdbms/bin/dmserver /home/dmdba/dsc/config/kydsc1_config/dm.ini dcr_ini=/home/dmdba/dsc/config/dmdcr.ini

B机器

[dmdba@~]# /home/dmdba/dmdbms/bin/dmserver /home/dmdba/dsc/config/kydsc2_config/dm.ini dcr_ini=/home/dmdba/dsc/config/dmdcr.ini

4.11 dm.ini参数调优

sp_set_para_value(2,'GRANT_SCHEMA',2);

SP_SET_PARA_VALUE(2,'WORKER_THREADS',64);
SP_SET_PARA_VALUE(2,'IO_THR_GROUPS',32);
SP_SET_PARA_VALUE(2,'GEN_SQL_MEM_RECLAIM',0);
SP_SET_PARA_VALUE(2,'MAX_OS_MEMORY',       100);
SP_SET_PARA_VALUE(2,'MEMORY_POOL',         2000);
SP_SET_PARA_VALUE(2,'MEMORY_N_POOLS',      59);
SP_SET_PARA_VALUE(2,'MEMORY_TARGET',       41000);
SP_SET_PARA_VALUE(2,'BUFFER',              163000);
SP_SET_PARA_VALUE(2,'BUFFER_POOLS',        101);
SP_SET_PARA_VALUE(2,'RECYCLE',            17000);
SP_SET_PARA_VALUE(2,'RECYCLE_POOLS',       97);
SP_SET_PARA_VALUE(2,'FAST_POOL_PAGES',  10000);
SP_SET_PARA_VALUE(2,'FAST_ROLL_PAGES',   3000);
SP_SET_PARA_VALUE(2,'TASK_THREADS',     16);
SP_SET_PARA_VALUE(2,'DSC_INSERT_LOCK_ROWS', 0);
SP_SET_PARA_VALUE(2,'MEMORY_MAGIC_CHECK',       1);
SP_SET_PARA_VALUE(1,'HJ_BUF_GLOBAL_SIZE',  42000);
SP_SET_PARA_VALUE(1,'HJ_BUF_SIZE',        512);
SP_SET_PARA_VALUE(1,'HAGR_BUF_GLOBAL_SIZE',26000);
SP_SET_PARA_VALUE(1,'HAGR_BUF_SIZE',     512);
SP_SET_PARA_VALUE(2,'SORT_FLAG',1);
SP_SET_PARA_VALUE(2,'SORT_BLK_SIZE',2);
SP_SET_PARA_VALUE(2,'SORT_BUF_SIZE',       50);
SP_SET_PARA_VALUE(2,'SORT_BUF_GLOBAL_SIZE',       42000);
SP_SET_PARA_VALUE(2,'RLOG_POOL_SIZE',      2048);
SP_SET_PARA_VALUE(2,'CACHE_POOL_SIZE',     2048);
SP_SET_PARA_VALUE(2,'DICT_BUF_SIZE',       1024);
SP_SET_PARA_VALUE(2,'VM_POOL_TARGET',      8192);
SP_SET_PARA_VALUE(2,'SESS_POOL_TARGET',    8192);
SP_SET_PARA_VALUE(2,'USE_PLN_POOL',        1);
SP_SET_PARA_VALUE(2,'ENABLE_MONITOR',      1);
SP_SET_PARA_VALUE(2,'SVR_LOG',             0);
SP_SET_PARA_VALUE(2,'TEMP_SIZE',           1024);
SP_SET_PARA_VALUE(2,'TEMP_SPACE_LIMIT',    102400);
SP_SET_PARA_VALUE(2,'MAX_SESSIONS',        5100);
SP_SET_PARA_VALUE(2,'MAX_SESSION_STATEMENT', 20000);
SP_SET_PARA_VALUE(2,'PK_WITH_CLUSTER',          0);
SP_SET_PARA_VALUE(2,'ENABLE_ENCRYPT',0);
SP_SET_PARA_VALUE(2,'OLAP_FLAG',2);
SP_SET_PARA_VALUE(2,'OPTIMIZER_MODE',1);
SP_SET_PARA_VALUE(2,'ADAPTIVE_NPLN_FLAG',0);
SP_SET_PARA_VALUE(2,'MONITOR_INDEX_FLAG',2);
SP_SET_PARA_VALUE(2,'ENABLE_CREATE_BM_INDEX_FLAG',0);
SP_SET_PARA_VALUE(2,'PARALLEL_PURGE_FLAG',1);
SP_SET_PARA_VALUE(2,'PARALLEL_POLICY',2);
SP_SET_PARA_DOUBLE_VALUE(2,'UNDO_RETENTION',900);
SP_SET_PARA_VALUE(2,'UNDO_EXTENT_NUM',16);
SP_SET_PARA_VALUE(2,'ENABLE_INJECT_HINT',1);
SP_SET_PARA_VALUE(2,'BTR_SPLIT_MODE',1);
SP_SET_PARA_VALUE(2,'FAST_LOGIN',1);
SP_SET_PARA_VALUE(2,'ENABLE_MONITOR_BP',0);
SP_SET_PARA_VALUE(1,'SLCT_OPT_FLAG',0);
SP_SET_PARA_VALUE(2,'ENABLE_FREQROOTS',0);
SP_SET_PARA_VALUE(2,'BUFFER_MODE',1);
SP_SET_PARA_VALUE(2,'FAST_RW_LOCK',2);
SP_SET_PARA_VALUE(2,'MULTI_PAGE_GET_NUM',1);
SP_SET_PARA_VALUE(2,'PRELOAD_SCAN_NUM',0);
SP_SET_PARA_VALUE(2,'PRELOAD_EXTENT_NUM',0);
SP_SET_PARA_VALUE(2,'DSC_N_POOLS',59);
SP_SET_PARA_VALUE(2,'DSC_HALT_SYNC',0);
SP_SET_PARA_VALUE(2,'DSC_N_CTLS',50000);
SP_SET_PARA_VALUE(2,'DSC_ENABLE_MONITOR',0);
SP_SET_PARA_VALUE(2,'TRX_DICT_LOCK_NUM',5);
SP_SET_PARA_VALUE(2,'DIRECT_IO',1);

注意参数:(详见管理员手册)
COMPATIBLE_MODE(异构数据库兼容):2:Oracle 3:SQLServer 4:Mysql

4.12 调整sqllog.ini

将SVR_LOG参数调整为1
SP_SET_PARA_VALUE(1,'SVR_LOG',1);
sqllog.ini配置参考:
BUF_TOTAL_SIZE          = 1024000        #SQLs Log Buffer Total Size(K)(1024~1024000)
    BUF_SIZE                = 10240          #SQLs Log Buffer Size(K)(50~102400)
    BUF_KEEP_CNT            = 20             #SQLs Log buffer keeped count(1~100)
    PARAMS_DELAY            = 0             #SQLs Log param data whether report delay(0~2)

    [SLOG_ALL]
    FILE_PATH    = /data/sqllog/dsc
    PART_STOR    = 0
    SWITCH_MODE  = 2
    SWITCH_LIMIT   = 512
    ASYNC_FLUSH   = 1
    FILE_NUM = 50
    ITEMS    = 0
    SQL_TRACE_MASK  = 1
    MIN_EXEC_TIME = 0
    USER_MODE   = 0
    USERS =
    EXECTIME_PREC_FLAG = 0

    [SLOG_ERROR]
    SQL_TRACE_MASK = 23
    FILE_PATH      = ../log

    [SLOG_DDL]
    SQL_TRACE_MASK = 3

    [SLOG_LONG_SQL]
    SQL_TRACE_MASK = 25
    MIN_EXEC_TIME = 60000

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

A机器

[root@~]# cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmcss 	-dcr_ini /home/dmdba/dsc/config/dmdcr.ini -p CSS
./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
./dm_service_installer.sh -t dmserver -dm_ini  /home/dmdba/dsc/config/kydsc1_config/dm.ini -dcr_ini /home/dmdba/dsc/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSCDB

B机器

[root@~]# cd /home/dmdba/dmdbms/script/root
./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dsc/config/dmdcr.ini -p CSS
./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/dsc/config/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dsc/config/kydsc2_config/dm.ini -dcr_ini /home/dmdba/dsc/config/dmdcr.ini -y DmASMSvrServiceASM.service -p DSCDB
备注:删除服务
[root@~]# /home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmCSSServiceCSS
[root@~]# /home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmASMSvrServiceASM
[root@~]# /home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceKY

取消自启动参数注释:

[dmdba@  config]$ cat dmdcr.ini 
DMDCR_PATH                 = /dev_DSC2/DCR 
DMDCR_MAL_PATH             = /home/dmdba/dsc/config/dmasvrmal.ini
DMDCR_SEQNO                = 1
DMDCR_AUTO_OPEN_CHECK      = 30
DMDCR_ASM_TRACE_LEVEL      = 2
#DMDCR_LINK_CHECK_IP = 192.168.1.4
DMDCR_ASM_RESTART_INTERVAL = 60
DMDCR_ASM_STARTUP_CMD      = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/dsc/config/dmdcr.ini
DMDCR_DB_RESTART_INTERVAL  = 60
DMDCR_DB_STARTUP_CMD       = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/dsc/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/dsc/config/dmdcr.in

5 配置监视器

5.1 创建dmcssm.ini

A机器、B机器配置相同

[dmdba@~]# vi /home/dmdba/dmdbms/bin/dmcssm.ini
CSSM_OGUID                 = 45333
CSSM_CSS_IP                = 192.168.10.1:5636
CSSM_CSS_IP                = 192.168.10.2:5637
CSSM_LOG_PATH              = /home/dmdba/dsc/dmcssmlog
CSSM_LOG_FILE_SIZE         = 512
CSSM_LOG_SPACE_LIMIT       = 2048

5.2 注册服务(选做)

[root@~]#/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcssm -cssm_ini /home/dmdba/dsc/config/dmcssm.ini -p DSC
备注:删除服务
[root@~]# /home/dmdba/dmdbms/script/root/dm_service_uninstaller.sh -n DmCSSMonitorServiceDSC

5.3 监视器使用

命令		含义
show		查看所有组的信息
show config	查看dmdcr_cfg.ini 的配置信息
show monitor	查看当前连接到主 CSS 的所有监视器信息

6 启停服务

6.1 启动监视器

[dmdba@~]# /home/dmdba/dmdbms/bin/DmCSSMonitorServiceDSC start
前台启动:
[dmdba@~]#/home/dmdba/dmdbms/bin/dmcssm INI_PATH=/home/dmdba/dmdbms/bin/dmcssm.ini

6.2 启停集群

启动:A/B机器CSS
A/B机器:
[dmdba@~]# /home/dmdba/dmdbms/bin/DmCSSServiceCSS start
说明:CSS启动后30秒自动拉起ASM,60秒自动拉起DMSERVER。
停止: A/B机器DMSERVER→A/B机器ASM→A/B机器CSS

A/B机器:[dmdba@~]# /home/dmdba/dmdbms/bin/DmServiceDB stop
A/B机器:[dmdba@~]# /home/dmdba/dmdbms/bin/DmASMSvrServiceASM stop
A/B机器:[dmdba@~]# /home/dmdba/dmdbms/bin/DmCSSServiceCSS stop

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

6.3 定时备份及删除

--注意:开归档、备份路径:/dmbak
每周六1点一次全备,除每周六外每天1点增备,备份保留7天
call SP_INIT_JOB_SYS(0);
call SP_INIT_JOB_SYS(1);
call SP_CREATE_JOB('full_dele',1,0,'',0,0,'',0,'全备执行成功执行删除操作');
call SP_JOB_CONFIG_START('full_dele');
call SP_ADD_JOB_STEP('full_dele', 'fullbak', 6, '05000000/dmbak', 3, 1, 0, 0, '/dmbak/fullbak.log', 1);
call SP_ADD_JOB_STEP('full_dele', 'delebak', 0, 'CALL SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmbak'');
CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',sysdate-15);', 1, 1, 0, 0, '/dmbak/fullbak.log', 1);
CALL SP_JOB_STEP_SET_NEXT_STEP('full_dele', 'fullbak', 'delebak', NULL);
call SP_ADD_JOB_SCHEDULE('full_dele', 'full_sche', 1, 2, 1, 64, 0, '01:00:00', NULL, '2025-05-28 22:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('full_dele');
call SP_JOB_SET_SCHEMA('full_dele', 'SYSDBA');

全备压缩5,增备压缩2,全备执行成功执行删除操作,增备执行失败执行一次全备
call SP_CREATE_JOB('increbak',1,0,'',0,0,'',0,'增备执行失败执行一次全备');
call SP_JOB_CONFIG_START('increbak');
call SP_ADD_JOB_STEP('increbak', 'increbak', 6, '12000000/dmbak|/dmbak', 1, 3, 0, 0, '/dmbak/incbak.log', 1);
call SP_ADD_JOB_STEP('increbak', 'ink_full_bak', 6, '05000000/dmbak', 0, 0, 0, 0, NULL, 0);
CALL SP_JOB_STEP_SET_NEXT_STEP('increbak', 'increbak', NULL, 'ink_full_bak');
call SP_ADD_JOB_SCHEDULE('increbak', 'increbak', 1, 2, 1, 63, 0, '01:00:00', NULL, '2025-05-28 22:00:00', NULL, '');
call SP_JOB_CONFIG_COMMIT('increbak');
call SP_JOB_SET_SCHEMA('increbak', 'SYSDBA');

7 配置应用连接

Linux环境:dm_svc.conf放在应用服务器/etc目录下。
Windows32环境:dm_svc.conf放在应用服务器System32目录下。
Windows64环境:dm_svc.conf放在应用服务器System32和SysWOW64目录下。

7.1 创建dm_svc.conf

[root@~]# vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)

DSC=(192.168.1.1:5238,192.168.1.2:5238)
[DSC]
CLUSTER=(DSC)
EP_SELECTOR=(1)
AUTO_RECONNECT=(2)
SWITCH_TIMES=(10)
SWITCH_INTERVAL=(300)
SWITCH_INTERVAL=(300)

7.2 应用连接

<DRIVER>dm.jdbc.driver.DmDriver</DRIVER>
<URL>jdbc:dm://DSC</URL>
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服