架构说明

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

1. 创建共享磁盘

测试操作系统为:centos7.8
两台机器IP分别为192.168.107.101(主节点dsc1),192.168.107.102 (dsc2)
此次搭建DSC是测试环境,在虚拟机上需要新建共享磁盘。生产环境中可忽略
在两台虚拟机都关机的情况下设置

1.1 第一台(主节点dsc1)

选择添加虚拟磁盘类型SCSI(推荐),下一步

选择创建新虚拟机磁盘,下一步

分配20G磁盘大小

1.2 第二台(副节点dsc2)

选择添加虚拟磁盘类型SCSI(推荐),下一步

选择使用现有虚拟硬盘,下一步

浏览选择现有磁盘,点击完成

至此已添加完成共享存储,启动两台虚拟机

1.3 使用fdisk -l命令查看共享磁盘(root用户下)

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

共享磁盘添加成功

2. 部署DSC集群

两台机器需关闭防火墙

2.1 在节点DSC0上划分共享磁盘上的裸设备

  • 输入fdisk /dev/sdb命令进行分区操作
  • 依次输入n p 1 回车 +200M 回车,完成第一块磁盘划分。

依次输入n p 2 回车 +200M 回车,完成第二块磁盘划分。

依次输入n p 3 回车 +4096M 回车,完成第三块块磁盘划分。

最后输入w,保存退出即可

两台机器分别输入fdisk -l查看分区情况,两边同步即可

2.2 绑定裸设备

编辑 /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"

两个节点分别执行命令,通知已经划分了分区

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

在节点dsc0上执行命令,完成裸设备绑定

udevadm trigger --action=add

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

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

依次检查

2.3安装DM8

两节点均需安装数据库软件,但不进行实例初始化操作
步骤可参考我之前的文章 达梦数据库(DM8) Linux安装教程

2.4 在节点dsc0上准备dmdcr_cfg.ini配置文件

准备配置文件dmdcr_cfg.ini,保存在/home/dmdba/dmdbms/data/下,只需要在dsc0 主节点上配置,后续DMASMCMD工具执行 init 语句会使用到。

