暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

DM8达梦数据库共享存储集群规范化部署

原创 达梦 2021-01-31
495

本章节主要介绍在生产环境中(Linux 系统)规范化部署共享存储集群。

服务器硬件需求

按实际业务需求,选择合适的服务器,准备 2 台服务器,服务器参数建议如下:

硬件 要求
物理内存 >=16GB
交换区 Swap 空间>=物理内存
/tmp大小 >1000 MB
网络 物理机器需要 4 个网卡,2 个 public 网卡做 band,2 个 private 网卡做 band
磁盘 根据实际应用系统需要挂载合适大小磁盘
共享存储 根据实际应用系统需要挂载合适大小共享存储
时间服务器 按机房要求配置连接时间服务器

操作系统要求

操作系统版本安装

DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。

目录与存储规划

本地目录规划:

用途 目录路径 备注
数据库软件安装目录 /home/dmdba/dmdbms 可用空间>50 GB
本地归档日志存放目录 /dmarch 单独挂载磁盘
远程归档日志存放目录 /remote_arch 单独挂载磁盘
备份文件存放目录 /dmbak 单独挂载磁盘

共享存储规划:

用途 磁盘/分区 备注
存放 dcr 信息 /dev/sdb 1 GB 左右
存放 vote 信息 /dev/sdc 1 GB 左右
存放 redo 日志 /dev/sdd 10 GB 左右
存放数据文件 /dev/sde 根据实际数据大小分配

用户与组

DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。

执行以下命令,新建用户组 dinstall。

groupadd dinstall

执行以下命令,新建用户 dmdba。

useradd  -g dinstall -m -d /home/dmdba -s /bin/bash  dmdba

执行以下命令,修改 dmdba 用户密码。

passwd dmdba

输入密码并确认。

用户资源限制

执行以下命令,修改 dmdba 用户资源限制。

vim /etc/security/limits.conf

文件末尾添加如下内容:

dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc 65536
dmdba hard nproc 65536
dmdba soft stack 65536
dmdba hard stack 65536

用户环境变量

执行以下命令,修改 dmdba 用户环境变量。

vi /home/dmdba/.bash_profile

文件末尾添加如下内容:

export DM_HOME=/home/dmdba/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

防火墙设置

端口规划

搭建 2 节点共享存储集群,端口规划如下:(实际中可以按需要修改端口号)

主机名 public ip private ip 实例名 端口 用途
dmdsc1 192.168.56.11 10.0.0.11 dsc1 5236 数据库实例 dmrw1 监听端口
dmdsc1 192.168.56.11 10.0.0.11 dsc1 9741 节点 1 DCR 检查数据库实例监听端口
dmdsc1 192.168.56.11 10.0.0.11 dsc1 9341 节点 1 CSS 进程 TCP 连接端口
dmdsc1 192.168.56.11 10.0.0.11 dsc1 9351 节点 1 ASM 进程 TCP 连接的端口
dmdsc1 192.168.56.11 10.0.0.11 dsc1 7236 节点 1 ASM 的 MAL 系统 TCP 连接的端口
dmdsc1 192.168.56.11 10.0.0.11 dsc1 9236 节点 1 数据库实例的 MAL 系统 TCP 连接的端口
dmdsc2 192.168.56.12 10.0.0.12 dsc2 5236 数据库实例 dmrw2 监听端口
dmdsc2 192.168.56.12 10.0.0.12 dsc2 9741 节点 2 DCR 检查数据库实例监听端口
dmdsc2 192.168.56.12 10.0.0.12 dsc2 9341 节点 2 CSS 进程 TCP 连接端口
dmdsc2 192.168.56.12 10.0.0.12 dsc2 9351 节点 2 ASM 进程 TCP 连接的端口
dmdsc2 192.168.56.12 10.0.0.12 dsc2 7236 节点 2 ASM 的 MAL 系统 TCP 连接的端口
dmdsc2 192.168.56.12 10.0.0.12 dsc2 9236 节点 2 数据库实例的 MAL 系统 TCP 连接的端口

防火墙集群之间需开放以上所有端口,集群对客户端只需要开通数据库实例监听端口。

安装数据库

数据库软件安装详见单机规范化部署

软件安装目录为 /home/dmdba/dmdbms

配置共享存储

udev 方式绑定裸设备。

注意

共享存储需要在 2 个节点上都操作。

执行以下命令,查看磁盘。

lsblk

磁盘信息

sdb-sde 是需要配置的共享磁盘。

执行以下命令,新建 udev 规则文件。

vi /etc/udev/rules.d/90-raw.rules

添加以下内容:

ACTION=="add",KERNEL=="sdb",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",KERNEL=="sdc",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",KERNEL=="sdd",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add",KERNEL=="sde",RUN+="/bin/raw /dev/raw/raw4 %N"
KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"

执行以下命令,使 udev 生效。

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

执行以下命令,检查是否配置成功。

ll /dev/raw/raw*

udev配置成功

注意

如果查看不到配置的裸设备,请重启服务器再验证。

配置 DCR 初始化配置文件

创建配置文件存放目录,2 个节点都要执行,使用 dmdba 用户,执行以下命令:

mkdir -p /home/dmdba/config

新建 dmdcr_cfg.ini 文件,节点 1 使用 dmdba 用户,执行以下命令:

