DSC集群部署
DM 数据共享集群又称为 DM 共享存储集群,英文全称 DM Data Shared Cluster,简称 DMDSC。
DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。
部署规划
以常用的2节点DSC集群为例
IP规划:
主机名 | 服务ip | 心跳ip | 数据库名 | 实例名 |
---|---|---|---|---|
dm01 | 192.168.10.101 | 192.168.10.101 | DSC | DSC1 |
dm02 | 192.168.10.102 | 192.168.10.102 | DSC | DSC2 |
端口规划:
实例名 | 实例端口 | MAL系统端口 | CSS端口 | ASM端口 | ASM的MAL端口 | DCR检查实例端口 |
---|---|---|---|---|---|---|
DSC1 | 5236 | 9236 | 9341 | 9351 | 7236 | 9741 |
DSC2 | 5236 | 9236 | 9341 | 9351 | 7236 | 9741 |
共享存储规划:
磁盘组 大小
DCR 1G
VOTE 1G
LOG 5G
DATA 18G
ARCH 5G
目录规划:(在对应服务器上创建目录owner为dmdba组为dinstall)
数据库软件安装目录 /home/dmdba/dmdbms
DSC配置文件目录 /home/dmdba/config
备份文件存放目录 /dmdata/dmbak/
DSC1本地归档目录 +DMARCH/dsc1
DSC1远程归档目录 +DMARCH/dsc2
DSC2本地归档目录 +DMARCH/dsc2
DSC2远程归档目录 +DMARCH/dsc1
操作系统配置
该步骤与单机部署一致,详情见 达梦数据库单机部署步骤
数据库软件安装
该步骤与单机部署一致,详情见 达梦数据库单机部署步骤
DSC集群部署配置
本地环境创建共享存储
这里我以windows+虚拟机环境为例
在cmd界面用命令手动创建共享磁盘
.\vmware-vdiskmanager.exe -c -s 40G -a lsilogic -t 2 "D:\DMshare\SHARE.vmdk"
虚拟机添加共享磁盘(虚拟机处于关机状态操作)
dsc01
找到虚拟机文件,编辑文件追加两行参数
disk.locking="FALSE"
Scsi1:1.SharedBus="Virtual"
dsc02步骤按上述步骤添加硬盘即可
检查两台虚拟机磁盘配置情况
磁盘分区(一台机器配置即可,配置完成后另外一台重启)
示例如下:
[root@dsc01 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
命令(输入 m 获取帮助):n
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB
编辑磁盘配置文件/etc/udev/rules.d/99-dm-asmdevices.rules(2台机器均需配置)
修改文件内容如下:
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=="sdb5", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="sdb6", RUN+="/bin/raw /dev/raw/raw5 %N"
ACTION=="add",KERNEL=="raw[1-5]", OWNER="dmdba", GROUP="dinstall", MODE="660"
执行命令,绑定裸设备(2台机器均需配置)
partprobe /dev/sdb
udevadm control --reload-rules
udevadm trigger --type=devices --action=change
查看裸设备大小
配置dmdcr_cfg.ini文件(双节点)
创建配置文件存放目录,2 个节点都要执行,使用 dmdba 用户,执行以下命令:
mkdir -p /home/dmdba/config
新建 dmdcr_cfg.ini 文件,添加文件内容如下:
vi /home/dmdba/config/dmdcr_cfg.ini
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.10.101
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.10.102
DCR_EP_PORT = 9343
[GRP] #组2 ASM
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
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.10.101
DCR_EP_PORT = 9349
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.102
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP] #组3 DB
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
DCR_EP_SEQNO = 0
DCR_CHECK_PORT = 9741
DCR_EP_PORT = 5236
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_CHECK_PORT = 9742
DCR_EP_PORT = 5236
dmasmcmd初始化(单节点)
cd /home/dmdba/dmdbms/bin
./dmasmcmd
create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'LOG'
create asmdisk '/dev/raw/raw4' 'DATA'
create asmdisk '/dev/raw/raw5' 'ARCH'
init dcrdisk '/dev/raw/raw1' from '/home/dmdba/config/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/home/dmdba/config/dmdcr_cfg.ini'
配置dmasvrmal.ini文件(双节点)
添加 /home/dmdba/config/dmasvrmal.ini 文件内容如下:
[MAL_INST1]MAL_INST_NAME = ASM0MAL_HOST = 192.168.10.101MAL_PORT = 7236
[MAL_INST2]MAL_INST_NAME = ASM1MAL_HOST = 192.168.10.102MAL_PORT = 7237
配置dmdcr.ini文件(双节点)
dsc01:
添加 /home/dmdba/config/dmdcr.ini 文件内容如下:
DMDCR_PATH=/dev/raw/raw1
DMDCR_MAL_PATH=/home/dmdba/config/dmasvrmal.ini
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD=/home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD=/home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
dsc02:
添加 /home/dmdba/config/dmdcr.ini 文件内容如下:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD=/home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
启动DMCSS、DMASM服务程序(双节点)
cd /home/dmdba/dmdbms/bin/service_template/
cp DmCSSService dmcssserverd
vi dmcssserverd
##修改以下内容
DCR_INI_PATH=/home/dmdba/config/dmdcr.ini
cp dmcssserverd …/
cp DmASMSvrService dmasmserverd
vi dmasmserverd
##修改以下内容
DCR_INI_PATH=/home/dmdba/config/dmdcr.ini
cp dmasmserverd …/
cd /home/dmdba/dmdbms/bin/
./dmcssserverd start
./dmasmserverd start
使用dmasmtool工具创建DMASM磁盘组(单节点)
cd /home/dmdba/dmdbms/bin/
./dmasmtool DCR_INI=/home/dmdba/config/dmdcr.ini
#创建日志磁盘组
create diskgroup ‘DMLOG’ asmdisk ‘/dev/raw/raw3’
#创建数据磁盘组
create diskgroup ‘DMDATA’ asmdisk ‘/dev/raw/raw4’
#创建归档磁盘组
create diskgroup ‘DMARCH’ asmdisk ‘/dev/raw/raw5’
exit
配置dminit.ini文件(单节点)
添加 /home/dmdba/config/dminit.ini 文件内容如下:
db_name = dsc
system_path = +DMDATA/data
system = +DMDATA/data/dsc/system.dbf
system_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
main = +DMDATA/data/dsc/main.dbf
main_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc0_config
port_num = 5236
mal_host = 192.168.10.101
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc1_config
port_num = 5236
mal_host = 192.168.10.102
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
使用dminit初始化DB环境(单节点)
cd /home/dmdba/dmdbms/bin/
./dminit control=/home/dmdba/config/dminit.ini
cd /home/dmdba/config/
scp -rp dsc1_config/ dmdba@192.168.10.102:/home/dmdba/config/
添加归档配置文件(双节点)
dsc01
修改 /home/dmdba/config/dsc0_config/dm.ini 文件内容如下:
ARCH_INI=1
添加 /home/dmdba/config/dmarch.ini 文件内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE=LOCAL
ARCH_DEST=+DMARCH/ARCH_DSC1
ARCH_FILE_SIZE=2048
ARCH_SPACE_LIMIT=20480
[ARCHIVE_REMOTE1]
ARCH_TYPE=REMOTE
ARCH_DEST=DSC2
ARCH_INCOMING_PATH=+DMARCH/ARCH_DSC2
ARCH_FILE_SIZE=2048
ARCH_SPACE_LIMIT=20480
ARCH_LOCAL_SHARE=1
dsc02
修改 /home/dmdba/config/dsc1_config/dm.ini文件内容如下:
ARCH_INI=1
添加 /home/dmdba/config/dmarch.ini 文件内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE=LOCAL
ARCH_DEST=+DMARCH/ARCH_DSC2
ARCH_FILE_SIZE=2048
ARCH_SPACE_LIMIT=20480
[ARCHIVE_REMOTE1]
ARCH_TYPE=REMOTE
ARCH_DEST=DSC1
ARCH_INCOMING_PATH=+DMARCH/ARCH_DSC1
ARCH_FILE_SIZE=2048
ARCH_SPACE_LIMIT=20480
ARCH_LOCAL_SHARE=1
启动数据库服务(双节点)
dsc01
cd /home/dmdba/dmdbms/bin/service_template/
cp DmService dmserverd
vi dmserverd
##修改以下内容
INI_PATH=/home/dmdba/config/dsc0_config/dm.ini
DCR_INI_PATH=/home/dmdba/config/dmdcr.ini
cp dmserverd …/
cd /home/dmdba/dmdbms/bin/
./dmserverd start
dsc02
cd /home/dmdba/dmdbms/bin/service_template/
cp DmService dmserverd
vi dmserverd
##修改以下内容
INI_PATH=/home/dmdba/config/dsc1_config/dm.ini
DCR_INI_PATH=/home/dmdba/config/dmdcr.ini
cp dmserverd …/
cd /home/dmdba/dmdbms/bin/
./dmserverd start
监控DMDSC
配置dmcssm.ini(单节点)
添加 /home/dmdba/config/dmcssm.ini 文件内容如下:
#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.10.101:9341
CSSM_CSS_IP = 192.168.10.102:9343
CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
启动dmcssm监视器
cd /home/dmdba/dmdbms/bin/
./dmcssm INI_PATH=/home/dmdba/config/dmcssm.ini
show
dmcssm命令说明
命令名称 | 含义 |
---|---|
help | 显示帮助信息 |
show [group_name] | 显示指定的组信息,如果没有指定 group_name,则显示所有组信息 |
show config | 显示 dmdcr_cfg.ini 的配置信息 |
show monitor | 显示当前连接到主 CSS 的所有监视器信息 |
set group_name auto restart on | 打开指定组的自动拉起功能(只修改 dmcss 内存值) |
set group_name auto restart off | 关闭指定组的自动拉起功能(只修改 dmcss 内存值) |
open force group_name | 强制 open 指定的 ASM 或 DB 组 |
ep startup group_name | 启动指定的 ASM 或 DB 组 |
ep stop group_name | 退出指定的 ASM 或 DB 组 |
ep halt group_name.ep_name | 强制退出指定组中的指定节点 |
extend node | 联机扩展节点 |
ep crash group_name.ep_name | 手动指定节点故障 |
check crash over group_name | 检查指定组故障处理是否真正结束 |
exit | 退出监视器 |
到此就完成了达梦数据库DSC集群的部署。
更多详细资料可前往达梦社区:https://eco.dameng.com