0
点赞
收藏
分享

微信扫一扫

DMMPP 集群搭建

小_北_爸 2022-05-04 阅读 130

服务器硬件需求

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

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

操作系统要求

操作系统版本安装

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

目录与存储规划

用途目录路径备注
数据库软件安装目录/home/dmdba/dmdbms可用空间>50 GB
实例安装目录/dmdata单独挂载性能最好的磁盘建议 SSD
归档日志存放目录/dmarch单独挂载磁盘
备份文件存放目录/dmbak单独挂载磁盘

防火墙设置

端口规划

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

主机名public ipprivate ip实例名端口用途
dmdsc1192.168.56.1110.0.0.11dmmpp15236数据库实例 dmmpp1 监听端口
dmdsc1192.168.56.1110.0.0.11dmmpp17236MAL 系统监听 TCP 连接的端口
dmdsc2192.168.56.1210.0.0.12dmmpp25236数据库实例 dmmpp2 监听端口
dmdsc2192.168.56.1210.0.0.12dmmpp27236MAL 系统监听 TCP 连接的端口

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

 

件安装目录为 /home/dmdba/dmdbms,实例初始化目录 /home/dmdba/dmdbms/dmmpp,初始化脚本如下:

Copy

./dminit path=/home/dmdba/dmdbms db_name=dmmpp page_size=32

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

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

Copy

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

dmmpp1 实例修改以下参数值:

Copy

INSTANCE_NAME = dmmpp1
MAL_INI = 1
MPP_INI = 1

dmmpp2 实例修改以下参数值:

Copy

INSTANCE_NAME = dmmpp2
MAL_INI = 1
MPP_INI = 1

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

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

Copy

vi /home/dmdba/dmdbms/dmmpp/dmmal.ini

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

Copy

MAL_CHECK_INTERVAL   = 5  #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL  = 5  #判定 MAL 链路断开的时间
[MAL_INST1]
  MAL_INST_NAME = dmmpp1 #与 dm.ini 中的 INSTANCE_NAME 一致
  MAL_HOST     = 10.0.0.11  #MAL 系统监听 TCP 内部网络 IP
  MAL_PORT     = 7236 #MAL 系统监听 TCP 连接的端口
  MAL_INST_HOST   = 192.168.56.11  #实例的对外服务 IP 地址
  MAL_INST_PORT   = 5236 #与 dm.ini 中的 PORT_NUM 一致
[MAL_INST2]
  MAL_INST_NAME = dmmpp2 #与 dm.ini 中的 INSTANCE_NAME 一致
  MAL_HOST      = 10.0.0.12  # MAL 系统监听 TCP 内部网络 IP
  MAL_PORT          = 7236 #MAL 系统监听 TCP 连接的端口
  MAL_INST_HOST         = 192.168.56.12  #实例的对外服务 IP 地址
  MAL_INST_PORT         = 5236 #与 dm.ini 中的 PORT_NUM 一致

配置 MPP 控制文件 dmmpp.ctl

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

Copy

vi /home/dmdba/dmdbms/dmmpp/dmmpp.ini

添加以下内容:

Copy

[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 目录下执行以下命令:

Copy

./dmctlcvt TYPE=2 SRC=/home/dmdba/dmdbms/dmmpp/dmmpp.ini DEST=/home/dmdba/dmdbms/dmmpp/dmmpp.ctl

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

启动集群

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

Copy

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

注册服务

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

Copy

cd /home/dmdba/dmdbms/script/root/

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

Copy

./dm_service_installer.sh -t dmserver -p dmmpp -dm_ini /home/dmdba/dmdbms/dmmpp/dm.ini

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

Copy

systemctl start DmServicedmmpp

验证集群

客户端登录任意节点。

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

参数优化

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

重启集群

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

Copy

systemctl restart DmServicedmmpp

定制备份策略

备份与单机部署相同,详见定制备份策略部分。

客户端连接集群

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

  1. 32 位的 DM 安装在 Win32 操作平台下,此文件位于 %SystemRoot%\system32 目录;
  2. 64 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\system32 目录;
  3. 32 位的 DM 安装在 Win64 操作平台下,此文件位于 %SystemRoot%\SysWOW64 目录;
  4. 在 Linux 平台下,此文件位于/etc 目录。

文件内容如下:

Copy

# 以#开头的行表示是注释
# 全局配置区
DMMPP=(192.168.56.11:5236,192.168.56.12: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/SYSDBA@DMMPP

 

举报

相关推荐

0 条评论