大规模并行集群规范化部署

目录

1.服务器硬件需求

2.操作系统要求

2.1.操作系统版本安装

2.2.目录与存储规划

2.3.用户与组

2.4.用户资源限制

2.5.用户环境变量

2.6.防火墙设置

2.6.1.端口规划

2.6.2.关闭防火墙

4.安装数据库

4.1.使用root用户挂载数据库软件的iso文件

4.2.使用dmdba用户安装软件

5.初始化数据库

5.1.配置实例的配置文件 dm.ini

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

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

6.启动集群

7.注册服务

8.验证集群

9.参数优化

11.重启集群

12.定制备份策略

13.客户端连接集群


1.服务器硬件需求

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

硬件

要求

物理内存

>=4GB

交换区

8192M

/tmp大小

> 1000 MB

网络

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

磁盘

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

时间服务器

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

2.操作系统要求

2.1.操作系统版本安装

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

2.2.目录与存储规划

用途

目录路径

备注

数据库软件安装目录

/dm/dmdbms/dm8

可用空间>50 GB

实例安装目录

/dm/dmdata

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

归档日志存放目录

/dm/dmarch

单独挂载磁盘

备份文件存放目录

/dm/dmback

单独挂载磁盘

2.3.用户与组

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

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

groupadd dinstall

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

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

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

passwd dmdba

输入密码并确认。

2.4.用户资源限制

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

2.5.用户环境变量

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

 vi /home/dmdba/.bash_profile

文件末尾添加如下内容:

export DM_HOME=/dm/dmdbms/dm8

export PATH=$PATH:$DM_HOME/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

2.6.防火墙设置

2.6.1.端口规划

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

主机名

public ip

private ip

实例名

端口

用途

dmdsc1

192.168.25.94

10.10.10.94

dmmpp1

5236

数据库实例 dmmpp1 监听端口

dmdsc1

192.168.25.94

10.10.10.94

dmmpp1

7236

MAL 系统监听 TCP 连接的端口

dmdsc2

192.168.25.95

10.10.10.95

dmmpp2

5236

数据库实例 dmmpp2 监听端口

dmdsc2

192.168.25.95

10.10.10.95

dmmpp2

7236

MAL 系统监听 TCP 连接的端口

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

2.6.2.关闭防火墙

设置系统安全策略

SELinux

echo "SELINUX=disabled" > /etc/selinux/config

echo "SELINUXTYPE=targeted" >> /etc/selinux/config

cat /etc/selinux/config

setenforce 0

关闭防火墙

systemctl status firewalld.service

systemctl stop firewalld.service

systemctl disable firewalld.service

4.安装数据库

4.1.使用root用户挂载数据库软件的iso文件

mount -t cifs -o username="administrator",password="best_7890",gid="66000",uid="66000" //192.168.27.253/H /mnt

mkdir -p /dmiso

mount -oloop dm8_20211112_x86_rh6_64_ent_8.1.2.94.iso /dmiso

4.2.使用dmdba用户安装软件

 su - dmdba

执行以下命令,切换到 /dmiso 目录下

cd /dmiso

执行 DMInstall.bin 文件开始安装,选择【-i】参数以命令行方式安装。

 ./DMInstall.bin -i

选择安装程序的语言 c/C 为中文,e/E 为英文。

提示是否安装 key 文件,输入 N 跳过。

选择时区,21 即东 8 区。

选择安装类型,默认典型安装(包含所有内容)。

选择软件安装目录,:  /dm/dmdbms/dm8

确认安装

安装完成提示使用root执行脚本:

/dm/dmdbms/dm8/script/root/root_installer.sh

[root@dm94 ~]# /dm/dmdbms/dm8/script/root/root_installer.sh

移动 /dm/dmdbms/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@dm94 ~]#

5.初始化数据库

软件安装目录为  /dm/dmdbms/dm8 ,实例初始化目录  /dm/dmdata/dmmpp ,初始化脚本如下:

./dminit path=/dm/dmdata page_size=32  extent_size=32  case_sensitive=1 LENGTH_IN_CHAR=0 charset=0 log_size=2048 db_name=dmmpp instance_name=dmmpp SYSDBA_PWD="dameng123" SYSAUDITOR_PWD="dameng123"

5.1.配置实例的配置文件 dm.ini

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

vi /dm/dmdata/dmmpp/dm.ini

dmmpp1 实例修改以下参数值:

