达梦DSC集群搭建流程(生产环境可用)

达梦DSC集群相关概念:

DMDSC 概述 | 达梦技术文档

本文以实际操作,以及搭建过程中避坑为主~

目录

1.添加用户

2.使用root账户修改配置

3.关闭防火墙

4.解压安装包,挂载镜像文件

5.创建共享磁盘

(node1 作为服务端 node2 node3作为客户端)

6.UDEV裸设备绑定

7.配置dmdcr_cfg.ini

8.创建ASM磁盘

9.配置dmasvrmal.ini

10.配置dmdcr.ini配置文件

11.使用 dmasmtool 工具创建 DMASM 磁盘组

12.配置dminit.ini 文件(一个节点就行)

13.选择一个节点,启动 dminit 工具初始化数据库。

14.启动达梦

15.测试


1.添加用户

为了更好的管理用户与资源消耗,我们可以添加一个用户组专门处理达梦数据库.

#创建dinstall用户组
groupadd -g 1001 dinstall
 
#创建dmdba用户并添加到dinstall用户组
useradd  -g dinstall -d /home/dmdba -s /bin/bash -m dmdba  

#给dmdba用户添加密码
echo 'dameng123' | passwd --stdin dmdba 

#创建/opt/dmdbms 未来达梦数据库的安装路径
mkdir -p /opt/dmdbms

#修改达梦数据库的安装路径的用户用户组权限
chown -R dmdba:dinstall /opt/dmdbms
2.使用root账户修改配置

vim /etc/security/limits.conf  (因为后续安装达梦数据库时打开文件数量超过了默认值)

#配置文件末尾添加
dmdba soft nofile 65536
dmdba hard nofile 65536

ulimit -a 查看dmdba用户是否打开文件数设置成功

3.关闭防火墙
#检查防火墙状态
firewall-cmd --state

#停止并禁用防火墙
systemctl stop firewalld
systemctl disable firewalld

4.解压安装包,挂载镜像文件

官网下载地址如下,可根据自己情况选择对应的cpu架构和操作系统

产品下载-达梦数据 (dameng.com)

下载后将下载的iso文件上传到服务器,挂载并进行安装

#将/opt/software/dm8 路径下的iso文件 挂载到/mnt路径下
mount -o loop /opt/software/dm8/dm8_20230418_x86_rh6_64.iso /mnt

cd /mnt

ll
总用量 1069534
-r-xr-xr-x. 1 root root    2909114 4月  18 13:20 DM8 Install.pdf
-r-xr-xr-x. 1 root root 1092293558 4月  18 13:23 DMInstall.bin

#执行安装
./DMInstall.bin -i

请选择安装语言(C/c:中文 E/e:英文) [C/c]:C
解压安装程序......... 
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:
请输入Key文件的路径地址 [dm.key]:
请输入key文件路径!
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [Y/y]:Y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1815M

请选择安装目录 [/opt/dmdbms]:/opt/module/dm8               
可用空间: 11G
是否确认安装路径(/opt/module/dm8)? (Y/y:是 N/n:否)  [Y/y]:y

安装前小结
安装位置: /opt/module/dm8
所需空间: 1815M
可用空间: 11G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
请选择安装语言(C/c:中文 E/e:英文) [C/c]:C
解压安装程序......... 
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:
请输入Key文件的路径地址 [dm.key]:
请输入key文件路径!
是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [Y/y]:Y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]:21

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1815M

请选择安装目录 [/opt/dmdbms]:/opt/module/dm8               
可用空间: 11G
是否确认安装路径(/opt/module/dm8)? (Y/y:是 N/n:否)  [Y/y]:y

安装前小结
安装位置: /opt/module/dm8
所需空间: 1815M
可用空间: 11G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y

安装前小结
安装位置: /opt/module/dm8
所需空间: 1815M
可用空间: 11G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2023-10-10 09:21:48 
[INFO] 安装达梦数据库...
2023-10-10 09:21:48 
[INFO] 安装 基础 模块...
2023-10-10 09:21:55 
[INFO] 安装 服务器 模块...
2023-10-10 09:21:56 
[INFO] 安装 客户端 模块...
2023-10-10 09:22:02 
[INFO] 安装 驱动 模块...
2023-10-10 09:22:04 
[INFO] 安装 手册 模块...
2023-10-10 09:22:05 
[INFO] 安装 服务 模块...
2023-10-10 09:22:06 
[INFO] 移动日志文件。
2023-10-10 09:22:06 
[INFO] 正在启动DmAPService服务...
2023-10-10 09:22:07 
[INFO] 启动DmAPService服务成功。
2023-10-10 09:22:07 
[INFO] 安装达梦数据库完成。

安装达梦数据库后此时一定不要进行数据库初始化!!!

5.创建共享磁盘
(node1 作为服务端 node2 node3作为客户端)

以node1上的/dev/sdb磁盘为例进行演示

step1:对node1上的/dev/sdb磁盘进行分区

#使用fdisk命令 对/dev/vdb磁盘进行分区

fdisk  /dev/vdb

