DM8共享存储集群(DMDSC)搭建

目录

一、DSC概述

二、DSC搭建

1.环境准备

2.使用裸设备搭建2节点DMDSC

(1)添加共享磁盘

(2)划分共享磁盘上的裸设备

(3)绑定裸设备(两节点均需执行)

(4)配置dmdcr_cfg.ini文件(双节点)

(5)使用dmasmcmd初始化(单节点)

(6)配置dmasvrmal.ini文件(双节点)

(7)配置dmdcr.ini文件(双节点)

(8)启动DMCSS、DMASM服务程序(双节点)

(9)使用dmasmtool工具创建DMASM磁盘组(单节点)

(10)配置dminit.ini文件(单节点)

(11)使用dminit初始化DB环境(单节点)

(12)启动数据库服务(双节点)

 三、监控DMDSC

1.配置dmcssm.ini

2.启动dmcssm监视器

四、测试连接

五、常见问题及解决方法

1.报磁盘错误

2.报位置异常

3.报asm连接异常 

六、总结


一、DSC概述

    DMDSC 集群是一个多实例、单数据库的系统。 多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。 数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这些文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,其中联机日志保存在共享存储上,归档日志可以保存在本地存储上也可以保存在共享存储上。

DMDSC系统结构图

二、DSC搭建

1.环境准备

硬件环境
主机 : N 台, N DMDSC 节点的数量。用于部署数据库实例 dmserver DMCSS、 DMASMSVR。内存大小要求:至少 2GB
共享存储:两台机器可以同时访问到的,可以划分为裸设备或块设备的磁盘。
网卡:每台主机至少准备 2 块网卡。提供内部网络和外部网络服务。
软件环境
操作系统。 Linux Unix Windows 等。
达梦数据库软件。安装好 DM 数据库软件之后,将拥有配置和管理 DMDSC 所需的所有软件:dmserver dminit dmasmcmd dmasmsvr dmasmtool dmcss dmcssm等。这些软件位于安装目录/home/dmdba/dm/dmdbms/bin 中。配置文件位于目录: /dbdata/dmdata
实验环境说明
机器名IP 地址操作系统数据库版本备注
DSC01

192.168.13.138

Linux version 3.10.0-1160.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020DM8

外部服务IP:

192.168.13.138

内部通信IP:

192.168.122.1

DSC02

192.168.13.139

Linux version 3.10.0-1160.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020DM8

外部服务IP:

192.168.13.139

内部通信IP:

192.168.122.1

2.使用裸设备搭建2节点DMDSC

(1)添加共享磁盘

DSC01操作如下:

编辑虚拟机设置,添加新硬盘,虚拟磁盘类型选择SCSI并创建新虚拟磁盘存储为单个文件,保存在DSC共享磁盘路径下。保存设置并退出,可在初始界面看见添加的新硬盘。

 

DSC02操作与DSC01基本相同,但选择使用现有虚拟磁盘。选择现有磁盘文件,即DSC01新添加的共享磁盘。

两台机器添加磁盘完成后,在高级设置中勾选独立模式并保存。

最后修改两台虚拟机的vmx文件,添加disk.locking=”FALSE” 后共享磁盘配置成功。

(2)划分共享磁盘上的裸设备

1) 输入 fdisk /dev/sdb
2) 依次输入 n     p      1      回车    +100M      回车,完成第一块磁盘划分
3) 依次输入 n     p       2      回车    +100M      回车,完成第二块磁盘划分
4) 依次输入 n    p       3      回车    +2048M    回车,完成第三块磁盘划分
5) 依次输入 n     p     回车   回车       w        回车,完成第四块磁盘划分
以上步骤在一个节点操作即可。
6) 编辑 /etc/udev/rules.d/70-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"
*用户名和组名根据情况设置。

(3)绑定裸设备(两节点均需执行)

partprobe /dev/sdb

udevadm control --reload-rules

udevadm trigger --type=devices --action=change

