达梦数据库DSC集群搭建

目录

1 DMDSC集群介绍

1.1 概述

1.2 系统特性

2 环境准备

2.1 创建共享磁盘

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

3 安装达梦数据库

4 配置文件

4.1 dmdcr_cfg.ini文件

4.2 使用 DMASMCMD 工具初始化

​编辑

4.3 dmasvrmal.ini文件

4.4 dmdcr.ini 文件

5 启动 DMCSS、DMASM 服务程序

6  使用 dmasmtool 工具创建 DMASM 磁盘组

​编辑

7 初始化共享存储集群数据库实例

7.1 配置dminit.ini文件

​编辑

7.2 使用 dminit 初始化 DB 环境

8 启动数据库服务器

9 配置监视器

10 DSC集群启动与关闭


1 DMDSC集群介绍

1.1 概述

DM 共享存储数据库集群的英文全称 DM Data Shared Cluster ,简称 DMDSC
DM 共享存储数据库集群,允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。DMDSC 支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。
DMDSC 集群是一个多实例、单数据库的系统。 多个数据库实例可以同时访问、修改同一个数据库的数据。用户可以登录集群中的任意一个数据库实例,获得完整的数据库服务。 数据文件、控制文件在集群系统中只有一份,不论有几个节点,这些节点都平等地使用这文件,这些文件保存在共享存储上。每个节点有自己独立的联机日志和归档日志,其中联机
日志保存在共享存储上,归档日志可以保存在本地存储上也可以保存在共享存储上。
DMDSC 集群主要由数据库和数据库实例、共享存储、本地存储、通信网络、以及集群控制软件 DMCSS 组成。 下面以 部署了 DMASM DMDSC 集群为例,展示 DMDSC 集群系统结构如下图。
数据库和数据库实例
数据库( Database )是一个文件集合(包括数据文件、临时文件、重做日志文件和控
制文件等),保存在物理磁盘或文件系统中。
数据库实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。通过数
据库实例,可以操作数据库,一般情况下,我们访问、修改数据库都是通过数据库实例来完
成的。
共享存储
DMDSC 集群中,为了实现多个实例同时访问、修改数据,要求将数据文件、控制文件、
日志文件保存在共享存储上。
其中,配置 DMDSC 集群需要的 DCR Voting disk 必须保存在 DMASM 文件系统管辖
范围之外的共享存储上。
本地归档日志也可以保存在共享存储上,不过这样会占用较为宝贵的共享存储资源,因
此建议放在普通磁盘上即可。
本地存储
DMDSC 集群中,本地存储用来保存配置文件(记录数据库实例配置信息的 dm.ini
dmarch.ini dmmal.ini ),本地归档日志、远程归档日志。
通信网络
DMDSC 集群中,网络分为内部网络和公共网络两个部分。实际应用中一般还存在服务
器到共享存储的网络。内部网络用于数据库实例之间交换信息和数据, MAL 链路使用的就是
内部网络。公共网络用于对外提供数据库服务,用户使用公共网络地址登录 DMDSC 集群,
访问数据库。
集群控制
集群控制是集群系统的重要组成部分。 DMCSS 就是一款集群控制软件,专门负责监控
集群中各个节点的运行状态。 DMCSS 主要功能包括:管理集群的启动和关闭,控制节点故
障处理,以及管理节点重加入流程。

1.2 系统特性

DMDSC 的主要特点包括:
1. 高可用性
只要集群中有一个活动节点,就能正常提供数据库服务。
2. 高吞吐量
多个节点同时提供数据库服务,有效提升集群的整体事务处理能力。
3. 负载均衡
用户的连接请求被平均分配到集群中的各个节点,确保各个节点的负
载大致平衡。

2 环境准备

硬件:两台相同配置机器, 2G 内存 ,另有一块共享磁盘。
操作系统: RedHat Linux 64 位。
网 络 配 置 : A机器:192.168.186.140,B机器:192.168.186.141。
DM安装目录:/dm8。
配置文件位于目录:/dm8/config

2.1 创建共享磁盘

A机器:

 

 

 

 

B机器:

 

 

 

 

以上完成了共享磁盘的挂载。