配置文件内容如下

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.138.198
DCR_EP_PORT = 9341[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.138.120
DCR_EP_PORT= 9345[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.138.198
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93362
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.138.120
DCR_EP_PORT = 9353
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 = DSC2
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9743

2.5 使用DMASMCMD工具进行初始化

注:只在一台机器上执行即可,此处dmdcr_cfg.ini配置文件在主节点dsc0上,所以执行初始化,也在主节点完成即可。

2.6 授权

进行初始化之前对dmdba用户进行授权,不进行授权,执行初始化操作只能用 root用户进行,此操作后,使用dmdba用户进行初始化即可。
dsc0:

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.7 执行初始化

注:只在一台机器上执行即可,此处dmdcr_cfg.ini配置文件在主节点DSC0上,所以执行初始化,也在主节点完成即可。因为前面已经执行了授权所以在dmdba上面执行即可
在bin目录下执行:
cd /home/dmdba/dmdbms/bin
./dmasmcmd

ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
ASM>create votedisk '/dev/raw/raw2' 'vote'
ASM>create asmdisk '/dev/raw/raw3' 'LOG0'
ASM>create asmdisk '/dev/raw/raw4' 'DATA0'
ASM>init dcrdisk '/dev/raw/raw1' from '/home/dmdba/dmdbms/data/dmdcr_cfg.ini' identified by 'abcd'
ASM>init votedisk '/dev/raw/raw2' from '/home/dmdba/dmdbms/data/dmdcr_cfg.ini'

2.8 配置dmasvrmal.ini文件

使用 DMASM 的所有节点都要配置(dmdba用户下配置),内容完全一样,保存到/home/dmdba/dmdbms/data, 目录下
注:将以下内容添加至文件,保存退出。

[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.138.198
MAL_PORT = 7236[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.138.120
MAL_PORT = 7238

2.9 配置dmdcr.ini文件

在dmdba用户下的/home/dmdba/dmdbms/data目录下配置dmdcr.ini,其中dmdcr_path相同,dmasvrmal.ini文件内容也相同,dmdcr_seqo分别为0和1

2.9.1 主节点dsc0(192.168.138.198)的dmdcr.ini

使用dmdba用户
cd /home/data/
vi dmdcr.ini
将以下内容添加至 dmdcr.ini文件中

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

2.9.2 节点dsc1(192.168.138.120)的dmdcr.ini

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

2.10 启动DMCSS和DMASM服务

在两个节点分别先后启动dmcss、dmasm程序

2.10.1 启动dsc0主节点

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

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

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

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

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

2.10.2 启动dsc1节点

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

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

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

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

控制台打印信息如下:

该节点启动后,主节点自动监控到

2.11 在DSC0上使用dmasmtool工具创建DMASM磁盘组

使用 dmdba用户进行操作
开启新窗口操作,选择一个节点进行创建ASM磁盘组,此处在dsc0主节点上进行创建磁盘组。

./dmasmtool DCR_INI=/home/dmdba/dmdbms/data/dmdcr.ini

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

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

创建日志磁盘组

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

如下所示:

2.12 配置dminit.ini文件

使用dmdba用户,保存到节点DSC0的/home/dmdba/dmdbms/data目录

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]
config_path = /home/dmdba/dmdbms/data/dsc0_config
port_num = 5236
mal_host = 192.168.138.198
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log[DSC1]
config_path = /home/dmdba/dmdbms/data/dsc2_config
port_num = 5236
mal_host = 192.168.138.120
mal_port = 9342
log_path = +DMLOG/log/dsc2_log01.log
log_path = +DMLOG/log/dsc2_log02.log

2.13 给/home/dmdba/dmdbms/data赋权

Chown –R dmdba:dinstall /home/dmdba/dmdbms/data

2.14 启动实例

dsc0:

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

dsc1:

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

查看信息:

启动完成

3. 测试集群

使用manager工具,输入查询语句:

select * from v$dsc_ep_info;

信息如下:

可以看到DSC0是控制节点,DSC1是Normal节点。

在DSC0节点创建表格:

create table users(uname varchar(20),age int
);

插入数据:

insert into users values('hyf',23);
commit;

在DSC1中查询

select * from users;

结果如下:

查询结果成功!至此确定DSC集群搭建成功。

4. 注册服务,配置自动拉起服务

注册服务需要使用root用户

dsc0:

//注册DMCSS服务
./dm_service_installer.sh -t dmcss -p DMCSS0 -dcr_ini /home/dmdba/dmdbms/data/dmdcr.ini//注册DMAMS服务
./dm_service_installer.sh -t dmasmsvr -p DMASM0 -dcr_ini /home/dmdba/dmdbms/data/dmdcr.ini -y DmCSSServiceDMCSS0//注册实例服务
./dm_service_installer.sh -t dmserver -p DSC0 -dm_ini /home/dmdba/dmdbms/data/dsc0_config/dm.ini -dcr_ini /home/dmdba/dmdbms/data/dmdcr.ini -y DmASMSvrServiceDMASM0.service

dsc1:

//注册DMCSS服务
./dm_service_installer.sh -t dmcss -p DMCSS1 -dcr_ini /home/dmdba/dmdbms/data/dmdcr.ini//注册DMAMS服务
./dm_service_installer.sh -t dmasmsvr -p DMASM1 -dcr_ini /home/dmdba/dmdbms/data/dmdcr.ini -y DmCSSServiceDMCSS1//注册实例服务
./dm_service_installer.sh -t dmserver -p DSC1 -dm_ini /home/dmdba/dmdbms/data/dsc1_config/dm.ini -dcr_ini /home/dmdba/dmdbms/data/dmdcr.ini -y DmASMSvrServiceDMASM1.service

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

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内存值。

注:在注册DMASM服务时候,会提示/usr/lib/systemd/system/DmCSSServiceDmCSS1不存在,解决办法如下:

cp -p /home/dmdba/dmdbms/bin/DmCSSServiceDmCss1 /usr/lib/systemd/system/

达梦技术社区地址:https://eco.dameng.com

达梦DM8搭建DSC集群相关推荐

  1. 达梦DM8搭建DSC过程以及遇到的问题

    达梦DM8搭建DSC过程以及遇到的问题 DMDSC 是什么? DM DSC是一个单数据库.多实例的集群系统:具有高可用性.高性能.负载均衡等特性 DMDSC架构 DMDSC 组件: 集群主要由数据库和 ...

  2. 达梦单机到DSC集群DMHS部署

            达梦数据实时同步软件 DMHS 是达梦公司推出的新一代支持异构环境的高性能.高可靠和高可扩展的数据库实时同步系统.该产品基于成熟的关系数据模型和标准接口,跨越多种软硬件平台实现秒级数据 ...

  3. 达梦数据库DM8版本DSC集群启停注意事项

    达梦数据库DM8的DSC集群与DM7相比,新增加了DMCSSM监视器功能,使用监视器启停集群非常方便. 首先,介绍一下什么是DSC DMDSC:DM共享存储数据库集群,英文全称DM Data Shar ...

  4. 【与达梦同行】达梦数据库主备集群搭建

    达梦数据库主备集群----高性能模式-搭建 文章连接:https://eco.dameng.com/community/post/20221213145437YQ30VJ0HDLCFUV2UMW 环境 ...

  5. 达梦主备守护集群原理详解

    达梦主备集群顾名思义就是一主一备(也可以一主多备)是一种集成化的高可靠性解决方案,同时满足用户对数据安全性和高可用性的要求.解决由于硬件故障.自然灾害等原因导致的数据库服务长时间中断问题,满足用户不间 ...

  6. 达梦数据库主备集群确认监视器测试

    目录 1.测试说明 2.测试项目 3.测试结论 1.测试说明 (1) 本次测试环境 主机名 服务ip 心跳ip 数据库名 实例名 dmdb01 主 192.168.226.190 192.168.22 ...

  7. 国产数据库之达梦数据库 - DM7 MPP集群安装配置

    武汉达梦数据库作为国产数据库较有代表性的企业,在数据库研发方面投入了大量的精力,其自主研发的达梦数据库DM7,除了具有单机版可与Oracle相媲美的能力外,同时也研发了一款无共享MPP架构的数据库软件 ...

  8. 达梦数据库数据守护集群搭建(命令行方式)

    文章目录 达梦数据守护集群介绍 一.前提 二.环境准备 1.数据守护集群搭建 2.配置过程 达梦数据守护集群介绍 达梦数据守护集群软件(DM Data Watch)是一种集成化的高可靠性解决方案,该方 ...

  9. 达梦数据库数据守护集群搭建

    目录 数据守护 集群搭建 备份还原 dm.ini文件修改 配置dmmal.ini文件 配置dmarch.ini归档文件 配置dmwatcher.ini文件 监视器文件配置 mount启动数据库,设置o ...

最新文章

  1. 码云创建maven工程
  2. 我的世界java版怎么装在u盘_我的世界选择器参数怎么使用?
  3. 数学--数论--HDU1222 狼和兔子(最大公约数)
  4. ASP.NET Core 源码学习之 Logging[3]:Logger
  5. ubuntu16.04下Caffe绘制训练过程的loss和accuracy曲线
  6. 第一次工作面试(蘑菇街)
  7. Java中mod的作用_Java中mod和%区别
  8. 《高数叔》概率论与数理统计期末总复习笔记(持续更新中)
  9. 单片机原理与接口技术(ESP8266/ESP32)机器人类草稿
  10. 安全工具(免费杀毒软件Avast、免费防火墙费尔、免费木马清理工具arswp,AVG/Ewido,超级兔子)...
  11. 高级研发工程师岗位职责
  12. 阿里云图片服务器OSS对象存储器使用方法(附详细步骤)
  13. 「冰狐智能辅助」如何在线实时调试?
  14. 在华为公司的项目总结
  15. 山东科技大学第二届ACM校赛解题报告
  16. 华为笔记本已经设置睡眠时间但无法自动进入睡眠状态解决方案(亲测有效)
  17. 机器学习、数据分析类面经分享(美的_秋招_校招_20170924)
  18. netty 简单demo
  19. 【Java基础】冷门知识点
  20. C++ 技术资料(大视野网络收集)

热门文章

  1. 0040 基于文本界面的房屋出租系统
  2. 今天开始写android的照片浏览器(一)至返回所有图片文件
  3. 工行又爆漏洞?可以通过在线缴费系统,根据手机号码查机主姓名,座机机主...
  4. 【Unity】文字游戏制作插件Fungus教程(2)问答系统的开发
  5. bzoj1191 [HNOI2006]超级英雄Hero
  6. 物联网时代下,危化安全生产如何守住“安全防线”?
  7. 通关!游戏设计之道的学习笔记(八)战斗的要素
  8. 关于java中位运算符的使用和理解
  9. 【朴素贝叶斯学习笔记】
  10. 初级Java入行难,没公司要,难道市场真的饱和了吗?