DM8 MPP集群部署

1.服务器硬件需求

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

硬件

要求

物理内存

>=16 GB

交换区

Swap 空间>=物理内存

/tmp大小

> 1000 MB

网络

物理机器需要 4 个网卡,2 个 public 网卡做 band,2 个 private 网卡做 band

磁盘

根据实际应用系统需要挂载合适大小磁盘

时间服务器

按机房要求配置连接时间服务器

2.操作系统要求

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

3.目录与存储规划

用途

目录路径

备注

数据库软件安装目录

/dm8

可用空间>50 GB

实例安装目录

/dmdata

单独挂载性能最好的磁盘建议 SSD

归档日志存放目录

/dmarch

单独挂载磁盘

备份文件存放目录

/dmbak

单独挂载磁盘

IP地址规划

本例配置一个两节点 MPP。两个节点都配置两块网卡,一块接入内部网络交换模块,一 块接入到外部交换机。两节点实例名分别为 EP01 和 EP02,相关的 IP、端口等规划见下表。

表 4.1 MPP 系统规划

实例名

MAL_INST_HOST

MAL_INST_PORT

MAL_HOST

MAL 端口

MPP_SEQNO

EP01

192.168.175.121

5236

192.168.1.121

7236

0

EP02

192.168.175.122

5236

192.168.1.122

7236

1

节点一:

