注册
DSC共享集群搭建
技术分享/ 文章详情 /

DSC共享集群搭建

mttt 2024/09/06 768 1 0

配置实例
./dminit path=/dmdata/data PORT_NUM=5236 INSTANCE_NAME=DM01
./dminit path=/dmdata/data PORT_NUM=5236 INSTANCE_NAME=DM02

一、磁盘准备

在本机创建4个共享磁盘:

vmware-vdiskmanager.exe -c -s 1G -a lslogic -t 2 "F:\iso\Sharedisk\sdc.vmdk"
vmware-vdiskmanager.exe -c -s 1G -a lslogic -t 2 "F:\iso\Sharedisk\sdd.vmdk"
vmware-vdiskmanager.exe -c -s 5G -a lslogic -t 2 "F:\iso\Sharedisk\sde.vmdk"
vmware-vdiskmanager.exe -c -s 5G -a lslogic -t 2 "F:\iso\Sharedisk\sdf.vmdk"

在两台机器添加共享磁盘:
编辑此虚拟机-----添加----硬盘-----使用现有虚拟磁盘----选择本机现有磁盘文件—并设置该硬盘高级选项独立永久

修改虚拟机的.vmx文件 盘号与机器显示一致
(生成源文件已包含present、mode、filename三个参数值,这里主要需要添加如下内容:)

scsi0:1.SharedBus = "Virtual"
scsi0:2.SharedBus = "Virtual"
scsi0:3.SharedBus = "Virtual"
scsi0:4.SharedBus = "Virtual"
disk.locking = "FALSE"
disk.EnableUUID = "TRUE"

lsblk查看磁盘是否正常
lsblk

二、共享存储准备

root用户下,两台机器都需要设置

149:
/usr/lib/udev/scsi_id -g -u /dev/sdb
sdb:36000c2935337af0a4e4f00f6809992e5
/usr/lib/udev/scsi_id -g -u /dev/sdc
sdc:36000c29f2f486a5039a4c34c26bad31a
/usr/lib/udev/scsi_id -g -u /dev/sdd    
sdd:36000c29b23fa5410439b3783df88707b
/usr/lib/udev/scsi_id -g -u /dev/sde
sde:36000c29321fb8cf633d8a7538154f361
152:
/usr/lib/udev/scsi_id -g -u /dev/sdb
sdb:36000c2935337af0a4e4f00f6809992e5
/usr/lib/udev/scsi_id -g -u /dev/sdc
sdc:36000c29f2f486a5039a4c34c26bad31a
/usr/lib/udev/scsi_id -g -u /dev/sdd    
sdd:36000c29b23fa5410439b3783df88707b
/usr/lib/udev/scsi_id -g -u /dev/sde
sde:36000c29321fb8cf633d8a7538154f361

创建磁盘链接:
root用户下 vi /etc/udev/rules.d/66-dmdevices.rules (每一个KERNEL是一行,中间不要有空行)

** DCR磁盘配置,且在软链接之前创建文件夹 /dev_DSC2
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2935337af0a4e4f00f6809992e5",SYMLINK+="DCR", OWNER="dmdba",
GROUP="dmgroup", MODE="660", RUN+="/bin/sh -c 'chown dmdba:dmgroup /dev/$name;mkdir -p /dev_DSC2; ln -s /dev/DCR /dev_DSC2/DCR'"
** VOTE 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29f2f486a5039a4c34c26bad31a",SYMLINK+="VOTE", OWNER="dmdba",
GROUP="dmgroup", MODE="660", RUN+="/bin/sh -c 'chown dmdba:dmgroup /dev/$name; ln -s /dev/VOTE /dev_DSC2/VOTE'"
** DMDATA 磁盘配置
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29b23fa5410439b3783df88707b",SYMLINK+="DMDATA", OWNER="dmdba",
GROUP="dmgroup", MODE="660", RUN+="/bin/sh -c 'chown dmdba:dmgroup /dev/$name; ln -s /dev/DMDATA /dev_DSC2/DMDATA'"
** DMLOG 磁盘配置,且在搭建完成之后,将权限直接赋予 dmdba组的dmdba用户
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29321fb8cf633d8a7538154f361",SYMLINK+="DMLOG", OWNER="dmdba",
GROUP="dmgroup", MODE="660", RUN+="/bin/sh -c 'chown dmdba:dmgroup /dev/$name; ln -s /dev/DMLOG /dev_DSC2/DMLOG ; chown -R dmdba:dmgroup /dev_DSC2'"

两台机器均执行完之后,两个都重启 systemd-udev-trigger服务

systemctl restart systemd-udev-trigger

搭建前查看磁盘权限信息:root用户

ls -lth /dev_DSC2/

三、配置相关ini文件

配置dmdcr_cfg.ini文件(两台机器都需要)

