【达梦数据库】DMDSC搭建


前言

DM 共享存储数据库集群的英文全称 DM Data Shared Cluster,简称 (DMDSC)。DMDSC 允许多个数据库实例同时访问、操作同一数据库,具有高可用、高性能、负载均衡等特性。并支持故障自动切换和故障自动重加入,某一个数据库实例故障后,不会导致数据库服务无法提供。

本文主要介绍 DMDSC 集群的搭建过程和一些报错问题的解决思路,以供学习参考。


一、前期安排

1.1 虚拟机创建

设备参数

本文是在VMware 16 Pro 下创建两台虚拟机,必需虚拟机参数如下。其中内存、处理器、硬盘、网卡可以根据业务需求修改其参数大小。

设备摘要
内存1GB
处理器1
硬盘(SCSI)20GB(预先分配)
硬盘 2 (SCSI)20GB(永久)
CD/DVD (IDE)自动检测
网络适配器NAT
网络适配器 2自定义(VMnet2)

初期创建时如果忘记配置第二张网卡和磁盘,可以参考 VMware虚拟机配置网卡和共享磁盘步骤图解 进行配置。

操作系统版本

  • 本文使用 CentOS Linux release 7.9.2009 (Core),即CentOS 7。
  • DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。

1.2 目录与存储规划

本地目录规划

目录路径及其可用空间可以根据业务需求修改,本文仅作学习使用,故而未单独挂载那么多磁盘,可用空间也无需太大。

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

共享存储规划

本文只挂载了一个 20 GB 的共享磁盘,将其分为四个区,其分区用途及其空间大小如下表所示。(似乎也可以不用设置这么大。。)

用途磁盘/分区空间大小
存放 dcr 信息/dev/sdb11 GB
存放 vote 信息/dev/sdb21 GB
存放 redo 日志/dev/sdb310 GB
存放数据文件/dev/sdb48 GB

1.3 前期准备

用户与组

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

groupadd dinstall
useradd  -g dinstall -m -d /home/dmdba -s /bin/bash  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

修改后使得环境变量生效。

source /home/dmdba/.bash_profile

1.4 防火墙设置

关闭防火墙

查看防火墙状态,如果显示为active,需要关闭防火墙,禁用则开机不启动防火墙。

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

关闭SELinux

查看是否开启了SELinux,如果显示为Enforcing,需要改为Disabled,再重启系统使配置生效。

getenforce
vi /etc/selinux/config     
# 进入文件后修改 SELINUX = disabled
# 保存退出文件
reboot

端口规划

搭建 2 节点共享存储集群,端口规划如下:
两主机最好是相同用途的端口配置成相同的端口号,实际中也可以按需要修改端口号。

端口用途
5236数据库实例 dmrw 监听端口
9741DCR 检查数据库实例监听端口
9341CSS 进程 TCP 连接端口
9351ASM 进程 TCP 连接的端口
7236ASM 的 MAL 系统 TCP 连接的端口
9236数据库实例的 MAL 系统 TCP 连接的端口

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

例如检测端口5236是否开放:(回车后没有返回即为端口开放可以使用)

netstat -ano | grep 5236

1.5 安装数据库

只需要安装数据库,暂时不需要初始化实例。

安装步骤可参考:
【官方文档】单机规范化部署

【个人博客】VMware虚拟机 + CentOS7环境配置 + DM8 数据库安装流程


二、磁盘分区及绑定

2.1 磁盘分区(DSC1)

分区(DSC1)

fdisk /dev/sdb

需要分区后才能进行绑定。依次输入下列信息:

n → p → 1 → “回车” → 1G           # dcr
n → p → 2 → “回车” → 1G           # vote
n → p → 3 → “回车” → 10G          # log0
n → p → 4 → “回车” → 回车          # data0
w                                 # 保存

查看分区(DSC1)

在这里插入图片描述

查看分区(DSC2)

如果DSC2中没有显示分区,则可能共享磁盘挂载失败,需要重新挂载。


2.2 配置裸设备(DSC1 & DSC2)

共享存储需要在 2 个节点上都操作。
sdb1-sdb4 是需要配置的共享磁盘。