INSTANCE_NAME = dmmpp1

MAL_INI = 1

MPP_INI = 1

dmmpp2 实例修改以下参数值:

INSTANCE_NAME = dmmpp2

MAL_INI = 1

MPP_INI = 1

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

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

vi /dm/dmdata/dmmpp/dmmal.ini

所有节点文件内容要相同

MAL_CHECK_INTERVAL   = 5          #MAL 链路检测时间间隔

MAL_CONN_FAIL_INTERVAL  = 5       #判定 MAL 链路断开的时间

[MAL_INST1]

  MAL_INST_NAME = dmmpp1          # dm.ini 中的 INSTANCE_NAME 一致

  MAL_HOST     = 10.10.10.94      #MAL 系统监听 TCP 内部网络 IP

  MAL_PORT     = 7236             #MAL 系统监听 TCP 连接的端口

  MAL_INST_HOST   = 192.168.25.94 #实例的对外服务 IP 地址

  MAL_INST_PORT   = 5236          # dm.ini 中的 PORT_NUM 一致

[MAL_INST2]

  MAL_INST_NAME = dmmpp2          # dm.ini 中的 INSTANCE_NAME 一致

  MAL_HOST      = 10.10.10.95     # MAL 系统监听 TCP 内部网络 IP

  MAL_PORT          = 7236        #MAL 系统监听 TCP 连接的端口

  MAL_INST_HOST         = 192.168.25.95   #实例的对外服务 IP 地址

  MAL_INST_PORT         = 5236            # dm.ini 中的 PORT_NUM 一致

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

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

vi /dm/dmdata/dmmpp/dmmpp.ini

添加以下内容:

[SERVICE_NAME1]

 MPP_SEQ_NO = 0

 MPP_INST_NAME = dmmpp1

[SERVICE_NAME2]

 MPP_SEQ_NO = 1

 MPP_INST_NAME = dmmpp2

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

./dmctlcvt TYPE=2 SRC=/dm/dmdata/dmmpp/dmmpp.ini DEST=/dm/dmdata/dmmpp/dmmpp.ctl

将生成的  dmmpp.ctl  控制文件复制到另一个节点的实例目录下。

[dmdba@dm94 dmmpp]$ scp dmmpp.ctl 192.168.25.95:/dm/dmdata/dmmpp/

dmdba@192.168.25.95's password:

dmmpp.ctl                                                                                                                              100%   41KB  11.6MB/s   00:00

[dmdba@dm94 dmmpp]$

6.启动集群

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

./dmserver /dm/dmdata/dmmpp/dm.ini

[dmdba@dm94 dmmpp]$ dmserver /dm/dmdata/dmmpp/dm.ini

file dm.key not found, use default license!

version info: develop

DM Database Server x64 V8 1-2-94-21.11.11-150650-10038-ENT  startup...

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

Database mode = 0, oguid = 0

License will expire on 2022-11-11

file lsn: 0

ndct db load finished

ndct second level fill fast pool finished

ndct third level fill fast pool finished

ndct fill fast pool finished

iid page's trxid[1002]

NEXT TRX ID = 1003

pseg_collect_mgr_items, total collect 0 active_trxs, 0 cmt_trxs, 0 pre_cmt_trxs, 0 active_pages, 0 cmt_pages, 0 pre_cmt_pages, 0 mgr pages, 0 mgr recs!

iid page's trxid[2004]

NEXT TRX ID = 3006.

total 0 active crash trx, pseg_crash_trx_rollback sys_only(0) begin ...

pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.

pseg_crash_trx_rollback end

pseg recv finished

nsvr_startup end.

aud sys init success.

aud rt sys init success.

trx: 3006 purged 1 pages

trx: 3025 purged 1 pages

trx: 3026 purged 1 pages

trx: 3027 purged 1 pages

trx: 3028 purged 1 pages

trx: 3029 purged 1 pages

trx: 3039 purged 1 pages

trx: 3159 purged 1 pages

trx: 3172 purged 1 pages

trx: 3173 purged 1 pages

trx: 3174 purged 1 pages

trx: 3175 purged 1 pages

trx: 3176 purged 1 pages

trx: 3178 purged 1 pages

trx: 3179 purged 1 pages

trx: 3181 purged 1 pages

trx: 3183 purged 1 pages

trx: 3189 purged 1 pages

trx: 3195 purged 1 pages

trx: 3205 purged 1 pages

