准备工作
关闭防火墙
systemctl disable firewalld.service --now
关闭selinux
vim /etc/selinux/config
SELINUX=DISABLED
修改操作系统资源限制
dmdba soft noproc 65536
dmdba hard noproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba hard core unlimited
dmdba soft core unlimited
修改内核参数
fs.aio-max-nr = 1048576
fs.file-max=6815744
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
vm.overcommit_memory=0
在搭建集群是需要将数据库实例初始化,注册服务,实例正常使用
配置MPP集群参数文件
1.修改第一个实例dm.ini文件
INSTANCE_NAME = dmmpp1
MAL_INI = 1
MPP_INI = 1
修改第二个实例dm.ini文件
INSTANCE_NAME = dmmpp2
MAL_INI = 1
MPP_INI = 1
2.配置mal.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.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 一致
3.配置MPP控制文件dmmpp.ctl
在其中一个节点新建配置文件
vim /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
接着使用dmctl工具将此ini文件转化为ctl文件,该工具位于bin目录下,进入目录执行以下命令
./dmctlcvt TYPE=2 SRC=/dm/dmdata/dmmpp/dmmpp.ini DEST=/dm/dmdata/dmmpp/dmmpp.ctl
两个集群的节点都需要这个文件,通过scp传给其他节点
启动集群
在两个节点启动实例
./dmserver /dm/dmdata/dmmpp/dm.ini
注册服务
./dm_service_installer.sh -t dmserver -p dmmpp -dm_ini /dm/dmdata/dmmpp/dm.ini
验证集群
进入任意节点的实例查询是否搭建成功
./disql sysdba/SYSDBA
select instance_name from v$instance;
DMMPP中的每一个DM数据库服务器实例作为一个执行节点,简称EP。
客户端可连接任意一个EP节点进行操作,所有EP对客户来说都是对等的,数据根据用户指定的分布规则分布在不同的EP上。
更多达梦数据库的使用技巧请见:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台