达梦DM8搭建DSC集群(详细版)

本文详细介绍DM8数据库DSC集群的搭建过程,包括共享磁盘的创建、配置文件的编辑、服务的启动与注册,以及数据库实例的初始化,旨在为数据库管理员提供全面的部署指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DM8搭建DSC集群
DM共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。
DMDSC的主要特点包括:
◼ 高可用性
只要集群中有一个活动节点,就能正常提供数据库服务。
◼ 高吞吐量
多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。
◼ 负载均衡
用户的连接请求被平均分配到集群中的各个节点,确保各个节点的负载大致平衡。
DM8中,新增加了监视器的功能,使用起来非常方便,功能也很人性化。但是需要注意的是,DSC中的监视器与DM实时主备或读写分离集群中的监视器不同,没有确认监视器与非确认监视器的说法,同一个DMDSC集群中,允许最多同时启动10个监视器,建议监视器放在独立的第三方机器上,避免由于节点间网络不稳定等原因导致监视器误判节点故障。
一、创建共享磁盘
测试操作系统为Red Hat Enterprise Linux Server release 6.4 (Santiago)
两台机器IP分别为192.168.56.128(主节点dsc1),192.168.56.129 dsc2
此次搭建DSC是测试环境,在虚拟机上需要新建共享磁盘。生产环境中可忽略
在两台虚拟机都关机的情况下设置
打开dsc1 设置
在这里插入图片描述

点击存储,右下角添加存储附件
在这里插入图片描述

添加虚拟硬盘,创建新的虚拟盘

在这里插入图片描述

分配20G
在这里插入图片描述
在这里插入图片描述

创建虚拟硬盘
在这里插入图片描述
在这里插入图片描述

在管理中选择虚拟机介质管理,在改盘下选择可共享
在这里插入图片描述

在这里插入图片描述

添加成功后,在dsc2节点选择设置,添加虚拟硬盘,选择现有的硬盘
在这里插入图片描述
在这里插入图片描述

至此已添加完成共享存储,启动两台虚拟机
使用命令 fdisk -l 可以查看共享磁盘信息,其中 /dev/sdb 没有使用,大小为21.5G

在这里插入图片描述
在这里插入图片描述

共享磁盘添加成功。

二、部署DSC集群
两台机器需关闭防火墙(永久关闭chkconfig iptables off)
2.1在共享磁盘上划分裸设备
使用fdisk /dev/sdb 命令进行分区操作
在这里插入图片描述

在dsc1节点划分
输入n出现以下界面
在这里插入图片描述

输入p进行添加主分区,然后选择1,其中First cylinder (1-2610, default 1): 代表起始柱面,缺省值从1开始,这里直接回车
在这里插入图片描述

然后输入 +100M ,回车,出现下图,这个分区就划分完成了
在这里插入图片描述

然后重复进行以上分区动作
注意在3分区时要+2048M
在这里插入图片描述

主分区只能分4个,所以最后一个不用输入4,直接回车进行默认的划分即可
在这里插入图片描述

最后输入w保存退出即可
在这里插入图片描述

在两台机器分别输入fdisk -l查看分区情况,两边同步
在这里插入图片描述
在这里插入图片描述

2.2绑定裸设备
编辑 /etc/udev/rules.d/60-raw.rules 文件,将以下内容添加至文件,两台节点均需操作

# vi /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="root", GROUP="root", MODE="660"

保存,退出

dsc1:
# partprobe /dev/sdb
#start_udev
dsc2:
# partprobe /dev/sdb
#start_udev

完成裸设备绑定后,进行检查两边是否同步,输出内容一致

raw -qa
blockdev --getsize64 /dev/raw/raw1、2、3、4

依次检查

2.3创建组/用户/配置文件目录/安装目录
以下操作两节点均需操作


dsc1:
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba





cd /home/
mkdir data
chown -R dmdba:dinstall data/


ll
cd /opt/
mkdir dmdbms
chown -R dmdba:dinstall dmdbms/
ll

2.4安装DM8
两节点均需安装数据库软件,但不进行实例初始化操作
步骤略