trx: 3218 purged 1 pages

trx: 3219 purged 1 pages

trx: 3220 purged 1 pages

trx: 3221 purged 1 pages

trx: 3233 purged 1 pages

trx: 3235 purged 1 pages

trx: 3236 purged 1 pages

trx: 3237 purged 1 pages

trx: 3282 purged 6 pages

trx: 3309 purged 1 pages

trx: 3310 purged 1 pages

trx: 3311 purged 1 pages

trx: 3312 purged 1 pages

trx: 3318 purged 1 pages

trx: 3320 purged 1 pages

trx: 3322 purged 1 pages

trx: 3327 purged 1 pages

trx: 3332 purged 1 pages

trx: 3337 purged 1 pages

trx: 3339 purged 1 pages

trx: 3342 purged 1 pages

trx: 3344 purged 1 pages

trx: 3350 purged 1 pages

trx: 3351 purged 1 pages

trx: 3500 purged 1 pages

trx: 3512 purged 1 pages

trx: 3517 purged 1 pages

trx: 3522 purged 1 pages

trx: 3541 purged 8 pages

trx: 3566 purged 1 pages

systables desc init success.

ndct_db_load_info success.

nsvr_process_before_open begin.

nsvr_process_before_open success.

total 0 active crash trx, pseg_crash_trx_rollback sys_only(0) begin ...

pseg_crash_trx_rollback end, total 0 active crash trx, include 0 empty_trxs, 0 empty_pages which only need to delete mgr recs.

pseg_crash_trx_rollback end

SYSTEM IS READY.

注意

需要所有节点都启动后,集群才能访问。

7.注册服务

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

cd /dm/dmdbms/dm8/script/root/

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

./dm_service_installer.sh -t dmserver -p dmmpp -dm_ini /dm/dmdata/dmmpp/dm.ini

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

systemctl start DmServicedmmpp

8.验证集群

客户端登录任意节点。

[dmdba@dm94 ~]$ disql sysdba/dameng123

服务器[LOCALHOST:5236]:处于普通打开状态

登录使用时间 : 5.443(ms)

disql V8

SQL> select instance_name from v$instance;

行号     INSTANCE_NAME

---------- -------------

1          DMMPP1

2          DMMPP2

已用时间: 8.847(毫秒). 执行号:194732.

SQL>

查询可以看到所有节点实例信息。

9.参数优化

集群部署完成后,需要优化 dm.ini 参数,主备库都需要修改,参数值优化详见参数优化部分。

参考链接:单机规范化部署 | 达梦技术文档 (dameng.com)

11.重启集群

所有节点重启实例,执行以下命令:

systemctl restart DmServicedmmpp

12.定制备份策略

上线前必须规划好备份策略,可以使用 DM 作业系统,定时备份。

根据应用需求,定制备份策略如下所示:

备份类型

备份周期

备份时间

全量备份

每周

每周五 23

增量备份

每天

除周五外每天 23

删除备份

每天

每天 23 30

备份参考地址:单机规范化部署 | 达梦技术文档 (dameng.com)

13.客户端连接集群

客户端主机上需要配置 dm_svc.conf 文件(未安装 DM 数据库的机器新建即可),文件路径:

32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;

64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;

32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;

Linux 平台下,此文件位于/etc 目录。

文件内容:

# #开头的行表示是注释

# 全局配置区

DMMPP=(192.168.25.94:5236,192.168.25.95:5236)

TIME_ZONE=(+480) #表示+8:00时区

LOGIN_ENCRYPT=(0)

DIRECT=(Y)

# 服务配置区

[DMMPP]

TIME_ZONE=(+540) #表示+9:00时区

#LOGIN_MODE=(2)

SWITCH_TIME=(3) #在服务器之间切换的次数

SWITCH_INTERVAL=(10) #在服务器之间切换的时间间隔,单位为毫秒

客户端程序连接数据库时,需要指定 IP 端口处替换为 服务名 即可,例如: disql SYSDBA/dameng123@DMMPP 

[dmdba@dm94 bin]$ ./disql SYSDBA/dameng123@DMMPP

服务器[192.168.25.95:5236]:处于普通打开状态

登录使用时间 : 3.660(ms)

disql V8

SQL>

注意

当修改了 dm_svc.conf 内容后,需要重启客户端程序,修改的配置才能生效。

24小时免费服务热线:400 991 6599
达梦技术社区:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太行山有西瓜汁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值