新建 udev 规则文件(DSC1 & DSC2)

vi /etc/udev/rules.d/90-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"
KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"

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

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

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

ll /dev/raw/raw* 

在这里插入图片描述

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


三、添加配置文件

3.1 配置 DCR 初始化配置文件(DSC1 & DSC2)

创建配置文件存放目录,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          = 172.16.1.171
 DCR_EP_PORT          = 9341
[CSS]
 DCR_EP_NAME          = CSS2
 DCR_EP_HOST          = 172.16.1.172
 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          = 172.16.1.171
 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          = 172.16.1.172
 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

3.2 创建 ASM 磁盘(DSC1)

创建磁盘

使用 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'

初始化磁盘

使用编辑好的 dmdcr_cfg.ini 配置文件初始化 dcrdisk 和 votedisk,并在 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' 

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

3.3 配置ASM的MAL系统配置文件(DSC1 & DSC2)

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

vi /home/dmdba/config/dmasvrmal.ini

添加以下内容:


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

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

3.4 配置 DCR 启动配置文件(DSC1 & DSC2)

节点一和节点二各需要创建dmdcr.ini文件。
两者内容差别主要在于DMDCR_SEQNO和PATH中的实例名。

本文将ASM和DB的重启参数均设置为0,为手动拉起ASM和DB服务,主要是为了防止拉起过程出现故障导致不断重启。

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 = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr  dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
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 = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr  dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
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。


四、启动DMDSC集群

4.1 启动 DMCSS 服务(DSC1 & DSC2)

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

# 前台方式启动
./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini 

或者等后续注册服务后用以下语句启动。

# 服务方式启动
systemctl start DmCSSServicecss1/DmCSSServicecss2

先启动的节点是控制节点,本文没有配置 css 自动启动 asm 和 db,所以需要手动拉起。(DCR启动配置文件中的DMDCR_ASM_RESTART_INTERVAL和DMDCR_DB_RESTART_INTERVAL的值均为0。)如需自动启动,可修改其参数值。

4.2 启动 ASM 服务(DSC1 & DSC2)

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

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

或者配置自动启动,等待css启动asm成功。
出现 ASM is ready 即为启动成功。
或者通过 ps -ef | grep asm 查询到相关进程存在即为成功。

在这里插入图片描述

4.3 创建 ASM 磁盘组(DSC1)

asm 启动成功后,节点 1 使用 dmdba 用户启动 dmasmtool 工具。
在 ASM 提示符下创建 asm 磁盘组,创建 REDO 日志磁盘组和数据文件磁盘组。

./dmasmtool dcr_ini=/home/dmdba/config/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
exit   # 退出

4.4 初始化共享存储集群数据库实例(DSC1)

配置 dminit 控制文件(DSC1)

节点 1 使用 dmdba 用户执行以下命令:

vi /home/dmdba/config/dminit.ini

添加以下内容:(注意修改IP和路径)

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     = 1024
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     = 172.16.1.171
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     = 172.16.1.172
mal_port     = 9236
log_path     = +DMLOG/log/DSC2_log01.log
log_path     = +DMLOG/log/DSC2_log02.log

初始化实例(DSC1)

节点 1 使用 dmdba 用户执行以下命令:

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

初始化完成后会显示 create dm database success.
并在 init 控制文件配置的目录下生成 2 个实例的配置文件:

复制相应配置文件(DSC1 → DSC2)

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

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

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

注册服务(DSC1 & DSC2)

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

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

节点 1 执行以下命令:

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

节点 2 执行以下命令:

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

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

节点 1 执行以下命令:

systemctl start DmCSSServicecss1

节点 2 执行以下命令:

systemctl start DmCSSServicecss2

4.5 启动数据库实例(DSC1 & DSC2)

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

./dmserver path=/home/dmdba/config/dsc1/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
./dmserver path=/home/dmdba/config/dsc2/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

五、验证集群状态

5.1 配置监视器查看(DSC1)

创建监视器配置文件

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

vi /home/dmdba/config/dmcssm.ini

添加以下内容:(注意修改IP)