查看裸设备:ll /dev/raw/*

查看裸设备大小:blockdev --getsize64 /dev/raw/raw[1/2/3/4]

(4)配置dmdcr_cfg.ini文件(双节点)

DCR_EP_HOST、DCR_EP_PORT根据自身情况进行修改。

DCR_N_GRP = 3 #磁盘内多少个组
DCR_VTD_PATH = /dev/raw/raw2 #表决磁盘路径
DCR_OGUID = 63635 #消息标识
[GRP] #组1 CSS
DCR_GRP_TYPE = CSS #组类型
DCR_GRP_NAME = GRP_CSS #组名
DCR_GRP_N_EP = 2 #组内节点个数N, 最大值16
DCR_GRP_DSKCHK_CNT = 60 #磁盘心跳时间默认60s
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.13.138#节点ip
DCR_EP_PORT = 9341 #节点监听端口号
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.13.139#节点ip
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 #共享内存大小,单位m 10-1024
DCR_EP_HOST = 192.168.13.138
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.13.139
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

(5)使用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 '/dbdata/dmdata/dmdcr_cfg.ini'identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/dbdata/dmdata/dmdcr_cfg.ini'

(6)配置dmasvrmal.ini文件(双节点)

MAL_HOST根据自身情况进行修改。

[MAL_INST1]
 MAL_INST_NAME = ASM0
 MAL_HOST = 192.168.13.138
 MAL_PORT = 7236
[MAL_INST2]
 MAL_INST_NAME = ASM1
 MAL_HOST = 192.168.13.139
 MAL_PORT = 7237

(7)配置dmdcr.ini文件(双节点)

DMDCR_MAL_PATH、DMDCR_ASM_STARTUP_CMD、DMDCR_DB_STARTUP_CMD、path、dcr_ini请根据自身情况修改。

节点一:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dbdata/dmdata/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmasmsvr dcr_ini=/dbdata/dmdata/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmserver path=/dbdata/dmdata/dsc0_config/dm.ini dcr_ini=/dbdata/dmdata/dmdcr.ini
节点二:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dbdata/dmdata/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmasmsvr dcr_ini=/dbdata/dmdata/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmserver path=/dbdata/dmdata/dsc1_config/dm.ini dcr_ini=/dbdata/dmdata/dmdcr.ini

(8)启动DMCSS、DMASM服务程序(双节点)

注意DCR_INI路径应与前面的配置文件相对应。

启动命令:
./dmcss DCR_INI=/dbdata/dmdata/dmdcr.ini
./dmasmsvr DCR_INI=/dbdata/dmdata/dmdcr.ini

(9)使用dmasmtool工具创建DMASM磁盘组(单节点)

注意DCR_INI路径应与前面的配置文件相对应。

启动 dmasmtool 工具。
 ./dmasmtool DCR_INI=/dbdata/dmdata/dmdcr.ini
输入下列语句创建 DMASM 磁盘组:
# 创建日志磁盘组
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
# 创建数据磁盘组
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

(10)配置dminit.ini文件(单节点)

注意config_path、port_num、mal_host应匹配配置文件。

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 = /dbdata/dmdata/dsc0_config
port_num = 5236
mal_host = 192.168.13.138
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 = /dbdata/dmdata/dsc1_config
port_num = 5236
mal_host = 192.168.13.139
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log

(11)使用dminit初始化DB环境(单节点)

注意dminit.ini路径。

./dminit control=/dbdata/dmdata/dminit.ini

在/dbdata/dmdata目录下会生成实例服务的配置文件,将dsc02节点的文件传输到节点2上:

scp -rp dsc1_config/ dmdba@192.168.13.139:/dbdata/dmdata

(12)启动数据库服务(双节点)

节点一:

./dmserver /dbdata/dmdata/dsc0_config/dm.ini dcr_ini=/dbdata/dmdata/dmdcr.ini

节点二:

./dmserver /dbdata/dmdata/dsc1_config/dm.ini dcr_ini=/dbdata/dmdata/dmdcr.ini

 三、监控DMDSC

1.配置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.13.138:9341
CSSM_CSS_IP = 192.168.13.139:9343
CSSM_LOG_PATH =/home/dmdba/dm/dmdbms/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

2.启动dmcssm监视器

./dmcssm  INI_PATH=/dbdata/dmdata/dmcssm.ini

重点观察CSS、ASM、DSC三组资源的sys_status、vtd_status、is_ok、active状态应为OPEN、WORKING、OK、TRUE则表示集群正常。 

若如上图所示即表示均已成功启动。 

四、测试连接

在节点一插入一条数据,测试在节点二是否能查询到结果。

五、常见问题及解决方

1.报磁盘错误

dmcss startup failed:[CODE:-13218],error info:Check dcr disk: [/dev/raw/raw1] version mismatched ,disk_version:(6xG) cur_version : (0x1003), please reinit dcr.

原因:共享磁盘设置错误。

解决办法:删除磁盘采用cmd方式建立共享磁盘或者使用dmasmcmd重新初始化共享磁盘。

2.报位置异常

dmcss startup failed:[CODE:-4546], error info:Invalid file path[/dev/raw/raw1]

原因:裸设备未成功绑定。

解决办法:重新划分后记得保存。

3.报asm连接异常 

asm和css都是启动的,登录asmtool工具报错[code:-11041] ASM连接异常

 解决方法:

(1)使用dmasmcmd重新创建裸设备

(2)查看日志、检查防火墙

六、总结

    DMDSC 是基于共享存储的数据库集群系统,包含多个数据库实例,因此,与单节点的达梦数据库不同,DMDSC 集群需要在节点间进行同步、协调,才能正常地启动、关闭。启动 DMDSC 集群之前,必须先启动集群同步服务 DMCSS,如果使用了 DMASM 文件系统,则DMASMSVR 服务也必须先启动。

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台达梦数据库产品体验站,DM8在线试玩,达梦数据库全系列产品免费下载,官方权威的快速上手文档和产品手册,最活跃的达梦技术社区,面向全行业ISV厂商免费的云适配服务。https://eco.dameng.com/

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
首先,需要安装Docker和Docker Compose。然后按照以下步骤操作: 1. 创建两个文件夹,分别为dm-master和dm-worker,用于存放主节点和从节点的配置文件。 2. 在dm-master文件夹中创建docker-compose.yml文件,并添加以下内容: ``` version: '3' services: dm-master: image: pingcap/dm:latest container_name: dm-master volumes: - ./dm-master:/etc/dm-master ports: - "8261:8261" - "8291:8291" command: dm-master -config /etc/dm-master/dm-master.toml ``` 3. 在dm-master文件夹中创建dm-master.toml配置文件,并添加以下内容: ``` [log.file] filename = "/var/log/dm-master.log" [log.level] value = "info" [server] addr = ":8261" advertise-addr = "master_ip:8261" data-dir = "/data/dm-master" name = "dm-master" [dumpling-worker] worker-addr = "worker_ip:8262" password = "password" [security] ssl-ca = "/etc/dm-master/ca.pem" ssl-cert = "/etc/dm-master/server-cert.pem" ssl-key = "/etc/dm-master/server-key.pem" ``` 注意将master_ip和worker_ip替换为实际的IP地址,并设置密码。 4. 在dm-worker文件夹中创建docker-compose.yml文件,并添加以下内容: ``` version: '3' services: dm-worker: image: pingcap/dm:latest container_name: dm-worker volumes: - ./dm-worker:/etc/dm-worker ports: - "8262:8262" command: dm-worker -config /etc/dm-worker/dm-worker.toml ``` 5. 在dm-worker文件夹中创建dm-worker.toml配置文件,并添加以下内容: ``` [log.file] filename = "/var/log/dm-worker.log" [log.level] value = "info" [server] addr = ":8262" advertise-addr = "worker_ip:8262" data-dir = "/data/dm-worker" name = "dm-worker" [worker] addr = ":8262" password = "password" [security] ssl-ca = "/etc/dm-worker/ca.pem" ssl-cert = "/etc/dm-worker/server-cert.pem" ssl-key = "/etc/dm-worker/server-key.pem" ``` 注意将worker_ip替换为实际的IP地址,并设置密码。 6. 在dm-master文件夹中创建ca.pem、server-cert.pem和server-key.pem证书文件,并将它们复制到dm-worker文件夹中。 7. 最后,在终端中进入dm-master文件夹,并执行以下命令启动主节点: ``` docker-compose up -d ``` 8. 在终端中进入dm-worker文件夹,并执行以下命令启动从节点: ``` docker-compose up -d ``` 现在,您已经成功地使用Docker搭建DM主备集群

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值