依次输入 n > p > 1 回车> +50G >回车,完成第一块磁盘划分   #log(未来存放达梦数据库的联机日志)  
依次输入 n > p > 2 回车> +50G >回车,完成第二块磁盘划分   #voting disk(未来存放集群活动信息)  
依次输入 n > p > 3 回车> +1T  >回车,完成第三块磁盘划分   #data(未来存放达梦数据库的数据)  
依次输入 n > p > 4 回车> +50G >回车,完成第四块磁盘划分   #DCR (未来存放集群成员信息)

使用iscsi技术进行node1节点磁盘的共享操作(相关iscsi概念后续会详细讲解,本章仅操作演示)

step2:node1服务端节点相关操作

#下载target工具
[root@server ~]# yum -y install targetcli

#设置开机自启
[root@server ~]# systemctl enable target

#开启target服务
[root@server ~]# systemctl start target

#进入target客户端
[root@server ~]# targetcli

#查看当前target客户端内的内容
/> ls
o- / ..................................................................... [...]
  o- backstores .......................................................... [...]
  | o- block .............................................. [Storage Objects: 0]
  | o- fileio ............................................. [Storage Objects: 0]
  | o- pscsi .............................................. [Storage Objects: 0]
  | o- ramdisk ............................................ [Storage Objects: 0]
  o- iscsi ........................................................ [Targets: 0]
  o- loopback ..................................................... [Targets: 0]

#1.进入/backstores/block路径 创建后端存储
/backstores/block create dev=/dev/vdb name=dm

#2.进入/iscsi/路径 创建target标签 iqn.xxxx-xx是固定格式 后面的域名反写可随意更改
/> iscsi/ create iqn.2023-10.com.dm

#3.进行lun关联(将第一步的存储后端添加到标签中)
/> iscsi/iqn.2023-10.com.dm/tpg1/luns create /backstores/block/dm

#4.新建 ACL (相当于客户端识别node1节点的密令)
/> iscsi/iqn.2023-10.com.dm/tpg1/acls create iqn.2023-10.com.dm:client

#5.设置iSCSI服务端的监听IP地址和端口号(默认的0.0.0.0代表服务端所有ip可以提供对外被监听的服务,删除后可根据实际情况更改)
/> iscsi/iqn.2023-10.com.dm/tpg1/portals/ delete 0.0.0.0 3260
Deleted network portal 0.0.0.0:3260
/> iscsi/iqn.2023-10.com.dm/tpg1/portals/ create 172.25.234.16

#6.退出
/> exit
Global pref auto_save_on_exit=true
Configuration saved to /etc/target/saveconfig.json



# 如果配置错误可清空tartgetcli配置   ###非操作步骤
clearconfig confirm=True

# 重启target服务
[root@server ~]# systemctl restart target

# 设置target服务开机启动
[root@server ~]# systemctl enable target

# 关闭防火墙
[root@server ~]# systemctl stop firewalld.service 
Using default IP port 3260

step3:node2、node3客户端节点相关操作

#安装iscsi-initiator-utils
[root@client ~] yum install -y iscsi-initiator-utils

#编辑配置文件 /etc/iscsi/initiatorname.iscsi,修改名称为服务端中客户端密令的名字
[root@client ~]# vi /etc/iscsi/initiatorname.iscsi 
InitiatorName=iqn.2023-06.com.dm:client
 
[root@CentOS7-NTP ~]# sudo systemctl status iscsid         ##查看iscsi服务状态
[root@CentOS7-NTP ~]# sudo systemctl restart iscsid      ##启动iscsi服务
[root@CentOS7-NTP ~]# sudo systemctl enable iscsid       ##设置iscsi服务开机启动

# 发现共享设备 172.25.234.16为服务端ip
 sudo iscsiadm -m discovery -t st -p 172.25.234.16


# 连接共享设备 iqn.2023-10.com.dm 为服务端设置的target
 sudo iscsiadm -m node -T iqn.2023-10.com.dm -p 172.25.234.16 -l

Logging in to [iface: default, target: iqn.2023-10.com.dfjx:client, portal: 192.168.75.102,3260] (multiple)
Login to [iface: default, target: iqn.2023-10.com.dfjx:client, portal: 192.168.75.102,3260] successful.
 
#设置开机自动挂载 iqn.2023-10.com.dm 为服务端设置的target
iscsiadm -m node -T iqn.2023-10.com.dm -p 172.25.234.16:3260 --op update -n node.startup -v automatic

配置好客户端之后 发现 -> 登录连接 ->设置开机后自动连接,可在node1和node2上使用fdisk -l

或者lsblk命令来查看客户端是否已经共享到node1节点的磁盘

6.UDEV裸设备绑定

使用UDEV进行共享磁盘本地裸设备绑定,是因为磁盘名会因为节点不同按顺序命名,如果不固定下来后续配置文件会出现混乱

#将共享磁盘绑定裸设备
vi 	/etc/udev/rules.d/60-raw.rules 
(这个是centos7的udev配置路径,其他的可自行查询)

#两台节点都要执行
ACTION=="add", KERNEL=="vdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="vdb2", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="vdb3", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="vdb4", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="damdba", GROUP="dinstall", MODE="660"