#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 172.16.1.171:9341
CSSM_CSS_IP = 172.16.1.172:9341
CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 1024 #每个日志文件最大 1024 MB
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

启动监视器

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

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

返回前缀为[monitor]的报告。

monitor

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

在这里插入图片描述
请添加图片描述

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

5.2 数据库共享验证(DSC1 & DSC2)

1.(DSC1 & DSC2)在数据库查询 T1 表,显示不存在。
在这里插入图片描述

2.(DSC1)创建 T1 表。
在这里插入图片描述

3.(DSC1)向 T1 表插入数据。
请添加图片描述

4.(DSC2)查询数据。
在这里插入图片描述

5.(DSC1)COMMIT提交数据。
请添加图片描述

6.(DSC2)再次查询数据。
在这里插入图片描述

5.3 客户端验证 (DSC1 / DSC2)

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

vi /etc/dm_svc.conf

添加以下内容:(注意修改IP)

dmdsc=(192.168.163.171:5236,192.168.163.172:5236) 

常用参数:

参数名说明
服务名用于连接的服务名,用户通过连接服务名访问数据库。IP 为数据库所在的 IP 地址,如果是 IPv6 地址,为了区分端口,需要用[]封闭 IP 地址。PORT 为数据库使用的 TCP 连接端口,可选配置,不配置则使用默认的端口。
SWITCH_TIMES检测到数据库实例故障时,接口在服务器之间切换的次数;超过设置次数没有连接到有效数据库时,断开连接并报错。有效值范围 1~9223372036854775807,默认值为 1。
SWITCH_INTERVAL表示在服务器之间切换的时间间隔,单位为毫秒,有效值范围1~9223372036854775807,默认值为 200。
LOGIN_DSC_CTRL服务名连接数据库时是否只选择 DMDSC 控制节点的库。0:否;1:是。默认值为 0。
EPSELECTOR连接数据库时采用何种模型建立连接。0:依次选取列表中的不同节点建立连接,使得所有连接均匀地分布在各个节点上;1:选择列表中最前面的节点建立连接,只有当前节点无法建立连接时才会选择下一个节点进行连接。默认值为 0。
AUTO_RECONNECT连接发生异常或一些特殊场景下连接处理策略。0:关闭连接;1:当连接发生异常时自动切换到其他库,无论切换成功还是失败都会抛一个 SQLException,用于通知上层应用进行事务执行失败时的相关处理;2 配合 EP_SELECTOR=1 使用,如果服务名列表前面的节点恢复了,将当前连接切换到前面的节点上。默认值为 0。
CHECK_FREQJDBC 专用。服务名连接数据库时,循环检测连接是否需要重置的时间间隔。即每隔一段时间,当连接对象发生改变,JDBC 连接会自动重置到新对象。单位 ms,有效值范围0~2147483647。默认值 300000。

2.使用 disql 工具登录集群(数据库安装目录的 bin 下):

./disql SYSDBA/SYSDBA@dmdsc

3.查询视图 v$dsc_ep_info,查看集群状态,执行以下命令:

select * from v$dsc_ep_info;

在这里插入图片描述

5.4 故障自动重连验证(DSC1)

模拟单个节点出现故障

连接节点 1 实例,保持disql连接不断开,刚关闭节点1服务器时出现的查询信息。

等待30s后再重新查询。

请添加图片描述

5.5 归档配置

生产环境必须开启归档日志,且必须限制归档日志保留量。
共享存储集群归档需要配置本地归档和远程归档(保证每个节点都有所有归档日志)。

实例 dsc1 上配置,执行以下命令:

alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/home/dmdba/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';
alter database add archivelog 'DEST=dsc2, TYPE=REMOTE, FILE_SIZE=1024, SPACE_LIMIT=102400, INCOMING_PATH=/home/dmdba/remote_arch';
alter database open;

实例 dsc2 上配置,执行以下命令:

alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/home/dmdba/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';
alter database add archivelog 'DEST=dsc1, TYPE=REMOTE, FILE_SIZE=1024, SPACE_LIMIT=102400, INCOMING_PATH=/home/dmdba/remote_arch';
alter database open;

