达梦DM8环境DSC集群搭建

一、DM DSC集群简介

DM 共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 DMDSC。DMDSC 集群是一个多实例、单数据库的系统。多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。DMDSC 集群得以实现的重要基础就是共享存储。数据文件、控制文件在集群系统中只有一份,保存在共享存储中,不论有几个节点,这些节点都平等地使用这些文件。各个节点有自己独立的联机日志和归档日志。
DM DSC集群主要由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件 DMCSS 组成。结构如下图所示:

在这里插入图片描述
DM DSC系统结构图

二、搭建步骤

1、实验环境:

虚拟机软件:VirtualBox 6.1
数据库:DM8 64位,安装包名dm8_setup_rh7_64_ent_8.1.1.88.iso 
主机操作系统:CentOS Linux release 7.2.1511 (Core)64

2、创建共享磁盘
在VirtualBox中创建4块共享磁盘,用于存储vote文件、dcr文件、日志和数据文件。如下图所示:
在这里插入图片描述
创建成功后,将共享磁盘添加至集群实例所在虚拟机中。
在这里插入图片描述
这里需要注意的是添加共享磁盘时,各系统磁盘需要和SATE端口保持一致,否则挂载在系统中对应的盘符名称顺序可能会出现混乱,通过一个系统对磁盘进行格式化操作,另一个系统则不用再次格式化了。4块共享盘:
/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde在dsc0主机中具体信息如下:
在这里插入图片描述
dsc1主机中:
在这里插入图片描述
挂载顺序保持一致,减少配置时出错的可能性。
3、划分共享磁盘上的裸设备
在两个节点中分别编辑 /etc/udev/rules.d/60-raw.rules 文件,将以下内容添加至文件,完成裸设备绑定的配置。
在这里插入图片描述
执行命令udevadm trigger --action=add,完成裸设备绑定,再次查看确认:blockdev --getsize64 /dev/raw/raw1[1/2/3/4]
在这里插入图片描述
4、准备配置文件dmdcr_cfg.ini
在dsc0 主节点上配置dmdcr_cfg.ini。

[dmdba@dcs0 bin]$ cat /dm8/data/dmdcr_cfg.ini 
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw3
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 = 10.0.3.101
DCR_EP_PORT = 9341

