DSC介绍
DM 共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 DMDSC。 DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同一个数据库的数据。 DMDSC 集群主要由数据库和数据库实例、共享存储、DMASM 或 DMASM 镜像、本地存储、通信网络、集群控制软件 DMCSS、集群监视器 DMCSSM 组成。
DSC搭建
前置要求,需要一块共享磁盘作为存储介质,两个服务器都能访问到。
vmware环境添加共享磁盘
添加磁盘→scsi→创建新虚拟磁盘→→高级→设备节点1:1 添加→scsi→使用现有虚拟磁盘→选中回车→高级→设备节点1:1 修改两台虚拟机配置文件 scsi1:1.sharedBus = "virtual" 这个参数指示设备连接到一个虚拟的共享总线上。不设置两个机器有一定概率不同步硬盘状态 disk.locking = "false" 此参数不设置,虚拟机无法启动 disk.EnableUUID = "TRUE" EnableUUID参数打开,要不然/usr/lib/udev/scsi_id -g -u /dev/sdb命令结果会为空
磁盘划分分区
划分磁盘分区
#以下操作任意一台机器操作即可 fdisk /dev/sd.→n→p→+100M fdisk→n→p→+100M fdisk→n→p→+10240M #归档盘 fdisk→n→p→回车 w
裸设备绑定
# 以下操作两个机器都需要操作 编辑/etc/udev/rules.d/60-raw.rules 文件,设置裸设备绑定 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=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N" ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660" udevadm trigger --action=add #完成裸设备绑定 partprobe /dev/sdb #刷新分区 blockdev --getsize64 /dev/raw/raw1 #查看raw1裸设备大小 chown -R dmdba:dinstall /dev/raw/*
还可以使用多路径软件multi-path进行绑定
硬盘初始化
#以下操作任意一台机器操作即可 cd /opt/dmdbms/bin ./dmasmcmd create dcrdisk '/dev/raw/raw1' 'dcr' create votedisk '/dev/raw/raw2' 'vote' create asmdisk '/dev/raw/raw3' 'LOG0' create asmdisk '/dev/raw/raw4' 'DATA0' 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' exit
配置ini配置文件
设置一个路径:
mkdir /home/dmdba/config chown dmdba:dinstall /home/dmdba/config chmod 755 /home/dmdba/config
编辑dmdcr_cfg.ini配置文件 DMDCR_CFG.INI 是格式化非镜像环境下 DCR DISK、VOTE DISK 和镜像环境下 DCRV 磁盘的配置文件。 配置信息包括三类:集群环境全局信息、集群组信息、以及组内节点信息。
vi /home/dmdba/config/dmdcr_cfg.ini (两台均配置) cat << EOF > /home/dmdba/config/dmdcr_cfg.ini DCR_N_GRP = 3 ##group组数量 DCR_VTD_PATH = /dev/raw/raw2 ##voting disk路径 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.244.215 ##节点ip DCR_EP_PORT = 9341 ##节点tcp监听端口 [GRP_CSS] DCR_EP_NAME = CSS1 DCR_EP_HOST = 192.168.244.216 DCR_EP_PORT = 9343 [GRP] 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 = 20 ##共享内存大小 DCR_EP_HOST = 192.168.244.215 DCR_EP_PORT = 9349 DCR_EP_ASM_LOAD_PATH = /dev/raw ##asm磁盘扫描路径 [GRP_ASM] DCR_EP_NAME = ASM1 DCR_EP_SHM_KEY = 93361 DCR_EP_SHM_SIZE = 10 DCR_EP_HOST = 192.168.244.216 DCR_EP_PORT = 9351 DCR_EP_ASM_LOAD_PATH = /dev/raw [GRP] 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_EP_PORT = 5236 DCR_CHECK_PORT = 9741 [GRP_DSC] DCR_EP_NAME = DSC1 DCR_EP_SEQNO = 1 DCR_EP_PORT = 5236 DCR_CHECK_PORT = 9742 EOF
配置asm的mal配置文件dmasvrmal.ini DMASVRMAL.INI,是属于服务器之前通信使用的配置文件,属于MAL 配置文件
vi dmasvrmal.ini (两台均配置) cat << EOF > /home/dmdba/config/dmasvrmal.ini [MAL_INST1] MAL_INST_NAME = ASM0 MAL_HOST = 192.168.244.215 MAL_PORT = 7236 [MAL_INST2] MAL_INST_NAME = ASM1 MAL_HOST = 192.168.244.216 MAL_PORT = 7237 EOF vi dmdcr.ini (两台均配置)
配置dmdcr.ini DMDCR.INI 是 DMCSS、DMASMSVR、DMASMTOOL 等工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径。
#节点一配置内容 cat << EOF > /home/dmdba/config/dmdcr.ini DMDCR_PATH = /dev/raw/raw1 ##dcr磁盘路径 DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini #dmasmsvr 使用的MAL配置文件路径 DMDCR_ASM_TRACE_LEVEL=2 DMDCR_SEQNO = 0 ##当前节点序号 #ASM 重启参数,命令行方式启动,集群搭建完成后开启自动拉起 #DMDCR_ASM_RESTART_INTERVAL = 1 ##1自动拉起dmcss,0不会执行() #DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmASMSvrServiceDSC_0 start #DB 重启参数,命令行方式启动 #DMDCR_DB_RESTART_INTERVAL = 1 ##1自动拉起dmcss,0不会执行 #DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDSC_0 start ##标黄位置必须为一行 EOF #DMDCR_AUTO_OPEN_CHECK = 1 #节点二配置内容 cat << EOF > /home/dmdba/config/dmdcr.ini DMDCR_PATH = /dev/raw/raw1 DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径 DMDCR_ASM_TRACE_LEVEL=2 DMDCR_SEQNO = 1 #ASM 重启参数,命令行方式启动 #DMDCR_ASM_RESTART_INTERVAL = 1 #DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmASMSvrServiceDSC_1 start #DB 重启参数,命令行方式启动 #DMDCR_DB_RESTART_INTERVAL = 1 #DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServiceDSC_1 start #DMDCR_AUTO_OPEN_CHECK = 1 EOF
配置dminit.ini DMINIT.INI 是 DMINIT 工具初始化数据库环境的配置文件。与初始化库使用普通文件系统不同,使用 DMASM 文件系统,必须使用 DMINIT 工具的 control 参数指定 DMINIT.INI 文件。
vi dminit.ini (两台均配置) cat << EOF > /home/dmdba/config/dminit.ini db_name = DAMENG system_path = +DMDATA/data system = +DMDATA/data/DAMENG/system.dbf system_size = 128 roll = +DMDATA/data/DAMENG/roll.dbf roll_size = 128 main = +DMDATA/data/DAMENG/main.dbf main_size = 128 ctl_path = +DMDATA/data/DAMENG/dm.ctl ctl_size = 8 log_size = 256 #redo日志文件大小 dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备 dcr_seqno = 1 auto_overwrite = 1 PAGE_SIZE = 32 #页大小 EXTENT_SIZE = 32 #簇大小 CASE_SENSITIVE = 1 #大小写是否敏感 CHARSET = 1 #字符集 LENGTH_IN_CHAR = 1 #varchar以字节/字符为单位 BLANK_PAD_MODE = 0 #空格是否填充 [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.244.215 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.244.216 mal_port = 9342 log_path = +DMLOG/log/dsc1_log01.log log_path = +DMLOG/log/dsc1_log02.log EOF
配置dmcssm.ini文件 dmcssm.ini是监听器的配置文件,在任意一节点都可以。
vim dmcssm.ini cat << EOF > /home/dmdba/config/dmcssm.ini CSSM_OGUID = 63635 #配置所有 CSS 的连接信息, #和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致 CSSM_CSS_IP = 192.168.244.215:9341 CSSM_CSS_IP = 192.168.244.216:9343 CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径 CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间 EOF
初始化库
#以下操作任意一台机器操作即可 ./dmasmtool DCR_INI=/home/dmdba/config/dmdcr.ini #创建日志磁盘组 create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3' #创建数据磁盘组 create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4' #初始化库,一台执行即可 ./dminit control=/home/dmdba/config/dminit.ini
将dsc1_config远程复制到节点二上 scp -r /home/dmdba/config/dsc1_config dmdba@192.168.244.216:/home/dmdba/config/
启动服务
注册后台启动脚本
/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -p DSC_0 -dcr_ini /home/dmdba/config/dmdcr.ini -y DmCSSServiceDSC_0 /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -p DSC_0 -dcr_ini /home/dmdba/config/dmdcr.ini -y DmCSSServiceDSC_0 /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DSC_0 -dm_ini /home/dmdba/config/dsc0_config/dm.ini -dcr_ini /home/dmdba/config/dmdcr.ini -y DmASMSvrServiceDSC_0 /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmcss -p DSC_1 -dcr_ini /home/dmdba/config/dmdcr.ini -y DmCSSServiceDSC_1 /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmasmsvr -p DSC_1 -dcr_ini /home/dmdba/config/dmdcr.ini -y DmCSSServiceDSC_1 /home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DSC_1 -dm_ini /home/dmdba/config/dsc1_config/dm.ini -dcr_ini /home/dmdba/config/dmdcr.ini -y DmASMSvrServiceDSC_1
首次启动推荐前台启动:
节点一启动以下两个服务 —> 节点二启动 ./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini ./dmasmsvr DCR_INI=/home/dmdba/config/dmdcr.ini 节点一 ./dmserver /home/dmdba/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini 节点二 ./dmserver /home/dmdba/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
启动监视器 ./dmcssm INI_PATH=/home/dmdba/config/dmcssm.ini
启动顺序 0CSS-1CSS-0ASM-1ASM-0DB-1DB 停止顺序 1DB-0DB-1ASM-0ASN-1CSS-0CSS
附达梦社区地址:https://eco.dameng.com