第一台机器:
*root下创建目录/home/dmdba/dmdbms/data/DSC01/   并授予权限
mkdir -p /home/dmdba/dmdbms/data/DSC01/
chown -R dmdba:dmgroup /home/dmdba/dmdbms/data/DSC01/
chmod -R 755 /home/dmdba/dmdbms/data/DSC01/
------------------------
第二台机器:
*root下创建目录/home/dmdba/dmdbms/data/DSC02/  并授予权限
mkdir -p /home/dmdba/dmdbms/data/DSC02/
chown -R dmdba:dmgroup /home/dmdba/dmdbms/data/DSC02/
chmod -R 755 /home/dmdba/dmdbms/data/DSC02/
------------------------
*dmdba下vi文件dmdcr_cfg.ini
vi /home/dmdba/dmdbms/data/DSC01/dmdcr_cfg.ini
vi /home/dmdba/dmdbms/data/DSC02/dmdcr_cfg.ini
DCR_N_GRP = 3                    #集群环境有多少个GROUP
DCR_VTD_PATH = /dev_DSC2/VOTE    #规划为vote磁盘
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               #CSS节点名
DCR_EP_HOST = 192.168.109.149    #心跳地址
DCR_EP_PORT = 9341               #CSS端口
[GRP_CSS]
DCR_EP_NAME = CSS1               #CSS节点名
DCR_EP_HOST = 192.168.109.152    #心跳地址
DCR_EP_PORT = 9343               #CSS端口
[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               #ASM节点名,和 dmasvrmal 的 MAL_INST_NAME 一致
DCR_EP_SHM_KEY = 93360           #共享内存标识
DCR_EP_SHM_SIZE = 20             #共享内存大小
DCR_EP_HOST = 192.168.109.149    #心跳地址
DCR_EP_PORT = 9349               #ASM 端口
DCR_EP_ASM_LOAD_PATH = /dev_DSC2
[GRP_ASM]
DCR_EP_NAME = ASM1               #ASM节点名,和 dmasvrmal 的 MAL_INST_NAME 一致
DCR_EP_SHM_KEY = 93361           #共享内存标识
DCR_EP_SHM_SIZE = 20             #共享内存大小
DCR_EP_HOST = 192.168.109.152    #心跳地址
DCR_EP_PORT = 9351               #ASM 端口
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 = 60          #磁盘心跳容错时间  单位:秒
[GRP_DSC]
DCR_EP_NAME = DSC01              #实例名
DCR_EP_SEQNO = 0                 #组内序号,不能重复
DCR_EP_PORT = 5236               #实例端口,和 dm.ini 的 PORT_NUM 一致
##DCR_CHECK_PORT = 9741          #DCR 检查端口
[GRP_DSC]
DCR_EP_NAME = DSC02              #实例名
DCR_EP_SEQNO = 1                 #组内序号,不能重复
DCR_EP_PORT = 5236               #实例端口,和 dm.ini 的 PORT_NUM 一致
##DCR_CHECK_PORT = 9742          #DCR 检查端口

初始化磁盘组

在149节点(第一个节点)上创建asmcmd.txt脚本文件(创建ASM磁盘) dmdba用户

vi /home/dmdba/dmdbms/bin/asmcmd.txt
------------------脚本内容-------------------
#asm script file
##创建一个分布式集群资源磁盘(Distributed Cluster Resource disk),挂载点为/dev/dm/asm-dmdcr,别名为dcr
create dcrdisk '/dev_DSC2/DCR' 'DCR'     
create votedisk '/dev_DSC2/VOTE' 'VOTE'
create asmdisk '/dev_DSC2/DMDATA' 'DMDATA'
create asmdisk '/dev_DSC2/DMLOG' 'DMLOG'
#初始化/dev_DSC2/DCR分布式集群资源磁盘,使用配置文件dmdcr_cfg.ini进行设置
init dcrdisk '/dev_DSC2/DCR' from '/home/dmdba/dmdbms/data/DSC01/dmdcr_cfg.ini'identified by 'SYSDBA'   
init votedisk '/dev_DSC2/VOTE' from '/home/dmdba/dmdbms/data/DSC01/dmdcr_cfg.ini'
-------------------end----------------------
执行该脚本:   在bin目录下
./dmasmcmd script_file=asmcmd.txt
-------------------end----------------------

创建dmasvrmal.ini文件(两机器都要做)

*两节点(149、152)文件内容一样
vi /home/dmdba/dmdbms/data/DSC01/dmasvrmal.ini
vi /home/dmdba/dmdbms/data/DSC02/dmasvrmal.ini
-----------文件内容---------------------------
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.109.149
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.109.152
MAL_PORT = 7237
----------------end---------------------------

两节点创建dmdcr.ini文件(149、152)

1:149节点
vi /home/dmdba/dmdbms/data/DSC01/dmdcr.ini
------------文件内容-------------------------
DMDCR_PATH = /dev_DSC2/DCR
DMDCR_MAL_PATH =/home/dmdba/dmdbms/data/DSC01/dmasvrmal.ini   #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#CSS 认定 ASM 故障重启的时间, 采用命令行方式启动   
DMDCR_ASM_RESTART_INTERVAL = 10           
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr  dcr_ini=/home/dmdba/dmdbms/data/DSC01/dmdcr.ini
#CSS 认定 DSC 故障重启的时间, 采用命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0   #先配置不自动拉起
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver   path=/home/dmdba/dmdbms/data/DSC01/DSC01_conf/dm.ini  dcr_ini=/home/dmdba/dmdbms/data/DSC01/dmdcr.ini
--------------end----------------------------

2:152节点
vi /home/dmdba/dmdbms/data/DSC02/dmdcr.ini
------------文件内容-------------------------
DMDCR_PATH = /dev_DSC2/DCR
DMDCR_MAL_PATH =/home/dmdba/dmdbms/data/DSC02/dmasvrmal.ini    #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#CSS 认定 ASM 故障重启的时间, 采用命令行方式启动 
DMDCR_ASM_RESTART_INTERVAL = 10
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr  dcr_ini=/home/dmdba/dmdbms/data/DSC02/dmdcr.ini
#CSS 认定 DSC 故障重启的时间, 采用命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0   #先配置不自动拉起
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver    path=/home/dmdba/dmdbms/data/DSC02/DSC02_conf/dm.ini  dcr_ini=/home/dmdba/dmdbms/data/DSC02/dmdcr.ini
--------------end----------------------------

149、152节点启动DMCSS、DMSAM服务程序

主节点149启动DMCSS

./dmcss dcr_ini=/home/dmdba/dmdbms/data/DSC01/dmdcr.ini

第二个节点152启动DMCSS

./dmcss dcr_ini=/home/dmdba/dmdbms/data/DSC02/dmdcr.ini

创建ASM磁盘组

dmdba用户 bin目录下 使用dmasmtool工具创建ASM磁盘组 在第一台机器上创建

#在第一个主节点上使用dmdba用户启动dmasmtool工具
./dmasmtool dcr_ini=/home/dmdba/dmdbms/data/DSC01/dmdcr.ini

#创建DATA磁盘组
CREATE DISKGROUP DMDATA asmdisk '/dev_DSC2/DMDATA' 
#创建LOG磁盘组 
CREATE DISKGROUP DMLOG asmdisk '/dev_DSC2/DMLOG'

在第一个主节点上编写配置文件dminit.ini文件
*第一个节点:

vi /home/dmdba/dmdbms/data/DSC01/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_DSC2/DCR
dcr_seqno = 0
auto_overwrite = 1
page_size = 16
[DSC01]    #inst_name 跟 dmdcr_cfg.ini 中 db 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/dmdbms/data/DSC01/DSC01_conf
port_num = 5236
mal_host = 192.168.109.149
mal_port = 9340
log_path = +DMLOG/log/dsc01_log1.log
log_path = +DMLOG/log/dsc01_log2.log
[DSC02]   #inst_name 跟 dmdcr_cfg.ini 中 db 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/dmdbms/data/DSC02/DSC02_conf
port_num = 5236
mal_host = 192.168.109.152
mal_port = 9341
log_path = +DMLOG/log/dsc02_log1.log
log_path = +DMLOG/log/dsc02_log2.log
------------------end------------------------------------
#初始化实例,在第一个节点上使用dmdba用户执行
./dminit control=/home/dmdba/dmdbms/data/DSC01/dminit.ini
#(dmdba用户执行)将在第一个节点中初始化生成的DSC02目录下的整个文件拷贝给第二个节点
scp -r /home/dmdba/dmdbms/data/DSC02/* dmdba@192.168.109.152:/home/dmdba/dmdbms/data/DSC02/

四、启动149、152的数据库服务器

./dmserver /home/dmdba/dmdbms/data/DSC01/DSC01_conf/dm.ini dcr_ini=/home/dmdba/dmdbms/data/DSC01/dmdcr.ini
./dmserver /home/dmdba/dmdbms/data/DSC02/DSC02_conf/dm.ini dcr_ini=/home/dmdba/dmdbms/data/DSC02/dmdcr.ini

五、验证集群状态

配置并启动DMCSSM的监视器:

vi /home/dmdba/dmdbms/bin/dmcssm.ini
###创建下面需要的日志目录:/home/dmdba/dmdbms/data/cssm_log
mkdir -p /home/dmdba/dmdbms/data/cssm_log
chown -R dmdba:dmgroup /home/dmdba/dmdbms/data/cssm_log
chmod -R 755 /home/dmdba/dmdbms/data/cssm_log
#和DMDCR_CFG.INI中的DCR_OGUID保持一致 
CSSM_OGUID = 63635
#配置所有CSS的连接信息, 
#与DMDCR_CFG.INI中CSS配置项的DCR_EP_HOST和DCR_EP_PORT保持一致
CSSM_CSS_IP = 192.168.109.149:9341 
CSSM_CSS_IP = 192.168.109.152:9343
CSSM_LOG_PATH = /home/dmdba/dmdbms/data/cssm_log
#监视器日志文件存放路径 
CSSM_LOG_FILE_SIZE = 32 
#每个日志文件最大32M 
CSSM_LOG_SPACE_LIMIT = 0 
#不限定日志文件总占用空间

启动集群监视器:

./dmcssm ini_path=/home/dmdba/dmdbms/bin/dmcssm.ini

show
image.png

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服