[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 10.0.3.102
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 = 10.0.3.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 = 10.0.3.102
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_HOST=192.168.56.101
DCR_EP_PORT = 5236
DCR_VIP=192.168.56.121
DCR_CHECK_PORT = 9741

[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_HOST=192.168.56.102
DCR_EP_PORT = 5237
DCR_VIP=192.168.56.122
DCR_CHECK_PORT = 9742

上面的配置文件中,在具体操作过程中,出现了raw 权限出错,解决方法是赋予命令执行用户对/dev/raw及其它共享磁盘的读写权限。
同时出现端口号相同报错,DCR_EP_PORT/DCR_CHECK_PORT of EP:[DSC0] and EP:[DSC01] are same.[code: -802], 非法INI配置参数,解决方法则是将DCR_EP_PORT/DCR_CHECK_PORT设为不同值。
5、在DSC0上使用DMASMCMD工具初始化

/dm8/bin/dmasmcmd
create dcrdisk '/dev/raw/raw4' 'dcr'
create votedisk '/dev/raw/raw3' 'vote'
create asmdisk '/dev/raw/raw2' 'LOG0'
create asmdisk '/dev/raw/raw1' 'DATA0'
init dcrdisk '/dev/raw/raw4' from '/dm8/data/dmdcr_cfg.ini' identified by 'dmdba'
init votedisk '/dev/raw/raw3' from '/dm8/data/dmdcr_cfg.ini'

6、配置dmasvrmal.ini文件
使用dmdba用户,所有节点dmasvrmal.ini配置必须文件保持一致
vim /dm8/data/dmasvrmal.ini

[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 10.0.2.101
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 10.0.2.102
MAL_PORT = 7237

使用scp命令,将dmasvrmal.ini传至dsc1 节点
7、7.配置dmdcr.ini文件

vim /dm8/data/dmdcr.ini

DMDCR_PATH = /dev/raw/raw4
DMDCR_MAL_PATH =/dm8/data/dmasvrmal.ini 
DMDCR_SEQNO = 0

DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/dm8/data/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/data/dsc0_config/dm.ini dcr_ini=/dm8/data/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 表示为不会自动起库和asm服务,需要手动执行启动asm与server操作,这样配置方便在控制台查看节点输出信息,查看部署是否成功,稳定后可为自动启动服务。
在两个节点都需要配置该文件,DMDCR_SEQNO值根据节点确定。
8、启动dsc集群各节点
在两个节点分别先后启动dmcss、dmasm程序
手动启动dmcss服务

[root@dcs0 bin]# ./dmcss DCR_INI=/dm8/data/dmdcr.ini

在这里插入图片描述
手动启动dmasmsvr 服务

[root@dcs0 bin]# ./dmasmsvr DCR_INI=/dm8/data/dmdcr.ini

在这里插入图片描述
手动启动可以在控制台看到运行信息,如果设为后台服务或自动启动的话,则要在日志文件去查看相关运行信息。
9、使用dmasmtool工具创建DMASM磁盘组

./dmasmtool DCR_INI=/dm8/data/dmdcr.ini
#创建日志磁盘组
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw2'
#创建数据磁盘组
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw1'

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

vim /dm8/data/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/raw4

dcr_seqno = 0
auto_overwrite = 1

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

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

使用dmdba用户,在一个节点上初始化数据库。
./dminit control=/dm8/data/dminit.ini
dsc1_config文件夹是dsc1节点需要使用的配置文件,dminit执行时生成两个节点的配置文件,需要将dsc1_confid文件夹传输至dsc1 节点的 /dm8/data/ 目录下。
11、启动实例
在两个节点分别执行:

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

在这里插入图片描述

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

在这里插入图片描述
12、配置dmcssm.ini文件,部署集群监控服务

CSSM_OGUID = 63635 
CSSM_CSS_IP = 10.0.3.101:9341
CSSM_CSS_IP = 10.0.3.102.9343
CSSM_LOG_PATH = /dm8/data/dcssmon_log
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 1024

在这里插入图片描述

./dmcssm ini_path=/dm8/data/dmcssm.ini

[root@dcs1 bin]# ./dmcssm ini_path=/dm8/data/dmcssm.ini

[monitor]         2021-03-09 11:15:02: CSS MONITOR V8
[monitor]         2021-03-09 11:15:07: CSS MONITOR SYSTEM IS READY.

[monitor]         2021-03-09 11:15:07: Wait CSS Control Node choosed...
[monitor]         2021-03-09 11:15:09: Wait CSS Control Node choosed succeed.

show

monitor current time:2021-03-09 11:15:20, n_group:3
=================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 1] ========================================

[CSS0] global info:
[ASM0] auto restart = FALSE
[DSC0] auto restart = FALSE

[CSS1] global info:
[ASM1] auto restart = FALSE
[DSC1] auto restart = FALSE


ep:	css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
	2021-03-09 11:15:19    CSS0          0         9341    Normal Node  OPEN               WORKING      OK           TRUE         88382237          88388784        
	2021-03-09 11:15:19    CSS1          1         9343    Control Node OPEN               WORKING      OK           TRUE         88351526          88358187        

=================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:	css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
	2021-03-09 11:15:19    ASM0          0         9349    Control Node OPEN               WORKING      OK           TRUE         88386127          88392658        
	2021-03-09 11:15:19    ASM1          1         9351    Normal Node  OPEN               WORKING      OK           TRUE         88367882          88374485        

=================== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 0] ========================================

n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)

sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL

crash process over flag is TRUE
ep:	css_time               inst_name     seqno     port    mode         inst_status        vtd_status   is_ok        active       guid              ts              
	2021-03-09 11:15:19    DSC0          0         5236    Control Node OPEN               WORKING      OK           TRUE         128207835         128214315       
	2021-03-09 11:15:19    DSC1          1         5237    Normal Node  OPEN               WORKING      OK           TRUE         128201887         128208384       

==================================================================================================================

dmcssm工具用法如下:
在这里插入图片描述
13、状态查询
通过上面的步骤,DMDSC集群部署完毕,用户可以通过动态视图了解集群结构及运行状况,DM8共提供了35个动态视图用于DSC集群的维护管理。
在这里插入图片描述
在这里插入图片描述

三、DSC连接测试

当用户连接到 DM 共享存储集群时,实际上是连接到集群中的一个实例,用户的所有增 删改查操作都是由该实例完成的。但是如果该实例出现故障,那么用户连接会被转移到其他 正常实例。而这种转移对用户是透明的,用户的增删改查继续返回正确结果,感觉不到异常。 这种功能就是故障自动重连。
实现故障自动重连的前提条件是在配置 DM 共享存储集群的时候,必须配置连接服务名。
可以通过编辑 dm_svc.conf 文件,配置连接服务名。dm_svc.conf 配置文件在 DM 安装时生成,Windows 平台下位于%SystemRoot%\system32 目录,Linux 平台下位于 /etc 目录。

[root@localhost Desktop]# cat /etc/dm_svc.conf 
TIME_ZONE=(480)
LANGUAGE=(en)
dmdsc_svc=(192.168.56.101:5236,192.168.56.102:5237)
SWITCH_TIME=(3)
SWITCH_INTERVAL=(200)

连接到DSC集群,查看当前所连实例:
在这里插入图片描述
将DSC0 实例kill掉或将网卡关闭后,等待几秒后,再次执行这条语句,还在上图会话中执行。再次查询当前用户已经连接到的节点实例。
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值