[root@EP01 ~]# ifconfig

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.175.121  netmask 255.255.255.0  broadcast 192.168.175.255

        inet6 fe80::8d6f:53cd:8676:5a48  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:2e:77:6b  txqueuelen 1000  (Ethernet)

        RX packets 942  bytes 143160 (139.8 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 251  bytes 43530 (42.5 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.1.121  netmask 255.255.255.0  broadcast 192.168.1.255

        inet6 fe80::eec:2fbc:146c:c6fd  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:2e:77:75  txqueuelen 1000  (Ethernet)

        RX packets 825  bytes 123456 (120.5 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 82  bytes 10224 (9.9 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 1000  (Local Loopback)

        RX packets 212  bytes 15600 (15.2 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 212  bytes 15600 (15.2 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

        ether 52:54:00:61:7a:9e  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@EP01 ~]#

节点二:

[root@EP02 ~]# ifconfig

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.175.122  netmask 255.255.255.0  broadcast 192.168.175.255

        inet6 fe80::8d6f:53cd:8676:5a48  prefixlen 64  scopeid 0x20<link>

        inet6 fe80::1dbb:2f9e:d4a2:ae55  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:f7:be:66  txqueuelen 1000  (Ethernet)

        RX packets 551  bytes 56619 (55.2 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 688  bytes 136123 (132.9 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens36: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.1.122  netmask 255.255.255.0  broadcast 192.168.1.255

        inet6 fe80::eec:2fbc:146c:c6fd  prefixlen 64  scopeid 0x20<link>

        inet6 fe80::3ee5:3315:2136:19be  prefixlen 64  scopeid 0x20<link>

        ether 00:0c:29:f7:be:70  txqueuelen 1000  (Ethernet)

        RX packets 346  bytes 33820 (33.0 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 650  bytes 112408 (109.7 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet 127.0.0.1  netmask 255.0.0.0

        inet6 ::1  prefixlen 128  scopeid 0x10<host>

        loop  txqueuelen 1000  (Local Loopback)

        RX packets 212  bytes 15616 (15.2 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 212  bytes 15616 (15.2 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255

        ether 52:54:00:61:7a:9e  txqueuelen 1000  (Ethernet)

        RX packets 0  bytes 0 (0.0 B)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 0  bytes 0 (0.0 B)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@EP02 ~]#

4.新建用户与组

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

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

groupadd dinstall

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

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

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

passwd dmdba

输入密码并确认。

5.用户资源限制

执行以下命令,修改 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

6.用户环境变量

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

su - dmdba

vi .bash_profile

文件末尾添加如下内容:

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

7.防火墙设置

关闭防火墙

8.端口规划

搭建 2 节点大规模并行集群,端口规划如下:(实际中可以按需要修改端口号)

主机名

public ip

private ip

实例名

端口

用途

DMUAT

192.168.175.121

192.168.1.121

dmmpp1

5236

数据库实例 dmmpp1 监听端口

DMUAT

192.168.175.121

192.168.1.121

dmmpp1

7236

MAL 系统监听 TCP 连接的端口

DMUAT2

192.168.175.122

192.168.1.122

dmmpp2

5236

数据库实例 dmmpp2 监听端口

DMUAT2

192.168.175.122

192.168.1.122

dmmpp2

7236

MAL 系统监听 TCP 连接的端口

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

9.安装数据库以及初始化实例

[dmdba@EP01 ~]$ cd /tools/

[dmdba@EP01 tools]$ ls

DMInstall.bin

[dmdba@EP01 tools]$ ./DMInstall.bin -help

获取安装模式参数失败!默认安装模式为图形化安装,命令行安装: ./DMInstall -i ,静默安装: ./DMInstall -q 配置文件路径.

[dmdba@DSC01 tools]$ ./DMInstall.bin -i

请选择安装语言(C/c:中文 E/e:英文) [C/c]:

解压安装程序..........

欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [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]:

安装类型:

1 典型安装

2 服务器

3 客户端

4 自定义

请选择安装类型的数字序号 [1 典型安装]:

所需空间: 1178M

请选择安装目录 [/home/dmdba/dmdbms]:/dm8

可用空间: 30G

是否确认安装路径(/dm8)? (Y/y:是 N/n:否)  [Y/y]:y

安装前小结

安装位置: /dm8

所需空间: 1178M

可用空间: 30G

版本信息:

有效日期:

安装类型: 典型安装

是否确认安装? (Y/y:是 N/n:否):y

2022-04-24 19:26:09

[INFO] 安装达梦数据库...

2022-04-24 19:26:09

[INFO] 安装 基础 模块...

2022-04-24 19:26:12

[INFO] 安装 服务器 模块...

2022-04-24 19:26:12

[INFO] 安装 客户端 模块...

2022-04-24 19:26:15

[INFO] 安装 驱动 模块...

2022-04-24 19:26:17

[INFO] 安装 手册 模块...

2022-04-24 19:26:17

[INFO] 安装 服务 模块...

2022-04-24 19:26:18

[INFO] 移动日志文件。

2022-04-24 19:26:18

[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:

/dm8/script/root/root_installer.sh

安装结束

[dmdba@DSC01 tools]$

[root@DSC01 ~]# /dm8/script/root/root_installer.sh

移动 /dm8/bin/dm_svc.conf 到/etc目录

修改服务器权限

创建DmAPService服务

Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.

创建服务(DmAPService)完成

启动DmAPService服务

[root@DSC01 ~]#

节点2数据库的安装,也是一样的方法

软件安装目录为 /dm8,实例初始化目录 /dm8/data/DAMENG,初始化脚本如下:

cd /dm8/bin

./dminit path=/dm8/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMUAT INSTANCE_NAME=DMUAT PORT_NUM=5236

10.修改实例的配置文件 dm.ini

修改实例的 dm.ini 文件参数,执行以下命令:

vi /dm8/data/DAMENG/dm.ini

EP01 实例修改以下参数值:

INSTANCE_NAME = EP01
MAL_INI = 1
MPP_INI = 1

EP02 实例修改以下参数值:

INSTANCE_NAME = EP02
MAL_INI = 1
MPP_INI = 1

11.配置MAL系统配置文件dmmal.ini

为所有EP节点 配置 dmmal.ini,配置完全一样,EP 间可互相拷贝。dmmal.ini 与

dm.ini放在相同目录下,如果没有dmmal.ini文件则新建一个。

执行以下命令,在实例目录下新建文件 dmmal.ini

vi /dm8/data/DAMENG/dmmal.ini

所有节点文件内容要相同。

节点1:

[dmdba@EP01 DAMENG]$ pwd

/dm8/data/DAMENG

[dmdba@EP01 DAMENG]$ cat dmmal.ini

MAL_CHECK_INTERVAL   = 5

MAL_CONN_FAIL_INTERVAL  = 5

[MAL_INST1]

  MAL_INST_NAME = EP01

  MAL_HOST     = 192.168.1.121

  MAL_PORT     = 7236

  MAL_INST_HOST   = 192.168.175.121

  MAL_INST_PORT   = 5236

[MAL_INST2]

  MAL_INST_NAME = EP02

  MAL_HOST      = 192.168.1.122

  MAL_PORT          = 7236

  MAL_INST_HOST         = 192.168.175.122

  MAL_INST_PORT         = 5236

[dmdba@EP01 DAMENG]$

节点2:

[dmdba@EP02 DAMENG]$ pwd

/dm8/data/DAMENG

[dmdba@EP02 DAMENG]$ cat dmmal.ini

MAL_CHECK_INTERVAL   = 5

MAL_CONN_FAIL_INTERVAL  = 5

[MAL_INST1]

  MAL_INST_NAME = EP01

  MAL_HOST     = 192.168.1.121

  MAL_PORT     = 7236

  MAL_INST_HOST   = 192.168.175.121

  MAL_INST_PORT   = 5236

[MAL_INST2]

  MAL_INST_NAME = EP02

  MAL_HOST      = 192.168.1.122

  MAL_PORT          = 7236

  MAL_INST_HOST         = 192.168.175.122

  MAL_INST_PORT         = 5236

[dmdba@EP02 DAMENG]$

12.配置 MPP 控制文件 dmmpp.ctl

dmmpp.ctl是一个二进制文件,用户不能直接配置,需要先配置dmmpp.ini,然后通过命令转换而成。

使用 DM 提供的工具 dmctlcvt 将 dmmpp.ini 转换成 dmmpp.ctl,dmctlcvt 工具 在 DM 安装目录的“bin”子目录中。

转换生成的 dmmpp.ctl 需要放在与 dm.ini 同一个目录

假设 DM 的安装路径为 c 盘 根目录,下面的命令将 dmmpp.ini 转换为 dmmpp.ctl,命令中的“TYPE=2”参数表示

将文本文件转换成控制文件,也可以使用“TYPE=1”参数进行逆向转换。

在其中一个节点新建 dmmpp.ini 配置文件,执行以下命令:

vi /dm8/data/DAMENG/dmmpp.ini

添加以下内容:

MAL_CHECK_INTERVAL   = 5

MAL_CONN_FAIL_INTERVAL  = 5

[SERVICE_NAME1]
 MPP_SEQ_NO = 0
 MPP_INST_NAME = EP01
[SERVICE_NAME2]
 MPP_SEQ_NO = 1
 MPP_INST_NAME = EP02

使用 dmctlcvt 工具将 dmmpp.ini 文件转化为 dmmpp.ctl,在数据库安装的 bin 目录下执行以下命令:

./dmctlcvt TYPE=2 SRC=/home/dm8/data/DAMENG/dmmpp.ini DEST=/dm8/data/DAMENG/dmmpp.ctl

[dmdba@EP01 DAMENG]$ dmctlcvt TYPE=2 SRC=/dm8/data/DAMENG/dmmpp.ini DEST=/dm8/data/DAMENG/dmmpp.ctl

DMCTLCVT V8

convert txt to ctl success!

[dmdba@EP01 DAMENG]$ ls -ltr

总用量 820412

drwxr-xr-x 2 dmdba dinstall         6 4月  21 18:14 bak

-rw-r--r-- 1 dmdba dinstall       481 4月  21 18:14 sqllog.ini

-rw-r--r-- 1 dmdba dinstall       633 4月  21 18:14 dm_service.prikey

-rw-r--r-- 1 dmdba dinstall 134217728 4月  21 18:14 MAIN.DBF

drwxr-xr-x 2 dmdba dinstall         6 4月  21 18:14 HMAIN

-rw-r--r-- 1 dmdba dinstall       847 4月  21 18:14 dminit20220421181404.log

-rw-r--r-- 1 dmdba dinstall  10485760 4月  21 18:16 TEMP.DBF

-rw-r--r-- 1 dmdba dinstall 268435456 4月  21 18:16 DAMENG02.log

drwxr-xr-x 2 dmdba dinstall         6 4月  21 18:16 trace

-rw-r--r-- 1 dmdba dinstall        12 4月  21 18:16 rep_conflict.log

-rw-r--r-- 1 dmdba dinstall      5120 4月  21 18:16 dm.ctl

drwxr-xr-x 2 dmdba dinstall        78 4月  21 18:16 ctl_bak

-rw-r--r-- 1 dmdba dinstall     51176 4月  21 18:18 dm.ini.bak20220421

-rw-r--r-- 1 dmdba dinstall  24117248 4月  21 18:21 SYSTEM.DBF

-rw-r--r-- 1 dmdba dinstall 134217728 4月  21 18:21 ROLL.DBF

-rw-r--r-- 1 dmdba dinstall     51176 4月  21 18:25 dm.ini

-rw-r--r-- 1 dmdba dinstall       369 4月  21 19:05 dmmal.ini

-rw-r--r-- 1 dmdba dinstall       105 4月  21 19:08 dmmpp.ini

-rw-r--r-- 1 dmdba dinstall 268435456 4月  21 19:11 DAMENG01.log

-rw-r--r-- 1 dmdba dinstall     41540 4月  21 19:11 dmmpp.ctl

[dmdba@EP01 DAMENG]$

将生成的 dmmpp.ctl 控制文件复制到另一个节点的实例目录下,保证MPP系统中所有EP的dmmpp.ctl完全相同。

13.启动集群

正常启动实例即可,在数据库安装的 bin 目录下执行以下命令:

cd /dm8/bin

./dmserver /home/dmdba/dmdbms/dmmpp/dm.ini

14.注册服务

root 用户下切换到 /dm8/script/root/,执行以下命令:

cd /dm8/script/root/

脚本注册服务,执行以下命令:

./dm_service_installer.sh -t dmserver -p dmmpp -dm_ini /dm8/data/DAMENG /dm.ini

EP01:

[root@EP01 root]# pwd

/dm8/script/root

[root@EP01 root]# ls -ltr

总用量 44

-rwxr-xr-x 1 dmdba dinstall  9501 4月  20 18:52 dm_service_uninstaller.sh

-rwxr-xr-x 1 dmdba dinstall 27256 4月  20 18:52 dm_service_installer.sh

-rwxr-xr-x 1 dmdba dinstall   579 4月  20 18:52 root_installer.sh

[root@EP01 root]# ./dm_service_installer.sh -t dmserver -p dmmpp -dm_ini /dm8/data/DAMENG/dm.ini

Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedmmpp.service to /usr/lib/systemd/system/DmServicedmmpp.service.

创建服务(DmServicedmmpp)完成

[root@EP01 root]#

EP02:

[root@EP02 root]# pwd

/dm8/script/root

[root@EP02 root]# ls

dm_service_installer.sh  dm_service_uninstaller.sh  root_installer.sh

[root@EP02 root]# ./dm_service_installer.sh -t dmserver -p dmmpp -dm_ini /dm8/data/DAMENG/dm.ini

Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedmmpp.service to /usr/lib/systemd/system/DmServicedmmpp.service.

创建服务(DmServicedmmpp)完成

[root@EP02 root]#

以服务方式启动实例,执行以下命令:

systemctl start DmServicedmmpp.service

注意:实验过程中通过这个命令启停mpp都不行,报错

15.验证集群

客户端登录任意节点。

更多内容请查看达梦官方网站:https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值