5.6 参数优化

集群部署完成后,需要优化 dm.ini 参数,共享存储集群所有节点都需要修改,参数值优化详见达梦数据库官方文档 参数优化


六、关闭DMDSC集群

1.关闭数据库:监视器中执行 ep stop dsc
2.关闭 asm:监视器中执行 ep stop asm
3.关闭 css:各节点关闭各自的 css 服务
systemctl stop DmCSSServicecss1/DmCSSServicecss2

dmserver → dmasmsvr → dmcss

注意关闭顺序!!


七、处理报错问题

7.1 监听端口报错

在这里插入图片描述
描述信息:dmcss startup failed,[CODE:-1],error info:css_lsnr_create_sock failed, code:[-1]

解决思路:

  1. 查看服务是否启动systemctl status DmCSSServicecss1
    没有启动则先启动服务。

  2. 查看端口占用情况 netstat -ntulp | grep 9341
    若被占用,则查看占用端口的进程号lsof -i :9341
    杀死对应进程 kill -9 1156
    dmdba用户到达bin目录下执行启动命令 ./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini

  3. 查看防火墙和访问控制 getenforce
    如果不是disabled,则改成disabled

7.2 CSS启动失败

描述信息:注册服务后启动CSS服务失败,再回到原本的前台启动方式也失败。

解决思路:

  1. 先看报错提示,简单错误可以直接解决。
  2. 无法解决再跳转到日志文件路径下,查看最新生成的相关的日志文件,主要关注 error 和 warning 信息。
cd /home/dmdba/dmdbms/log
ls -ltr
tail -200f DmCSSServicecss1.log
  1. 查看防火墙和访问控制
systemctl status firewalld.service
# 如果是 active,需要执行以下命令,关闭禁用防火墙
systemctl stop firewalld.service  
systemctl diabled firewalld.service

getenforce
# 如果是 Enforcing,需要到以下文件去改为 disabled
vi /etc/selinux/config
  1. 检查配置文件
    有很大可能是配置文件中的参数设置错误,需要着重检查。

  2. 检查文件权限
    有可能是因为文件权限不是 dmdba:dinstall 。

  3. 注意不要同时开启两节点CSS,容易导致两者争夺控制节点。最好是等其中一个节点的CSS开启完毕后,再去开启另一节点的CSS。

7.3 ASM连接异常

在这里插入图片描述
描述信息:dmasm api init failed,[code:-11041] ASM connection exception 搭建DSC,创建磁盘组时报错。

解决思路:

  1. 查看磁盘分区是否错误。
cd /home/dmdba/dmdbms/bin
./dmasmcmd

ASM > listdisks /dev/raw
  1. 查看CSS服务和ASM服务。
    有可能是CSS服务还没有执行完毕或者ASM服务没有开启。

  2. 查看防火墙是否关闭。

  3. 检查配置文件。

  4. 检查端口。

  5. 检查外部虚拟机的磁盘与网卡。
    有可能是两个虚拟机的共享磁盘分裂或者网卡选错成两个不同的。

7.4 控制节点跳变

描述信息:
DMDSC集群搭建过程,节点一CSS、ASM、DB均可正常启动,节点二CSS、ASM启动过程显示 IS READY,启动DB过程报错。监视器查看时,发现CSS状态为FALSE,且节点一和节点二的CSS一直在跳变。表面报错信息也是普通的ASM连接异常。

解决思路:

  1. 检查以上均无错误后,可以去查看虚拟机设置,确定两台虚拟机是否成功挂载了共享磁盘。注意查看是否此共享磁盘被分裂成了两块磁盘在使用。这种情况需要重新挂载共享磁盘。

总结

本文主要介绍在CentOS7(Linux 系统)规范化部署共享存储集群的过程,包括一些报错问题的解决思路。实际操作过程要随时注意执行当前语句的用户及路径,尽量用dmdba用户去执行。

如果文中有误,欢迎指出,大家共同交流进步!

更多达梦技术资讯,请访问达梦技术社区:
达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心
https://eco.dameng.com/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值