VMware平台搭建DMDSC 环境
一.配置规划
1.1 网络规划
操作系统 数据库实例名 IP地址 心跳IP地址
RedHat 7.6 DMDSC1 192.168.1.21 10.10.1.21
RedHat 7.6 DMDSC2 192.168.1.22 10.10.1.22
1.2 共享存储规划
DMASM磁盘组 容量 后续空间不足报错,扩容后
DCR DISK 2g1 30g1
VOTING DISK 2g1 30g1
LOG DISK 3g1 50g1
DATADISK1 3g1 100g1
DATADISK2 3g1 50g1
二.软件准备
2.1 系统镜像:
rhel-server-7.6-x86_64-dvd.iso
2.2 数据库软件包:
dm8_20251016_x86_rh7_64.zip
三.硬件准备
3.1 Windows系统配置:
3.2 虚拟机系统配置:
虚拟机RedHat7_DMDSC1:
虚拟机RedHat7_DMDSC2:
如上所示, DMDSC1和 DMDSC2的配置相同
3.3 配置虚拟机共享存储
3.3.1 创建虚拟共享磁盘
在Windows系统下执行cmd命令进入DOS窗口,切换到VMware虚拟机的安装路径下 , 然后执行如下所示命令创建共享磁盘
vmware-vdiskmanager.exe -c -s 2g -t 2 " D:\Software\VMware\Virtual Machines\Share Disk \dcr .vmdk"
vmware-vdiskmanager.exe -c -s 2g -t 2 "D:\Software\VMware\Virtual Machines\Share Disk \vote.vmdk"
vmware-vdiskmanager.exe -c -s 3g -t 2 "D:\Software\VMware\Virtual Machines\Share Disk \log.vmdk"
vmware-vdiskmanager.exe -c -s 3g -t 2 "D:\Software\VMware\Virtual Machines\Share Disk \datadisk1.vmdk"
vmware-vdiskmanager.exe -c -s 3g -t 2 "D:\Software\VMware\Virtual Machines\Share Disk \datadisk2.vmdk"
注意:
① 以上创建共享磁盘的路径自定义,如果路径中含有空格,则加双引号。
② 如果路径外含有空格,则会报错路径无法识别,文件创建失败,路径命名需删除非必要空格
③ 如果文件名含有空格,则会包含空格部分创建命名,对后续操作造成困扰,建议文件命名删除非必要空格
命令执行成功后在自定义的路径下会显示刚刚创建的磁盘
注意:
建议使用 vmware-vdiskmanager.exe的方式添加共享磁盘,直接在其中一台机器创建磁盘,第二台再关联的方式可能会在后面启动css时出现问题。
3.3.2 编辑虚拟机配置文件
首先关闭两台虚拟机DMDSC1和DMDSC2,然后找到 DMDSC1和DMDSC2虚拟机的安装路径,
右键选择记事本打开DMDSC1,添加如下内容:
#shared disks configure
disk.locking = "FALSE"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.dataCacheMinReadAheadSize = "0"
diskLib.maxUnsyncedWrites = "0"
scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsil.sharedBus = "VIRTUAL"
scsi1:0.present = "TRUE"
scsi1:0.mode = "independent-persistent"
scsi1:0.fileName = "D:\Software\VMware\Virtual Machines\Share Disk\dcr.vmdk"
scsi1:0.deviceType = "disk"
scsi1:0.redo = ""
scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.fileName = "D:\Software\VMware\Virtual Machines\Share Disk\vote.vmdk"
scsi1:1.deviceType = "disk"
scsi1:1.redo = ""
scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.fileName = "D:\Software\VMware\Virtual Machines\Share Disk\log.vmdk"
scsi1:2.deviceType = "disk"
scsi1:2.redo = ""
scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.fileName = "D:\Software\VMware\Virtual Machines\Share Disk\datadisk1.vmdk"
scsi1:3.deviceType = "disk"
scsi1:3.redo = ""
scsi1:4.present = "TRUE"
scsi1:4.mode = "independent-persistent"
scsi1:4.fileName = "D:\Software\VMware\Virtual Machines\Share Disk\datadisk2.vmdk"
scsi1:4.deviceType = "disk"
scsi1:4.redo = ""
在DMDSC2安装路径下重复同样的操作,
参数1: disk.locking=“ FALSE” 。
说明: 虚拟机系统在启动的时候会锁定磁盘, 所以当启动虚机 1 后共享磁盘被锁定了, 虚机 2 就起不来了,因此需要加入 disk.locking = “ false”
参数 2: scsi[n].sharedBus = “ virtual” 。
说明: 以上的设置表示所有的 BUS 都共享, vmare 推荐这种做法。 如果说是不是所有的 bus 都共享的话, 可以 将 上 述 scsi1.sharedBus = "virtual" 改 成 scsi1:1.shared = "true" 或 者 是 scsi2:0.SharedBus= “ Virtual” 。其实 Buslogic 和 LSIlogic 都是虚拟硬盘 SCSI 设备的类型。 这里的 Bus 实际就是指的 Buslogic, 是虚拟硬盘类型。
重新打开虚拟机软件,如下所示即为共享磁盘创建成功
运行 D MDSC 1和 D MDSC 2虚拟机,
通过 fdisk – l和lsblk命令从系统层面查看磁盘信息
四.网络前置作业
4.1 Windows主机虚拟网卡配置
VMware Network Adapter VMnet1 虚拟网卡配置 :
VMware Network Adapter VMnet8 虚拟网卡配置:
4.2 DMDSC虚拟机网络配置
DMDSC1 网络配置 :
DMDSC2 网络配置:
五.系统前置作业(节点 1、2均执行)
5.1 安装图形化组件
由于系统是默认建议安装,缺少图形化组件,因此需手动安装。
5.1.1 VMware平台连接系统镜像
5.1.2 挂载 ISO 光盘
5.1.3 配置本地 YUM 源:
5.1.4 安装图形化组件
清空 YUM 缓存,安装图形化组件 ”Server with GUI”
大概安装几分钟结束,查看确认是否默认图形化启动,然后开启图形化界面
5.2 关闭防火墙
关闭防火墙并设置开机默认关闭防火墙
5.3 关闭Selinux
设置开机默认关闭 selinux,并修改当前selinux状态为disabled
5.4 修改主机名及hosts文件配置
编辑 /etc/hostname 文件静态修改主机名,通过 hostname命名修改当前主机名
修改 /etc/hosts 文件
六.数据库前置作业(节点1、2均执行)
6.1 创建数据库系统用户和组
groupadd -g 2001 dinstall
useradd -u 2002 -g dinstall dmdba
echo "P@ssw0rd"|passwd --stdin dmdba
6.2 创建数据库相关目录
mkdir -p /dmdsc/{dmdbms,dm_backup,cssm_log,core}
mkdir -p /dmdsc/dmdbms/dsc_config/
mkdir -p /dmdsc/dmdbms/log/logcommit
mkdir /dmarch
chmod 755 /dmdsc -R
chown dmdba:dinstall /dmdsc/ -R
chmod 755 /dmarch -R
chown dmdba.dinstall /dmarch -R
6.3 修改系统内核参数
因为Linux系统的内核参数信息都放在内存中,可以通过命令直接修改且立即生效,但是当系统重启后,原有的参数配置会丢失,每次系统启动都需要去读取/etc/sysctl.conf文件来获取内核参数信息
cat >> /etc/sysctl.conf<< EOF
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.core_pattern=/dmdsc/core/core-%e-%p-%t
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576vm.min_free_kbytes = 65536
vm.swappiness = 20
vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.overcommit_memory=0
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.ip_local_port_range = 9000 65500
EOF
提交内核参数 sysctl -p
6.4 修改用户资源限制
配置 /etc/security/limits.conf
cat >>/etc/security/limits.conf<< EOF
dmdba soft nice 65536
dmdba hard nice 65536
#dmdba soft as unlimited
#dmdba hard as unlimited
dmdba soft fsize unlimited
dmdba hard fsize unlimited
dmdba soft nproc 65536
dmdba hard nproc 65536
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
6.5 配置/etc/profile文件
[root@rac1 yum.repos.d]# cat >> /etc/profile << EOF
if [ $USER = "oracle" ] || [ $USER = "grid" ];then
if [ $SHELL = "/bin/ksh" ];then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
#############################
export PATH=$PATH:/u01/app/11.2.0/grid/bin
#color of grep
alias grep='grep --color=auto'
EOF
[root@rac1 yum.repos.d]#
6.6 配置用户环境变量
su - dmdba
cat >> /home/dmdba/.bash_profile<< EOF
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export DM_INSTALL_TMPDIR=/tmp
export DM_HOME="/dmdsc/dmdbms"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dmdsc/dmdbms/bin"
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
EOF
七 . 配置共享磁盘UUID 绑定(节点 1、2均执行)
7.1 创建uuid.sh 脚本
绑定设备的UUID。创建 uuid.sh 文件,使用脚本生成配置文件。
vi uuid.sh
for i in b c d e f ;
do
echo /dev/sd$i /usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i
done
curr=$(cd "$(dirname "$0")";pwd)
for i in b c d e f ;
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/dsc_sd$i",OWNER="dmdba", GROUP="dinstall",MODE="0660"" >> $curr/88-dm-asmdevices.rules
done
执行 uuid 脚本生成 88-dm-asmdevices.rules 文件
脚本执行成功后, 当前目录会生成绑定配置文件 88-dm-asmdevices.rules
( 每一个 KERNEL 是一行, 中间不要有空行) , 可以根据自己的需求进行修改别名 SYMLINK+="", 注释说明 :
定义: UUID 是一种全局唯一的标识符, 用于唯一标识设备。 在多路径配置中, 可以使用设备的 UUID 来标识设备, 而不依赖于具体的设备文件名。
配置: 使用 UUID 方式配置时, 不再依赖于设备文件名, 而是使用设备的 UUID 来标识路径。
优点:
不受设备文件名变化的影响: 由于使用 UUID, 不受设备文件名变化的影响, 配置更加稳定。
缺点:
配置相对繁琐: 相对于直接使用设备文件名, 使用 UUID 方式配置相对繁琐一些。
7 .2 编辑 udev 规则文件
编辑 88-dm-asmdevices.rules 文件,修改 SYMLINK 参数指定别名
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29c7c663f812e8f728bef6ce1ad", SYMLINK+="asmdisk/dsc_dcr",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c296baa3b44042e56ecff7bbba4a", SYMLINK+="asmdisk/dsc_vote",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2920f4b01f7f2ec74544a62f343", SYMLINK+="asmdisk/dsc_log",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c291f57d080950629d1c2d3ba68f", SYMLINK+="asmdisk/dsc_data1",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29784aea0eaef1d7d86f86019fa", SYMLINK+="asmdisk/dsc_data2",OWNER="dmdba", GROUP="dinstall",MODE="0660"
这个配置文件是一个 udev 规则文件, 用于在 Linux 系统中创建设备符号链接以及设置设备的权限和所有者。 udev 是 Linux 系统中的设备管理器, 用于在系统启动时动态创建和管理设备文件。
KERNEL=="sd?" : 这个条件匹配任何以 "sd" 开头, 后跟一个字符的块设备, 其中 "?" 是一个通配符, 表 示任何单个字符。 这通常用于匹配 SCSI 设备, 如硬盘。
SUBSYSTEM=="block" : 规定匹配的设备必须属于 block 子系统。
PROGRAM=="/usr/lib/udev/scsi_id --replace-whitespace --device=/dev/$name" :
这是一个程序调用, 用于获取 SCSI 设备的唯一标识符( UUID ) 。
--replace-whitespace 参数表示替换空格。
RESULT==" " : 这个条件检查上述程序调用的结果是否等于指定的 SCSI 设备标识符。 SYMLINK+="dmredo" : 如果所有的前面的条件都满足, 那么就会创建一个符号链接, 将匹配的设备映射到 /dev/dmredo 。
OWNER="dmdba", GROUP="dinstall", MODE="0660" : 设置创建的符号链接 /dev/dmredo 的所有者为 dmdba , 所属组为 dinstall , 权限为 0660 。
综合来说, 多路径方式侧重于利用多个物理路径提高冗余性和性能, 而 UUID 方式侧重于使用设备的唯一标 识符来防止配置在设备文件名变化时的不稳定性。 在实际应用中, 可以根据具体需求选择合适的方式。
此处因 scsi_id 无法查询出 U UID 信息的问题卡顿,原因如下:
在 VMware 等虚拟化平台中,若 scsi_id 无输出,需通过配置虚拟机文件(如 .vmx )启用 UUID 支持:
修改完配置文件后重启两台虚拟机,重复上述操作。
生成配置文件后,复制文件至 /etc/udev/rules.d/路径下
cp 88-dm-asmdevices.rules /etc/udev/rules.d/88-dm-asmdevices.rules
重新加载udev服务
/sbin/udevadm control --reload-rules
/sbin/udevadm trigger --action=add
/sbin/udevadm trigger --type=devices --action=change
7 .3 修改权限并开机自启生效
修改共享磁盘所有者和所属组 chown -R dmdba:dinstall /dev/asm*
将命令添加到 /etc/rc.local 随系统启动执行
八. 集群安装部署
8 .1 数据库安装介质(节点 1、2均执行)
上传 D M8 数据库安装包并解压缩,挂载 I SO 镜像,授权。
8 .2 安装数据库软件(节点 1、2均执行)
[dmdba@DMDESC1 ~]$ ./DMInstall.bin -i
Installer Language:
Please select the installer's language 2:1
解压安装程序 ..........
硬件架构校验通过!
欢迎使用达梦数据库安装程序
是否输入 Key文件路径? (Y/y:是 N/n:否) [Y/y]:n
是否设置时区 ? (Y/y:是 N/n:否) [Y/y]:y
设置时区 :
1: (GTM-12:00) 日界线西
2: (GTM-11:00) 萨摩亚群岛
[ 3]: (GTM-10:00) 夏威夷
[ 4]: (GTM-09:00) 阿拉斯加
[ 5]: (GTM-08:00) 太平洋时间(美国和加拿大)
[ 6]: (GTM-07:00) 亚利桑那
[ 7]: (GTM-06:00) 中部时间(美国和加拿大)
[ 8]: (GTM-05:00) 东部部时间(美国和加拿大)
[ 9]: (GTM-04:00) 大西洋时间(美国和加拿大)
[10]: (GTM-03:00) 巴西利亚
[11]: (GTM-02:00) 中大西洋
[12]: (GTM-01:00) 亚速尔群岛
[13]: (GTM) 格林威治标准时间
[14]: (GTM+01:00) 萨拉热窝
[15]: (GTM+02:00) 开罗
[16]: (GTM+03:00) 莫斯科
[17]: (GTM+04:00) 阿布扎比
[18]: (GTM+05:00) 伊斯堡
[19]: (GTM+06:00) 达卡
[20]: (GTM+07:00) 曼谷,河内
[21]: (GTM+08:00) 中国标准时间
[22]: (GTM+09:00) 首尔
[23]: (GTM+10:00) 关岛
[24]: (GTM+11:00) 所罗门群岛
[25]: (GTM+12:00) 斐济
[26]: (GTM+13:00) 努库阿勒法
[27]: (GTM+14:00) 基里巴斯
请选择时区 [5]:21
安装类型 :
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:
所需空间 : 1783M
请选择安装目录 [/home/dmdba/dmdbms]:/dmdsc/dmdbms
可用空间 : 87G
是否确认安装路径 (/dmdsc/dmdbms)? (Y/y:是 N/n:否) [Y/y]:y
安装前小结
安装位置 : /dmdsc/dmdbms
所需空间 : 1783M
可用空间 : 87G
版本信息 :
有效日期 :
安装类型 : 典型安装
是否确认安装 ? (Y/y:是 N/n:否):y
2025-12-09 17:12:56
[INFO] 安装达梦数据库...
2025-12-09 17:12:56
[INFO] 安装 基础 模块...
2025-12-09 17:13:11
[INFO] 安装 服务器 模块...
2025-12-09 17:13:15
[INFO] 安装 客户端 模块...
2025-12-09 17:13:28
[INFO] 安装 驱动 模块...
2025-12-09 17:13:37
[INFO] 安装 手册 模块...
2025-12-09 17:13:38
[INFO] 安装 服务 模块...
2025-12-09 17:13:39
[INFO] 移动日志文件。
2025-12-09 17:13:40
[INFO] 安装达梦数据库完成。
请以 root系统用户执行命令:
/dmdsc/dmdbms/script/root/root_installer.sh
安装结束
按照提示切换至 root用户下执行脚本
[dmdba@DMDESC1 ~]$ exit
logout
[root@DMDESC1 dmdba]# /dmdsc/dmdbms/script/root/root_installer.sh
移动 /dmdsc/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.s
ervice.创建服务(DmAPService)完成
启动 DmAPService服务
[root@DMDESC1 dmdba]#
8.3 配置 dmdcr_cfg.ini 文件(节点 1、2均执行)
8.3.1 创建相关目录
[root@DMDSC1 dmdba]# mkdir -p /dmdsc/dmdbms/dsc_config/
[root@DMDSC1 dmdba]# mkdir -p /dmdsc/dmdbms/log/logcommit
[root@DMDSC1 dmdba]# chown dmdba:dinstall /dmdsc/ -R
8.3.2 编辑集群配置文件
vi /dmdsc/dmdbms/dsc_config/dmdcr_cfg.ini
DCR_N_GRP = 3 ##集群环境有多少个 GROUP, 范围: 1~16
DCR_VTD_PATH = /dev/asmdisk/dsc_vote ##规划的vote盘
DCR_OGUID = 20251210 ##消息标识,长度不超过19位只能为数字,DMCSSM 登录DMCSS 消息校验用
[GRP] ##新建一个 GROUP
DCR_GRP_TYPE = CSS ##组类型( CSS/ASM/DB)
DCR_GRP_NAME = GRP_CSS ##CSS服务组名,固定名称
DCR_GRP_N_EP = 2 ##组内节点个数
DCR_GRP_DSK_CNT = 60 ##磁盘心跳容错时间, 单位:秒
[GRP_CSS] ##与CSS [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = GRP_CSS1 ##节点CSS服务名
DCR_EP_HOST = 10.10.1.21 ##dmdsc1心跳ip地址
DCR_EP_PORT = 9220 ##CSS端口
[GRP_CSS] ##与[GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = GRP_CSS2 ##节点CSS服务名
DCR_EP_HOST = 10.10.1.22 ##dmdsc2心跳ip地址
DCR_EP_PORT = 9220 ##CSS端口
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM ##ASM服务组名,固定名称
DCR_GRP_N_EP = 2 ##组内节点个数
DCR_GRP_DSK_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.10.1.21 ##dmdsc1心跳ip地址
DCR_EP_PORT = 8221 ##ASM端口
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.10.1.22 ##dmdsc2心跳ip地址
DCR_EP_PORT = 8221 ##ASM端口
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_DSK_CNT = 60 ##磁盘心跳容错时间, 单位:秒
[GRP_DB] ##与DB [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = DMDSC1 ##节点1实例名,和dm.ini 的 INSTANCE_NAME 一致
DCR_EP_SEQNO = 0 ##固定数值,组内序号, 不能重复
DCR_EP_PORT = 5236 ##实例端口,和dm.ini 的 PORT_NUM 一致
DCR_CHECK_PORT = 7222 ##DCR 检查端口
[GRP_DB] ##与DB [GRP]标签配置中的DCR_GRP_NAME保持一致
DCR_EP_NAME = DMDSC2 ##节点2实例名,和dm.ini 的 INSTANCE_NAME 一致
DCR_EP_SEQNO = 1 ##固定数值,组内序号, 不能重复
DCR_EP_PORT = 5236 ##实例端口,和dm.ini 的 PORT_NUM 一致
DCR_CHECK_PORT = 7222 ##DCR 检查端口
8.4 初始化共享磁盘(节点 1执行)
vi /dmdsc/dmdbms/dsc_config/asmcmd.txt
#asm script file
create dcrdisk '/dev/asmdisk/dsc_dcr' 'DCR' ##创建一个分布式集群资源磁盘,挂载点为/dev/asmdisk/dsc_dcr,别名为 DCR
create votedisk '/dev/asmdisk/dsc_vote' 'VOTE' ##创建一个分布式集群资源磁盘,挂载点为/dev/asmdisk/dsc_vote,别名为 VOTE
init dcrdisk '/dev/asmdisk/dsc_dcr' from ' /dmdsc/dmdbms/dsc_config/dmdcr_cfg.ini ' identified by ' P@ssw0rd ' ##初始化/dev/asmdisk/dsc_dcr 分布式集群资源磁盘,使用配置文件 dmdcr_cfg.ini 进行设置
init votedisk '/dev/asmdisk/dsc_vote' from ' /dmdsc/dmdbms/dsc_config/dmdcr_cfg.ini ' ##初始化/dev/asmdisk/dsc_vote 分布式集群资源磁盘,使用配置文件 dmdcr_cfg.ini 进行设置
create asmdisk '/dev/asmdisk/dsc_log' 'LOG' ##创建一个分布式集群资源磁盘,挂载点为/dev/asmdisk/dsc_log,别名为 LOG
create asmdisk '/dev/asmdisk/dsc_data1' 'DATA' ##创建一个分布式集群资源磁盘,挂载点为/dev/asmdisk/dsc_data1,别名为 DATA
create asmdisk '/dev/asmdisk/dsc_data2' ' ARCH ' ##创建一个分布式集群资源磁盘,挂载点为/dev/asmdisk/dsc_data2,别名为 ARCH
执行脚本创建共享磁盘
dmasmcmd SCRIPT_FILE=/dmdsc/dmdbms/dsc_config/asmcmd.txt
创建成功后登录 asm检查磁盘
8.5 配置 dmasvrmal.ini 文件
创建节点目录
节点 1 :
mkdir –p /dmdsc/dmdbms/dsc_config/DMDSC1
节点 2 :
mkdir –p /dmdsc/dmdbms/dsc_config/DMDSC2
在以上两个路径下创建并编辑 dmasvrmal.ini 文件
[MAL_INST1]
MAL_INST_NAME = GRP_ASM1 ## 与 dmdcr_cfg.ini 配置文件中 ASM 组中配置的节点名称保持一致
MAL_HOST = 10.10.1.21 ##dmdsc1 心跳 ip 地址
MAL_PORT = 4234 ##MAL 监听端口
[MAL_INST2]
MAL_INST_NAME = GRP_ASM2 ## 与 dmdcr_cfg.ini 配置文件中 ASM 组中配置的节点名称保持一致
MAL_HOST = 10.10.1.22 ##dmdsc2 心跳 ip 地址
MAL_PORT = 4234 ##MAL 监听端口
8.6 配置dmdcr.ini 文件
节点1 :
vi /dmdsc/dmdbms/dsc_config/DMDSC1/dmdcr.ini
DMDCR_PATH = /dev/asmdisk/dsc_dcr
DMDCR_MAL_PATH = /dmdsc/dmdbms/dsc_config/DMDSC1/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 90
DMDCR_ASM_TRACE_LEVEL = 2
##CSS 认定 ASM 故障重启的时间,设置为 0 则不自动拉起
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dmdsc/dmdbms/bin/DmAsmService_DMDSC1 start
##CSS 认定 DSC 故障重启的时间,设置为 0 则不自动拉起
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dmdsc/dmdbms/bin/DmAsmService_DMDSC1 start
节点2:
vi /dmdsc/dmdbms/dsc_config/DMDSC2/dmdcr.ini
DMDCR_PATH = /dev/asmdisk/dsc_dcr
DMDCR_MAL_PATH = /dmdsc/dmdbms/dsc_config/DMDSC2/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_AUTO_OPEN_CHECK = 90
##指定日志级别 1:TRACE ;2:WARN; 3:ERROR ;4:FATAL,缺省为 1。
DMDCR_ASM_TRACE_LEVEL = 2
##CSS认定ASM故障重启的时间,设置为0则不自动拉起
DMDCR_ASM_RESTART_INTERVAL = 0
##服务名与注册的服务名保持一致
##DMDCR_ASM_STARTUP_CMD = /dmdsc/dmdbms/ bin /DmAsmService_DMDSC2 start
##CSS认定DSC故障重启的时间,设置为0则不自动拉起
DMDCR_DB_RESTART_INTERVAL = 0
##服务名与注册的服务名保持一致
DMDCR_DB_STARTUP_CMD = /dmdsc/dmdbms/bin/DmAsmService_DMDSC2 start
注意 :
当前为手动拉起节点 1 和节点 2 的 ASM 和 DMSERVER 服务,因此最后四行自动拉起的配置参数先注释,待集群配置完成后, 再删除 ” # ” 取消注释使其生效 。
8.7 启动 DMCSS、DMASM 服务
在两个节点主机分别启动 dmcss 命令:
节点 1:
dmcss DCR_INI=/dmdsc/dmdbms/dsc_config/DMDSC1/dmdcr.ini
节点 2:
dmcss DCR_INI=/dmdsc/dmdbms/dsc_config/DMDSC2/dmdcr.ini
在两个节点主机分别启动 dmasmsvr 命令:
节点 1:
dmasmsvr DCR_INI=/dmdsc/dmdbms/dsc_config/DMDSC1/dmdcr.ini
节点 2:
dmasmsvr DCR_INI=/dmdsc/dmdbms/dsc_config/DMDSC2/dmdcr.ini
前面配置 dmdcr.ini 文件中的 DmAsmService、 DmService 并未创建出来,需要多开几个终端窗口手动启动,这四个终端窗口暂时不能关闭。
8.8 创建 DMASM 磁盘组(节点 1执行)
执行 dmasmtool 命令创建 DMASM 磁盘组
[dmdba@DMDESC1 DMDSC1]$ dmasmtool DCR_INI=/dmdsc/dmdbms/dsc_config/DMDSC1/dmdcr.ini
dmasmtool V8
##创建日志磁盘组
ASM>create diskgroup 'DMLOG' asmdisk '/dev/asmdisk/dsc_log'
Used time: 58.841(ms).
##创建数据磁盘组
ASM>create diskgroup 'DMDATA' asmdisk '/dev/asmdisk/dsc_data1'
Used time: 49.021(ms).
##数据磁盘组添加磁盘
ASM>create diskgroup 'DMARCH' asmdisk '/dev/asmdisk/dsc_data2'
Used time: 47.480(ms).
ASM>
在节点 2查询共享磁盘确认是否创建成功
8.9 配置 dminit.ini文件(节点1、2均执行)
vi /dmdsc/dmdbms/dsc_config/dminit.ini
db_name = DMDSC #初始化数据库名称大写
system_path = +DMDATA #初始化数据库存放的路径
system = +DMDATA/DMDSC/system.dbf #SYSTEM 表空间路径
system_size = 1024 #SYSTEM 表空间大小
roll = +DMDATA/DMDSC/roll.dbf #ROLL 表空间路径
roll_size = 1024 #ROLL 表空间大小
main = +DMDATA/DMDSC/main.dbf #MAIN 表空间路径
main_size = 1024 #MAIN 表空间大小
ctl_path = +DMDATA/DMDSC/dm.ctl #DM.CTL 控制文件路径
ctl_size = 8 #DM.CTL 控制文件大小
log_size = 2048 #日志文件大小
dcr_path = /dev/asmdisk/dsc_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 #应用提供结尾是否空格填充
[DMDSC1] ##与dmdcr_cfg.ini配置文件中DB组中配置的节点名称保持一致
config_path = /dmdsc/dmdbms/dsc_config/DMDSC1 #路径要有创建权限
port_num = 5236
mal_host = 10.10.1.21 #dmdsc1心跳ip,节点 MAL 系统使用 IP
mal_port = 4234
LOG_PATH = +DMLOG/DMDSC1_01.log
LOG_PATH = +DMLOG/DMDSC1_02.log
[DMDSC2] ##与dmdcr_cfg.ini配置文件中DB组中配置的节点名称保持一致
config_path = /dmdsc/dmdbms/dsc_config/DMDSC2 #路径要有创建权限
port_num = 5236
mal_host = 10.10.1.22 #dmdsc2心跳ip
mal_port = 4234
LOG_PATH = +DMLOG/DMDSC2_01.log
LOG_PATH = +DMLOG/DMDSC2_02.log
8.9.1 初始化报错 --- 未指定密码
在节点 1执行初始化数据库命令
dminit control=/dmdsc/dmdbms/dsc_config/dminit.ini
执行报错,初始化需 指定sysdba 和 sysauditor 的密码
修改 /dmdsc/dmdbms/dsc_config/dminit.ini 文件添加密码设置
vi /dmdsc/dmdbms/dsc_config/dminit.ini
db_name = DMDSC #初始化数据库名称大写
system_path = +DMDATA #初始化数据库存放的路径
system = +DMDATA/DMDSC/system.dbf #SYSTEM 表空间路径
system_size = 1024 #SYSTEM 表空间大小
roll = +DMDATA/DMDSC/roll.dbf #ROLL 表空间路径
roll_size = 1024 #ROLL 表空间大小
main = +DMDATA/DMDSC/main.dbf #MAIN 表空间路径
main_size = 1024 #MAIN 表空间大小
ctl_path = +DMDATA/DMDSC/dm.ctl #DM.CTL 控制文件路径
ctl_size = 8 #DM.CTL 控制文件大小
log_size = 2048 #日志文件大小
dcr_path = /dev/asmdisk/dsc_dcr #dcr 磁盘路径
dcr_seqno = 0 #连接 DMASM 节点节点号
auto_overwrite = 1 #文件存在时的处理方式0或1
PAGE_SIZE = 32
EXTENT_SIZE = 32
SYSDBA_PWD=P@ssw0rd
SYSAUDITOR_PWD=P@ssw0rd
CHARSET =1 #应用提供字符集
CASE_SENSITIVE =1 #应用提供大小写是否敏感 未提供默认敏感
BLANK_PAD_MODE=0 #应用提供结尾是否空格填充
[DMDSC1] ##与dmdcr_cfg.ini配置文件中DB组中配置的节点名称保持一致
config_path = /dmdsc/dmdbms/dsc_config/DMDSC1 #路径要有创建权限
port_num = 5236
mal_host = 10.10.1.21 #dmdsc1心跳ip,节点 MAL 系统使用 IP
mal_port = 4234
LOG_PATH = +DMLOG/DMDSC1_01.log
LOG_PATH = +DMLOG/DMDSC1_02.log
[DMDSC2] ##与dmdcr_cfg.ini配置文件中DB组中配置的节点名称保持一致
config_path = /dmdsc/dmdbms/dsc_config/DMDSC2 #路径要有创建权限
port_num = 5236
mal_host = 10.10.1.22 #dmdsc2心跳ip
mal_port = 4234
LOG_PATH = +DMLOG/DMDSC2_01.log
LOG_PATH = +DMLOG/DMDSC2_02.log
8.9.2 初始化报错 --- 磁盘空间不足
修改完后再次执行初始化仍报错
提示创建 rlog文件失败,按照提示查看 /dmdsc/dmdbms/log/dm_DMDSC1_202512.log 日志
报错提示磁盘空间不足!
这下就麻烦了,初始创建的共享磁盘容量太小, 需要扩容共享磁盘组容量或者调整日志文件大小,这里就先以扩容共享磁盘作为解决方案
vmware-vdiskmanager -x 30GB “D:\Software\VMware\Virtual Machines\Share Disk\dcr.vmdk”
vmware-vdiskmanager -x 30GB “D:\Software\VMware\Virtual Machines\Share Disk\vote.vmdk”
vmware-vdiskmanager -x 50GB “D:\Software\VMware\Virtual Machines\Share Disk\log.vmdk”
vmware-vdiskmanager -x 100GB “D:\Software\VMware\Virtual Machines\Share Disk\datadisk1.vmdk”
vmware-vdiskmanager -x 50GB “D:\Software\VMware\Virtual Machines\Share Disk\datadisk2.vmdk”
重启双节点虚拟机,共享磁盘已扩容完成,但DMASM 磁盘还未重建生效
先把 /dmdsc/dmdbms/dsc_config/DMDSC1/dmdcr.ini 配置文件中自动拉起的内容注释
关闭自动拉起功能后再手动停止 ASM 、CSS 服务
注意需要在节点1和节点2都停止ASM 、 CSS 服务
进入DMASM 重新执行 DCR 和 VOTE 盘的初始化操作
通过 listdisks /dev/asmdisk 检查是否生效
然后再重新创建另外三个 LOG 、 ARCH 和 DATA 盘,无需初始化,后台会自动重建
8.9.3 初始化报错 ---启动顺序错误
再次执行数据库初始化扔报错,因为刚才手动关闭了 ASM 、 CSS 服务,需要手动开启,并且需要先开启 CSS 服务,然后再开启 ASM 服务,节点2同样执行此操作
8.9.4 初始化报错 - --ASM 磁盘未识别
初始化报错 '+DMDATA/DMDSC' 创建文件失败
通过 dmasmtool查看发现另外三块ASM 磁盘还没识别生效
通过dmasmtool工具进入ASM ,再次创建 DMASM 磁盘组
最后节点1初始化数据库成功
8.9.5 初始化报错 ---dcr_seqno值配置错误
但是节点 2初始化数据仍失败报错
DESC:Connect to dmasmsvr(10.10.1.21:8221) failed with code -7017, target dmasmsvr is nonlocal, please check if dcr path and dcr seqno configu
red right.
根据报错提示检查 dcr path and dcr seqno 配置,发现节点 2的 dminit.ini 配置文件中
dcr_seqno = 0 ,将其改为 dcr_seqno = 1 后重新执行初始化
节点2数据库初始化成功。
节点1和节点2都检查CSS 、ASM 、DSC 服务状态,手动开启 DSC 服务
8.10 配置 dmarch.ini 文件
节点 1:
创建并编辑 dm.ini文件
vi /dmdsc/dmdbms/dsc_config/DMDSC1/dm.ini
创建并编辑dmarch .ini 文件
vi /dmdsc/dmdbms/dsc_config/DMDSC1/dmarch.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/DMDSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_RESERVE_TIME= 4320 ##归档日志保留时间3天,单位分钟
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC2
ARCH_INCOMING_PATH = +DMARCH/DMDSC2/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32
节点 2:
创建并编辑 dm.ini文件
vi /dmdsc/dmdbms/dsc_config/DMDSC2/dm.ini
ARCH_WAIT_APPLY = 0
ARCH_LOCAL_SHARE = 1
ARCH_LOCAL_SHARE_CHECK = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMARCH/DMDSC2/arch
ARCH_FILE_SIZE = 2048
ARCH_RESERVE_TIME= 4320 ##归档日志保留时间3天,单位分钟
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32
[ARCHIVE_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DMDSC1
ARCH_INCOMING_PATH = +DMARCH/DMDSC1/arch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmarch
ARCH_FILE_SIZE = 2048
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 32
8.11 注册 CSS、ASM、DMSERVER 后台服务
节点 1 :
/dmdsc/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dmdsc/dmdbms/dsc_config/DMDSC1/dmdcr.ini -p CSS
/dmdsc/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dmdsc/dmdbms/dsc_config/DMDSC1/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
/dmdsc/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dmdsc/dmdbms/dsc_config/DMDSC1/dm.ini -dcr_ini /dmdsc/dmdbms/dsc_config/DMDSC1/dmdcr.ini -y DmASMSvrServiceASM.service -m open -p DSC
节点 2 :
/dmdsc/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dmdsc/dmdbms/dsc_config/DMDSC2/dmdcr.ini -p CSS
/dmdsc/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dmdsc/dmdbms/dsc_config/DMDSC2/dmdcr.ini -y DmCSSServiceCSS.service -p ASM
/dmdsc/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /dmdsc/dmdbms/dsc_config/DMDSC2/dm.ini -dcr_ini /dmdsc/dmdbms/dsc_config/DMDSC2/dmdcr.ini -y DmASMSvrServiceASM.service -m open -p DSC
将 dmdcr.ini 文件最后注释取消, 使其自动拉起生效
8.12 配置dmmal.ini文件(节点1、2均执行)
配置说明: 配置 dblink 通过 mal 进行通信, 需要配置各个节点的 dmmal 相互之间能够通讯, 对于集群之间,各个节点的 dmmal.ini 必须完全保持一致, 且各个节点 instance_name 不同。
#DaMeng Database Mail Configuration file
#this is comments
MAL_CHECK_INTERVAL = 5
MAL_COMBIN_BUF_SIZE = 0
MAL_CONN_FAIL_INTERVAL = 5
MAL_LOGIN_TIMEOUT = 10
MAL_BUF_SIZE = 100
MAL_SYS_BUF_SIZE = 0
MAL_VPOOL_SIZE = 128
MAL_COMPRESS_LEVEL = 0
MAL_TEMP_PATH =
[mal_inst0]
MAL_INST_NAME = DMDSC1 #dm.ini 中 instance_name 保持一致
MAL_HOST = 10.10.1.21
MAL_PORT = 4234
MAL_INST_HOST = 192.168.1.21
MAL_INST_PORT = 5236 #dm.ini 中 port_num 保持一致
MAL_DW_PORT = 52141
MAL_LINK_MAGIC = 0
MAL_INST_DW_PORT = 33141
[mal_inst1]
mal_inst_name = DMDSC2
mal_host = 10.10.1.22
mal_port = 4234
MAL_INST_HOST = 192.168.1.22
MAL_INST_PORT = 5236 #dm.ini 中 port_num 保持一致
MAL_DW_PORT = 52141
MAL_LINK_MAGIC = 0
MAL_INST_DW_PORT = 33141
8.13 配置监视器(节点 1、2均执行)
创建 dmcssm.ini 配置文件, 在第 3 台服务器部署,如果没有, 就在节点 1 和节点 2 都部署
8.12.1 启动DMCSSM失败报错 ---服务未启动
报错提示: Wait CSS Control Node choosed failed, if dmcss has startuped and ini configured correctly, please wait a little more before execute
command.
注册CSSM监控服务(节点1、2均执行)
/dmdsc/dmdbms/script/root/dm_service_installer.sh -t dmcssm -cssm_ini /dmdsc/dmdbms/bin/dmcssm.ini -p Monitor
手动开启CSSM 服务
systemctl disable DmCSSMonitorServiceMonitor
systemctl status DmCSSMonitorServiceMonitor
systemctl start DmCSSMonitorServiceMonitor
再次启动 DMCSSM仍报错
8.12.2 启动 DMCSSM 失败报错 ---dmcssm.ini 配置错误
编辑 /dmdsc/dmdbms/bin/dmcssm.ini 文件,
CSSM_OGUID = 20251210
CSSM_CSS_IP = 10.10.1.21:9220
CSSM_CSS_IP = 10.10.1.22:9220
#集群中所有 DMCSS 所在机器的 IP 地址,以及 DMCSS 的监听端口,配置格式为“IP:PORT”的形式,其中 IP 和 PORT 分别对应 DMDCR_CFG.INI 中 DMCSS 节点的 DCR_EP_HOST 和 DCR_EP_PORT。
CSSM_LOG_PATH = /dmdsc/cssm_log
#日志文件路径,日志文件命名方式为“dmcssm_年月日时分秒.log”,例如“dmcssm_20160614131123.log”。
CSSM_LOG_FILE_SIZE = 512
#单个日志文件大小,取值范围 16-2048,单位为 MB,缺省为 64MB。达到最大值后,会自动生成并切换到新的日志文件中。
CSSM_LOG_SPACE_LIMIT = 0
#日志总空间大小,取值 0 或者 256-4096,单位为 MB,缺省为 0,表示没有空间限制。如果达到设定的总空间限制,会自动删除创建时间最早的日志文件。
参照 DMDCR_CFG.INI 文件中配置的DCR_OGUID,DCR_EP_HOST和DCR_EP_PORT值对应修改dmcssm.ini文件
再次启动 D MCSSM 成功
执行help查看CSSM 可操作命令及注释
执行show命令查看
8.14 配置dm_svc.conf文件
登录 DMDSC 需配置dm_svc.conf文件,类似oracle的tnsnames.ora文件
TIME_ZONE=(480)
LANGUAGE=(cn)
DMDSC=(192.168.1.21:5236,192.168.1.22:5236)
[DMDSC]
SWITCH_TIMES = (60)
SWITCH_INTERVAL = (200)
8.15 登录数据库
执行 disql SYSDBA/P@ssw0rd@DMDSC 登录数据库
至此DMDSC 环境搭建完成。
文章
阅读量
获赞