vim /home/dmdba/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 = CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 10.0.0.11
DCR_EP_PORT = 9341
[CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 10.0.0.12
DCR_EP_PORT = 9341

[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 10.0.0.11
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 10.0.0.12
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw

[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[DSC]
DCR_EP_NAME = DSC2
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741

创建 ASM 磁盘

使用 dmdba 用户,到 DM 数据库软件安装目录的 bin 目录执行以下命令(只需在一个节点执行)。

./dmasmcmd

进入 ASM 提示符后执行以下命令:

create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'LOG0' 
create asmdisk '/dev/raw/raw4' 'DATA0'

创建asm磁盘

使用编辑好的 dmdcr_cfg.ini 配置文件初始化 dcrdiskvotedisk,并在 ASM 提示符执行以下命令:

init dcrdisk '/dev/raw/raw1' from '/home/dmdba/config/dmdcr_cfg.ini' identified by '123456'
init votedisk '/dev/raw/raw2' from '/home/dmdba/config/dmdcr_cfg.ini' 

初始化dcr和vote

注意

DMASMCMD工具中执行命令结尾不要加分号。

配置ASM的MAL系统配置文件

2 个节点都需要配置,且文件内容相同,执行以下命令:

vi /home/dmdba/config/dmasvrmal.ini

添加以下内容:


[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 10.0.0.11
MAL_PORT = 7236

[MAL_INST2]
MAL_INST_NAME = ASM2
MAL_HOST = 10.0.0.12
MAL_PORT = 7236

配置 DCR 启动配置文件

vi /home/dmdba/config/dmdcr.ini

节点 1 添加以下内容:

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

节点 2 添加以下内容:

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

两个节点的 DMDCR_SEQNO 参数不能相同要唯一,DMDCR_DB_STARTUP_CMD 中启动脚本路径和配置文件路径要配置准确。如果不配置 css 自动启动 asm 和 db 则需要配置 DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 为 0

启动集群

启动DMCSS服务

2 个节点启动 dmcss,dmdba 用户到数据库安装目录 bin 下执行以下命令:

./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini
提示

先启动的节点是控制节点,本次实验配置了 css 自动启动 asm 和 db,等待 css 启动 asm 和 db 即可。

css 启动 asm 成功,如下图所示:(出现 asm is ready 即表明启动成功)

asm启动成功

创建 ASM 磁盘组

asm 启动成功后,节点 1 使用 dmdba 用户启动 dmasmtool 工具。

./dmasmtool dcr_ini=/home/dmdba/config/dmdcr.ini

在 ASM 提示符下创建 asm 磁盘组,创建 redo 日志磁盘组,执行以下命令:

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

创建数据文件磁盘组,执行以下命令:

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

asm 磁盘组创建成功,执行以下命令:

asm启动成功

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

配置 dminit 控制文件,节点 1 使用 dmdba 用户执行以下命令:

vi /home/dmdba/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 = 100
dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc1
port_num = 5236
mal_host = 10.0.0.11
mal_port = 9236
log_path = +DMLOG/log/DSC1_log01.log
log_path = +DMLOG/log/DSC1_log02.log
[DSC2] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc2
port_num = 5236
mal_host = 10.0.0.12
mal_port = 9236
log_path = +DMLOG/log/DSC2_log01.log
log_path = +DMLOG/log/DSC2_log02.log

初始化实例,节点 1 使用 dmdba 用户执行以下命令:

./dminit control=/home/dmdba/config/dminit.ini

实例初始化成功,如下图所示:

实例初始化成功

初始化完成后会在 init 控制文件配置的目录下生成 2 个实例的配置文件:

实例初始化成功

将 dsc2 目录复制到节点 2 上对应的目录下。

scp -r dsc2 192.168.56.12:/home/dmdba/config/

观察 css 窗口日志,db 会被自动启动。出现 system is ready ep real open,说明数据库实例启动成功。

实例启动成功

注册服务

以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。

2 个节点都需要注册,使用 root 用户执行,到数据库安装目录的 script/root 目录。

节点 1 执行以下命令:

./dm_service_installer.sh -t dmcss -p css1 -dcr_ini /home/dmdba/config/dmdcr.ini

注册css服务

节点 2 执行以下命令:

./dm_service_installer.sh -t dmcss -p css2 -dcr_ini /home/dmdba/config/dmdcr.ini

注册css服务

关闭前台启动的 css,以服务方式启动 css。

节点 1 执行以下命令:

systemctl start DmCSSServicecss1

节点 2 执行以下命令:

systemctl start DmCSSServicecss2

验证集群状态

配置监视器查看

任意节点新建监视器配置文件,执行以下命令:

vi /home/dmdba/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 = 10.0.0.11:9341
CSSM_CSS_IP = 10.0.0.12:9341
CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32 MB
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

启动监视器,dmdba 用户执行,到数据库软件安装目录 bin 下执行以下命令:

./dmcssm ini_path=/home/dmdba/config/dmcssm.ini

dmcssm启动成功

输入 show 命令,查看 css、asm 和 db 的状态。

dmcssm启动成功

以 db 为例,inst_status 字段为 OPEN,vtd_status 字段为 WORKING,active 字段为 TRUE 说明 db 服务正常。

客户端验证

任意节点配置 dm_svc.conf 文件,执行以下命

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论