A,B机器还要在虚拟机文件中的xxxxx.vmx文件中添加

disk.locking="FALSE"

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

1. 在共享磁盘上裸设备划分(任一机器操作即可)
    1) 输入 fdisk /dev/sdb
fdisk -l  #查看信息
fdisk /dev/sdb  #分区,划分完成后,输入w保存
   

        2) 依次输入 n -> p -> 1 -> 回车 -> +100M -> 回车,完成第一块磁盘划分
          
    3) 依次输入 n -> p -> 2 -> 回车 -> +100M ->  回车,完成第二块磁盘划分
    4) 依次输入 n ->  p ->   3 -> 回车 ->   +2048M ->  回车,完成第三块磁盘划分
    5) 依次输入 n ->   p ->   4 -> 回车 ->  回车 ->  回车,完成第四块磁盘划分

再次查看磁盘

fdisk -l

 

    6) A,B机器都需要操作, 编辑 /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="dmdba", GROUP="dmdba", MODE="660"

依次执行下面两条语句,再查看是否绑定成功

partprobe /dev/sdb
udevadm trigger --action=add

 查看是否绑定成功

ll /dev/raw/raw*

注意!未免之后启动CSS报无法打开文件的错误,建议给/dev/raw目录赋予权限

chown dmdba:dinstall -R /dev/raw
chmod -R 755 /dev/raw

3 安装达梦数据库

参考链接:https://eco.dameng.com/document/dm/zh-cn/start/install-dm-linux-prepare.html

注意:

        安装数据库记得关闭防火墙和SELiunx,以便后面ASM服务起不了,报错:[code : -11041] ASM连接异常

 

4 配置文件

4.1 dmdcr_cfg.ini文件

在DM数据库安装目录下新建目录config,准备 dmdcr_cfg.ini 配置文件,保存到/dm8/config 目录下面。后续 DMASMCMD 工具执行 init 语句会使用到。
我的A机器:192.168.186.140
       B机器:192.168.186.141
2 个节点都要执行,使用 dmdba 用户
vi /dm8/config/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.186.140
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.186.141
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 = 20
DCR_EP_HOST = 192.168.186.140
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 = 20
DCR_EP_HOST = 192.168.186.141
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 = 5237
DCR_CHECK_PORT = 9742

4.2 使用 DMASMCMD 工具初始化

切换到DM数据库安装目录的bin目录下(任一机器执行即可)

cd /dm8/bin
./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 '/dm8/config/dmdcr_cfg.ini'identified by 'abcd'

init votedisk '/dev/raw/raw2' from '/dm8/config/dmdcr_cfg.ini'

4.3 dmasvrmal.ini文件

准备 DMASM MAL 配置文件(命名为 dmasvrmal.ini), 2 个机器都需要配置,且文件内容相同,执行以下命令:
vi /dm8/config/dmasvrmal.ini
[MAL_INST1]
 MAL_INST_NAME = ASM0
 MAL_HOST = 192.168.186.140
 MAL_PORT = 7236
[MAL_INST2]
 MAL_INST_NAME = ASM1
 MAL_HOST = 192.168.186.141
 MAL_PORT = 7236

4.4 dmdcr.ini 文件

准备 dmdcr.ini 配置文件,保存到 /dm8/config  目录下面。两个机器都需要配置。
A、B机器的dmdcr_seqo 分别为 0 1
vi /dm8/config/dmdcr.ini
机器A:  192.168.174.140
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 10
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/dm8/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/config/dsc1/dm.ini     dcr_ini=/dm8/config/dmdcr.ini

机器B: 192.168.174.141

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 10
DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/dm8/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/config/dsc2/dm.ini dcr_ini=/dm8/config/dmdcr.ini
注意:DMDCR_ASM_STARTUP_CMD和DMDCR_DB_STARTUP_CMD的配置不要换行!

5 启动 DMCSSDMASM 服务程序

在 A、B机器 先后分别启动 dmcss dmasmsvr 程序,数据库bin目录下执行。
手动启动 dmcss 命令:
 ./dmcss DCR_INI=/dm8/config/dmdcr.ini
