DM达梦数据库集群之分布式集群(MPP)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

DMMPP大规模分布式集群,采用的完全对等无共享体系架构,结合了完全无共享体系的优点,在此基础上又前进了一步,不采用增加主控制节点来协调所有并行处理的主从式方法,而是各个节点完全对等,更进一步简化了体系的实现,也消除了系统可能存在的主节点瓶颈问题。。


一、目录与存储规划

根据系统系统需要规划出需要的目录文件

用途目录路径
数据库软件安装目录/dm/dmdba/dmdbms/
实例安装目录/dm/dmdata
归档日志存放目录/dm/dmarch
备份文件存放目录/dm//dmbak

系统及端口规划

主机名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 连接的端口

二、系统参数相关设置

1.关闭防火墙

代码如下:

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

2.关闭selinux

vi /etc/selinux/config

SELINUX=disabled
SELINUXTYPE=targeted

3.创建安装用户和组

代码如下:

groupadd -g 10001 dinstall
useradd -u 20001 -g dinstall dmdba
passwd dmdba	
设置密码 dmdba

4.修改操作系统资源限制

vim /etc/security/limits.conf:

dmdba soft noproc 65536
dmdba hard noproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba hard core unlimited
dmdba soft core unlimited

修改参数 vi /etc/security/limits.d/20-nproc.conf:

* soft nproc 65536

5.修改内核参数

vi /etc/sysctl.conf

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

使内核参数生效:
sysctl -p

7.创建数据文件存放目录

代码如下:

mkdir -p /dm/dmdba/dmdbms
mkdir -p /dm/dmdata
mkdir -p /dm/dmarch  
mkdir -p /dm/dmbak
chown -R dmdba:dinstall /dm
chmod -R 775  /dm

8.修改用户dmdba环境变量

su - dmdba
vi ~/.bash_profile

export LANG=zh_CN.UTF8
export DM_INSTALL_TMPDIR=/tmp
export DM_HOME=/dm/dmdba/dmdbms
export PATH=$DM_HOME/bin:$PATH:$HOME/bin

三、安装数据库软件

1.上传数据库软件到操作系统

创建软件目录并上传

mkdir -p /dm/soft
上传软件至此目录
挂载
[root@dmdb01 ~]# mount /dm/soft/dm8_setup_rh7_64_ent_8.1.1.48_20191129.iso /mnt/

2.安装数据库软件(两台都要安装)

进入用户dmdba
su - dmdba
cd /mnt

./DMInstall.bin -i
#在命令行界面安装后面加参数-i
请选择安装语言(C/c:中文 E/e:英文) [C/c]:c
解压安装程序......... 
欢迎使用达梦数据库安装程序

是否输入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=大西洋时间(美国和加拿大)
请选择设置时区 [21]:

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

请选择安装目录 [/home/dmdba/dmdbms]:/dm/dmdba/dmdbms
#这里输入规划的软件安装目录
可用空间: 67G
是否确认安装路径(/dm/dmdba/dmdbms)? (Y/y:是 N/n:)  [Y/y]:y

安装前小结
安装位置: /dm/dmdba/dmdbms
所需空间: 1012M
可用空间: 67G
版本信息: 
有效日期: 
安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:):y
2021-06-07 22:08:49 
[INFO] 安装达梦数据库...
2021-06-07 22:08:50 
[INFO] 安装 基础 模块...
2021-06-07 22:08:54 
[INFO] 安装 服务器 模块...
2021-06-07 22:08:54 
[INFO] 安装 客户端 模块...
2021-06-07 22:08:57 
[INFO] 安装 驱动 模块...
2021-06-07 22:08:57 
[INFO] 安装 手册 模块...
2021-06-07 22:08:57 
[INFO] 安装 服务 模块...
2021-06-07 22:08:59 
[INFO] 移动ant日志文件。
2021-06-07 22:09:00 
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/dm/dmdba/dmdbms/script/root/root_installer.sh

安装结束

切换到root用户

[root@dmdb01 dmdbms]# /dm/dmdba/dmdbms/script/root/root_installer.sh
##创建并启动DmAPService服务

3.初始化数据库实例

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

./dminit path=/dm/dmdata/ db_name=dmmpp page_size=32

4.配置相关参数文件

A.配置实例的配置文件 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

B.配置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.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 一致

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

dmmpp.ctl是一个二进制文件,用户不能直接配置,需要先配置dmmpp.ini 。
在其中一个节点新建 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 控制文件复制到另一个节点的实例目录下。

5.启动集群(两台)

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

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

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

6.注册服务(所有节点root用户)

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

cd /dm/dmdba/dmdbms/script/root/

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

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

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

systemctl start DmServicedmmpp

四.验证集群

1.启动集群登录任意节点。

启动集群客户端进入bin目录登录任意节点。
su - dmdba
cd /dm/dmdba/dmdbms/bin/

./disql sysdba/SYSDBA

2.查看验证

在这里插入图片描述

3.DMMPP 分布式使用与测试

插入数据并验证

create table test1 (id int,name varchar(50));
insert into test1 values(1,'a');
insert into test1 values(2,'b');
insert into test1 values(3,'c');
insert into test1 values(4,'d');
insert into test1 values(5,'e');
insert into test1 values(6,'f');
insert into test1 values(7,'g');
insert into test1 values(8,'h');
insert into test1 values(9,'i');
insert into test1 values(10,'j');
commit;
select count(*) from test1;
--查看各个节点的数据
SQL> CALL SP_GET_EP_COUNT ('SYSDBA','TEST1');
####注意:括号里面参数前面是用户名,后面是表名
行号SEQNO N_ROWS
---------- ----------- --------------------
1 0 4
2 1 6

总结

DMMPP中的每一个DM数据库服务器实例作为一个执行节点,简称EP。
客户端可连接任意一个EP节点进行操作,所有EP对客户来说都是对等的,数据根据用户指定的分布规则分布在不同的EP上。
更多信息可前往达梦官网社区
https://eco.dameng.com/docs/zh-cn/start/index.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值