2.5配置文件dmdcr_cfg.ini
使用 dmdba用户,进行编辑配置文件
准备配置文件dmdcr_cfg.ini,保存在 /home/data/ 下,只需要在dsc1 主节点上配置,后续DMASMCMD工具执行 init 语句会使用到。
配置文件内容如下
需要根据实际环境修改IP配置为rac节点的IP,其他内容可以保持不变,参见红色部分说明。
注:不同节点服务器间对应的DCR_EP_PORT端口可以相同,但是两个服务器配的ASM的DCR_EP_SHM_KEY不能相同。

[root@gh1 bin]# su - dmdba
[dmdba@gh1 ~]$ cd /home/data
[dmdba@gh1 data]$ ll
total 0
[dmdba@gh1 data]$ ls
[dmdba@gh1 data]$ vi 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.189.94
DCR_EP_PORT = 9341

[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.189.95
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 = 10
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.56.128
DCR_EP_PORT = 9341

[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.56.129
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 = 10
DCR_EP_HOST = 192.168.56.128
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.56.129
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

2.6使用DMASMCMD工具进行初始化
注:只在一台机器上执行即可,此处dmdcr_cfg.ini配置文件在主节点dsc1上,所以执行初始化,也在主节点完成即可。
2.6.1为裸设备路径、裸设备映射路径进行授权
进行初始化之前对dmdba用户进行授权,不进行授权,执行初始化操作只能用 root用户进行,此操作后,使用dmdba用户进行初始化即可。
授权需要登录root用户
dsc1:

ll /dev/raw
ll /dev/sdb1
ll /dev/sdb2
ll /dev/sdb3
ll /dev/sdb4

可以看到现在所属用户与组均为 root

然后修改所属用户和组

chown -R dmdba:dinstall /dev/raw
chown -R dmdba:dinstall /dev/sdb1
chown -R dmdba:dinstall /dev/sdb2
chown -R dmdba:dinstall /dev/sdb3
chown -R dmdba:dinstall /dev/sdb4
ll /dev/raw
ll /dev/sdb1
ll /dev/sdb2
ll /dev/sdb3
ll /dev/sdb4

2.6.2执行初始化
这里只在dsc1节点上执行,使用dmdba用户
cd /opt/dmdbms/bin
./dmasmcmd
注:进入dmasmcmd工具后,将以下语句,一条一条执行,在不进行上一步授权操作,使用dmdba用户初始化会报错,权限不足,也可以使用root用户,后续将权限授给 dmdba用户dinstall组。

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/data/dmdcr_cfg.ini'identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/home/data/dmdcr_cfg.ini'

2.7配置dmasvrmal.ini文件
使用dmdba用户 。注:所有节点dmasvrmal.ini配置必须文件保持一致
cd /home/data/
vi dmasvrmal.ini
注:将以下内容添加至文件,保存退出。

[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.56.128
MAL_PORT = 7236
 
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.56.129
MAL_PORT = 7236

使用scp命令,将dmasvrmal.ini传至 rac1 节点

[dmdba@gh1 data]$ scp dmasvrmal.ini dmdba@192.168.56.129:/home/data

2.8配置dmdcr.ini文件
2.8.1主节点dsc1的dmdcr.ini
使用dmdba用户
cd /home/data/
vi dmdcr.ini
注:将以下内容添加至 dmdcr.ini文件中,标红部分是需要注意的地方或者与rac1节点不同配置之处,此处配置为不会自动拉起,需要手动执行启动asm与server操作,方便在控制台查看节点信息,部署成功后可配置为自动拉起,注册服务。

[dmdba@gh1 data]$ cd /home/data
[dmdba@gh1 data]$ vi dmdcr.ini

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/data/dmasvrmal.ini
DMDCR_SEQNO = 0 # dsc1 节点为1

DMDCR_ASM_RESTART_INTERVAL = 0  #

注:如果配置为 0,则不会执行自动拉起操作,默认
为 60s。

DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
 
DMDCR_DB_RESTART_INTERVAL = 0

#注:如果配置为 0,则不会执行自动拉起操作,默认>为 60s。
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini # dsc1 节点为1

2.8.2主节点dsc2的dmdcr.ini
使用dmdba用户

cd /home/data/
vi dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH = /home/data/dmasvrmal.ini
DMDCR_SEQNO = 1

DMDCR_ASM_RESTART_INTERVAL = 0  
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 0  
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/home/data/dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini 

2.9启动DMCSS和DMASM服务
2.9.1启动dsc1主节点
以下操作均在 dmdba用户下执行
手动启动css命令:

cd /opt/dmdbms/bin
./dmcss DCR_INI=/home/data/dmdcr.ini

CSS启动后新开窗口开启前台的ASM服务
手动启动asm命令:

./dmasmsvr DCR_INI=/home/data/dmdcr.ini

注:如果配置自动拉起功能,css在判定asm故障并超过配置时间后会执行拉起服务操作,所以配置自动拉起功能,则不必执行手动启动命令,可以在配置集群结束后,配置自动拉起功能。

2.9.2启动dsc2节点
以下操作均在 dmdba用户下执行
手动启动css命令:

cd /opt/dmdbms/bin
./dmcss DCR_INI=/home/data/dmdcr.ini

手动启动asm命令:

./dmasmsvr DCR_INI=/home/data/dmdcr.ini

控制台打印如下信息:
在这里插入图片描述

该节点启动后,主节点自动监控到
在这里插入图片描述

2.10使用dmasmtool工具创建DMASM磁盘组
使用 dmdba用户进行操作
***************上一步的四个服务的窗口不要关闭!!!!!!!!!!!!!
开启新窗口操作,选择一个节点进行创建ASM磁盘组,此处在dsc1主节点上进行创建磁盘组。

 su – dmdba
cd /opt/dmdbms/bin
./dmasmtool DCR_INI=/home/data/dmdcr.ini

注:进入工具后,分步执行如下语句:

create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'

注:创建日志磁盘组

create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

注:创建数据磁盘组

创建成功后可以在之前的两台主机ASM服务窗口中查看到信息
在这里插入图片描述
在这里插入图片描述

2.11配置dminit.ini文件
注:使用dmdba用户,只需要在一个节点上创建,此处选择在dsc1主节点中创建

cd /home/data/
vi 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_seqno = 0
auto_overwrite = 1

[DSC0]
config_path = /home/data/dsc0_config
port_num = 5236
mal_host = 192.168.56.128
mal_port = 9340
log_path = +DMLOG/dsc0_log01.log
log_path = +DMLOG/dsc0_log02.log

[DSC1]
config_path = /home/data/dsc1_config
port_num = 5237
mal_host = 192.168.56.129
mal_port = 9341
log_path = +DMLOG/dsc1_log01.log
log_path = +DMLOG/dsc1_log02.log

2.12dminit初始化数据库
注:需要使用dmdba用户,在一个节点上初始化数据库就可以,因为dminit.ini配置文件在dsc1主节点上,所以初始化数据库操作在此节点执行即可。

cd /opt/dmdbms/bin
./dminit control=/home/data/dminit.ini

可以看到创建数据库成功,进入 /home/data/ 目录后可以看到生成两个文件夹。

因为一直在主节点上进行初始化操作,dsc1_config文件夹是rac1节点需要使用的配置文件,所以需要将dsc1_confid文件夹传输至 rac1 节点的 /home/data/ 目录下。

[dmdba@gh1 data]$ scp -r dsc1_config/ dmdba@192.168.56.129:/home/data/

查看dsc2节点

su – dmdba
cd /home/data/
Ll

可以看到dsc1_config 文件已经上传至 dsc2 节点 /home/data/ 目录下,并且所属用户组、权限没有问题。

2.13启动实例
均使用dmdba用户进行操作:
dsc1:

./dmserver /home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini

dsc2:

./dmserver /home/data/dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini

若虚拟机配置不够高可能需多等待一会儿
查看信息
在这里插入图片描述

查看两节点的CSS和ASM服务窗口信息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

至此,DMDSC集群部署完毕,可以使用dmdba用户启动disql查看 v d s c e p i n f o 查 看 集 群 信 息 , 也 可 以 使 用 w i n d o w s 端 D M m a n a g e r 工 具 登 录 两 节 点 都 可 以 查 看 V dsc_ep_info 查看集群信息,也可以使用windows端DMmanager工具登录 两节点都可以查看 V dscepinfo使windowsDMmanagerVDSC_EP_INFO,查看DSC集群信息。
两节点均可以执行:
cd /opt/dmdbms/bin
./disql
执行下面sql,查看集群信息
select * from v$dsc_ep_info;
在这里插入图片描述

使用manager工具

在这里插入图片描述
在这里插入图片描述

节点2
在这里插入图片描述
在这里插入图片描述

两节点信息均一致,搭建成功

2.14注册服务,配置自动拉起服务
注册服务需要使用root用户
dsc1:

./dm_service_installer.sh -t dmserver -p DMSERVER0 -dm_ini /home/data/dsc0_config/dm.ini -dcr_ini /home/data/dmdcr.ini

./dm_service_installer.sh -t dmasmsvr -p DMASM0 -dcr_ini /home/data/dmdcr.ini

./dm_service_installer.sh -t dmcss -p DMCSS0 -dcr_ini /home/data/dmdcr.ini

dsc2:

./dm_service_installer.sh -t dmserver -p DMSERVER1 -dm_ini /home/data/dsc1_config/dm.ini -dcr_ini /home/data/dmdcr.ini

./dm_service_installer.sh -t dmasmsvr -p DMASM1 -dcr_ini /home/data/dmdcr.ini

./dm_service_installer.sh -t dmcss -p DMCSS1 -dcr_ini /home/data/dmdcr.ini

注:搭建成功后修改两节点配置文件dmdcr.ini,将 DMDCR_ASM_RESTART_INTERVAL 与 DMDCR_DB_RESTART_INTERVAL值修改为 不等于0 即可,css即可自动拉起asm与server服务,此处改为10,为超过设置的时间后,如果 DMASM 节点与DMDSC节点的 active 标记仍然为 FALSE,则 DMCSS 会执行自动拉起。
两节点都修改为10

 cd /home/data/
 vi dmdcr.ini
 cat dmdcr.ini

注:启停顺序等
service DmserviceDM start
注册数据库服务方示例,具体根据实际情况而定:
注册CSS服务:./dm_service_installer.sh –t dmcss –p DSC0 –i /home/data/dmdcr.ini
注册ASM服务:./dm_service_installer.sh –t dmasmsvr –p DSC0 –dsc_ini /home/data/dmdcr.ini –y css服务名
注册dmserver服务:./dm_service_installer.sh –t dmserver –p DSC0 –dm_ini /home/data/dsc0_config/dm.ini –dcs_ini /home/data/dmdcr.ini –y asm服务名

(服务名分别为DmServiceDMSERVER0、DmASMSvrServiceDMASM0、DmCSSServiceDMCSS0。2节点均为1)

DMDSC启动、关闭流程
启动顺序:DMCSS—>DMASMSVR—>DMSERVICE
关闭顺序:DMSERVICE—>DMASMSVR—>DMCSS。

启动:
DMDSC是基于共享存储的数据库集群系统,包含多个数据库实例,因此,与单节点的达梦数据库不同,DMDSC集群需要在节点间进行同步、协调,才能正常地启动、关闭。启动DMDSC集群之前,必须先启动集群同步服务DMCSS,如果使用了DMASM文件系统,则DMASMSVR服务也必须先启动。
启动流程简单总结一下就是先启动DMCSS,然后启动DMASMSVR(如果有的话),最后启动DMSERVER
如果DMCSS配置了DMASMSVR/dmserver自动拉起命令,此时可以先仅启动DMCSS,然后启动监视器DMCSSM,在DMCSSM控制台执行命令"ep startup asm"启动DMASMSVR集群,执行"ep startup dsc"启动dmserver集群(其中asm/dsc为dmasmsvr/dmserver集群的组名)。
停止:
如果DMCSS配置了DMASMSVR/dmserver自动拉起命令,那么手动停止DMSERVER和DMASMSVR时会被拉起来,因此可能导致停止服务执行成功,但是集群并未停止的情况。此时就显示出监视器的好处。
此时可以在监视器中执行“ep stop 集群组名”命令的方式停止ASMSVR服务或者dmserver服务,在使用监视器停止服务时,监视器会关闭相关的自动拉起命令,因此,可以确保集群的正确停止,在停止DMASMSVR/dmserver服务后,再手动停止DMCSS服务即可。需要注意的是,如果不停止DMCSS服务,再次启动集群的话,自动拉起是不会生效的,当然,也可以通过在监视器中执行“set group_name auto restart on/off ”打开/关闭指定组的自动拉起功能,此命令只修改dmcss内存值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值