手动启动 dmasmsvr 命令:
./dmasmsvr DCR_INI=/dm8/config/dmdcr.ini

6  使用 dmasmtool 工具创建 DMASM 磁盘组

选择一个节点(192.168.186.140 )即A机器,启动 dmasmtool 工具。
./dmasmtool DCR_INI=/dm8/config/dmdcr.ini
输入下列语句创建 DMASM 磁盘组:
#创建日志磁盘组

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

#创建数据磁盘组

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

初始化共享存储集群数据库实例

7.1 配置dminit.ini文件

配置 dminit 控制文件,节点 1 使用 dmdba 用户执行以下命令 ,保存到/dm8/config 目录
vi /dm8/config/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 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /dm8/config/dsc1
port_num = 5236
mal_host = 192.168.186.140
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 = /dm8/config/dsc2
port_num = 5237
mal_host = 192.168.186.141
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log

7.2 使用 dminit 初始化 DB 环境

选择一个结点,A机器 ,启动 dminit 工具初始化数据库。 dminit 执行完成 后,会在 config_path 目录( /dm8/config/dsc1  和 /dm8/config/dsc2)下生成配置文件 dm.ini dmmal.ini
./dminit control=/dm8/config/dminit.ini

 

 在A机器上执行此命令,将dsc目录拷贝到B机器上

scp -r dsc2 192.168.174.141:/dm8/config/

启动数据库服务器

如果 DMCSS 配置有自动拉起 dmserver 的功能,可以等待 DMCSS 自动拉起实例,不
需要手动启动。
如果需要手动启动,可参考下面的操作步骤:
A机器:
./dmserver /dm8/config/dsc1/dm.ini dcr_ini=/dm8/config/dmdcr.ini
机器:
./dmserver /dm8/config/dsc2/dm.ini dcr_ini=/dm8/config/dmdcr.ini

9 配置监视器

可以在B机器上配置dmcssm.ini文件

vi /dm8/config/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.186.140:9341
CSSM_CSS_IP = 192.168.186.141:9343

CSSM_LOG_PATH = /dm8/data/cssm/log #监视器日志文件存放路径

CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
#启动监视器
./dmcssm ini_path=/dm8/config/dmcssm.ini

show命令查看DSC集群状况。

10 DSC集群启动与关闭

启动DSC集群

 启动css        ./dmcss DCR_INI=/dm8/config/dmdcr.ini
 启动asmvr      ./dmasmsvr dcr_ini=/dm8/config/dmdcr.ini
 启动实例       ./dmserver /dm8/config/dsc1/dm.ini dcr_ini=/dm8/config/dmdcr.ini
ep startup grp_dsc

DSC集群关闭:

如果 DMCSS 配置了 DMASMSVR/dmserver 自动拉起命令,可以先仅启动 DMCSS,然 后启动 DMCSSM,在 DMCSSM 控制台执行命令"ep startup asm"启动 DMASMSVR 集群, 执行"ep startup dsc"启动 dmserver 集群(其中 asm/dsc dmasmsvr/dmserver 集群的组名)。类似地执行"ep stop asm/dsc"可以关闭 dmasmsvr/dmserver 集群环境。

关闭 DMDSC 集群环境时,应先关闭 dmserver,再依次关闭 DMASMSVR DMCSS

关闭数据库:监视器中执行

ep stop GRP_DSC

关闭 asm:监视器中执行 

ep stop GRP_ASM

关闭 css:各节点关闭各自的 css 服务 systemctl stop DmCSSServicecss1/DmCSSServicecss2

启动 css: 各节点启动各自的 css 服务 systemctl start DmCSSServicecss1/DmCSSServicecss2

启动 asm:配置了自动拉起,等待 asm 自动启动。

启动数据库:配置了自动拉起,等待数据库自动启动。

开启\关闭自动拉起:

set group_name auto restart on/off


通过dmcssm修改自动拉起标志是仅修改内存值,并不会修改dmdcr.ini配置文件中的值,重启dmcss服务后对应节点上的自动拉起标识会被重置。

至此DSC集群的搭建完毕,更多详细资料,请参考达梦数据库官方社区:https://eco.dameng.com

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值