[root@loaclhost ~]# vi /etc/rc.local
追加以下内容:
chown dmdba.dinstall /dev/raw/raw*

#重启udev服务
sudo udevadm control --reload-rules
sudo systemctl restart systemd-udev-trigger.service

#重启客户端节点
[root@loaclhost ~]# reboot

#查看绑定的裸设备大小,如果可以查看到则说明绑定成功
sudo blockdev --getsize64 /dev/raw/raw* 命令查看裸设备大小

7.配置dmdcr_cfg.ini
vi /opt/dmdbms/config/dmdcr_cfg.ini 
#根据实际情况修改ip和路径,两节点都需要配置

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 = 172.25.234.13
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 172.25.234.18
DCR_EP_PORT = 9341
[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 = 172.25.234.13
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 = 10
DCR_EP_HOST = 172.25.234.18
DCR_EP_PORT = 9349
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 = 5236
DCR_CHECK_PORT = 9741
8.创建ASM磁盘
#使用 DMASMCMD 工具初始化(一个节点执行) #最大磁盘的给数据
#在/opt/dmdbms/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 '/opt/dmdbms/config/dmdcr_cfg.ini' identified by 'dm123'
init votedisk '/dev/raw/raw2' from '/opt/dmdbms/config/dmdcr_cfg.ini'
9.配置dmasvrmal.ini
#两客户端节点都需要执行,MAL是ASM集群的通讯配置
vi  /opt/dmdbms/config/dmasvrmal.ini

[MAL_INST1]
 MAL_INST_NAME = ASM0
 MAL_HOST = 172.25.234.13
 MAL_PORT = 7236
[MAL_INST2]
 MAL_INST_NAME = ASM1
 MAL_HOST = 172.25.234.18
 MAL_PORT = 7236
10.配置dmdcr.ini配置文件

两客户端节点都需要配置

   node1配置

vi /opt/dmdbms/config/dmdcr.ini

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/opt/dmdbms/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0                 #0为节点一
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0  #默认为0,不自动拉起ASM,可设置自动拉起秒数
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/opt/dmdbms/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0   #默认为0,不自动拉起DB,可设置自动拉起秒数
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/opt/dmdbms/config/dsc0_config/dm.ini dcr_ini=/dmdata/dmdcr.ini

node2配置

vi /opt/dmdbms/config/dmdcr.ini

DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/opt/dmdbms/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1                 #1为节点2
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0  #默认为0,不自动拉起ASM,可设置自动拉起秒数
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/opt/dmdbms/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0   #默认为0,不自动拉起DB,可设置自动拉起秒数
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver path=/opt/dmdbms/config/dsc1_config/dm.ini dcr_ini=/dmdata/dmdcr.ini

11.启动CSS服务和ASM服务

#方式一:没有配置自动拉起
#手动启动CSS服务,两节点分别执行
./dmcss DCR_INI=/opt/dmdbms/config/dmdcr.ini

#手动启动CASM服务,两节点分别执行
./dmasmsvr DCR_INI=/opt/dmdbms/config/dmdcr.ini


#方式二:配置了自动拉起
# 两节点分别执行CSS服务启动命令,ASM服务和DB会自动拉起
./dmcss DCR_INI=/opt/dmdbms/config/dmdcr.ini

CSS下 show 看到CSS和ASM 状态为working即为成功

11.使用 dmasmtool 工具创建 DMASM 磁盘组
#选择一个节点执行
./dmasmtool DCR_INI=/opt/dmdbms/config/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
12.配置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
charset =0 #字符集为 GBK
case_sensitive = 1  #大小写敏感
page_size =32
[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /opt/dmdbms/config/dsc0_config
port_num = 5236
mal_host = 172.25.234.13
mal_port = 9236
log_path = +/opt/dmdbms/config/dsc0_log01.log
log_path = +/opt/dmdbms/config/dsc0_log02.log
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /opt/dmdbms/config/dsc1_config
port_num = 5236
mal_host = 172.25.234.18
mal_port = 9236
log_path = +/opt/dmdbms/config/dsc1_log01.log
log_path = +/opt/dmdbms/config/dsc1_log02.log

13.选择一个节点,启动 dminit 工具初始化数据库。

./dminit control=/opt/dmdbms/config/dminit.ini

dminit 执行完成后,生成两个(/dmdata/dsc0_config 和/dmdata/dsc1_config)配置文件 ,将/data/dsc1_config 目录拷贝到另外一个节点相同目录下

scp -r /opt/dmdbms/config/dsc1_config/ shtxjyz@172.25.234.18:/opt/dmdbms/config
14.启动达梦
node1节点启动 dmserver

./dmserver /opt/dmdbms/config/dsc0_config/dm.ini dcr_ini=/opt/dmdbms/config/dmdcr.ini

node2节点启动 dmserver

./dmserver /opt/dmdbms/config/dsc1_config/dm.ini dcr_ini=/opt/dmdbms/config/dmdcr.ini

15.测试

(1)任意一节点登录数据库,select * from v$dsc_ep_info;查看集群状态

(2)再css下输入show查看个集群工作状态

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值