[达梦数据库]达梦MPP集群搭建

1 DM MPP

不适合于高并发操作的 OLTP 类型应用,如果网络是瓶颈,则并不是节点数越多越好。
建议配置千兆或万兆内部网络,对于查询连接中使用频率较高的连接键等可以考虑作为分布列。

2 DM MPP 环境搭建

实例名MAL_INST_HOSTMAL_INST_PORTMAL_HOSTMAL端口MPP_SEQNO
EP01192.168.1.815236172.16.1.8152690
EP02192.168.1.825236172.16.1.8252690

3 EP01 和 EP02 上分别创建数据库

3.1 清空防火墙策略

Centos7:

[root@localhost ~]# systemctl status firewalld 
[root@localhost ~]# systemctl stop firewalld 
[root@localhost ~]# systemctl disable firewalld 

Redhat6:

service iptables stop
chkconfig iptables off
chkconfig --list iptables

3.2 安装用户(建议不要使用 root)

[root@localhost /]# groupadd dinstall -g 1002创建用户组dinstall  
[root@localhost /]# useradd -g dinstall dmdba -u 1002创建属于dinstall用户组的用户dmdba
[root@localhost /]# passwd dmdba
输入一次密码
重新输入一次密码
创建成功 
[root@localhost /]# mkdir /dm/dmdbms
[root@localhost /]# mkdir /dm/dmbak
[root@localhost /]# chown -R dmdba:dinstall /dm
[root@localhost /]# chown -R dmdba:dinstall /dbdata
[root@localhost /]# chown -R dmdba:dinstall /arch

3.3 配置 dmdba 用户环境变量

[dmdba@DM101 ~]$ cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
	. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dm/dmdbms/bin
export DM_HOME=/dm/dmdbms
export PATH=$PATH:$HOME/bin:$DM_HOME/bin:$DM_HOME/script/root:$DM_HOME/tool

3.4 设置最大文件打开数

修改之后重启生效

[root@localhost /]# cp /etc/security/limits.conf /etc/security/limits.conf.bak
[root@localhost /]# vim /etc/security/limits.conf添加以下内容
dmdba  soft      nice       0
dmdba  hard      nice       0
dmdba  soft      as         unlimited
dmdba  hard      as         unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nproc      65536
dmdba  hard      nproc      65536
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited

临时生效:ulimit -n 65536

注意事项(强调):如果有该文件:/etc/security/limits.d/90-nproc.conf ,也需要修改。该文件主要限制 nproc,优先级比 /etc/security/limits.conf 高,即:如果 /etc/security/limits.d/90-nproc.conf 设置了 nproc 参数时,生效的是 /etc/security/limits.d/90-nproc.conf 文件中的限制,而不是 /etc/security/limits.conf 的限制

[root@localhost /]# cp /etc/security/limits.d/90-nproc.conf /etc/security/limits.d/90-nproc.conf.bak
[root@localhost /]# vim /etc/security/limits.d/90-nproc.conf
*          soft    nproc     65536

3.5 调整 Sysctl.conf(必做)

cp /etc/sysctl.conf /etc/sysctl.conf.bak
vim /etc/sysctl.conf

vm.swappiness = 0

fs.file-max = 6815744    
fs.aio-max-nr = 1048576    
kernel.shmall = 2097152    
kernel.shmmax = 2147483648    
kernel.shmmni = 4096    
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500    
net.core.rmem_default = 4194304    
net.core.rmem_max = 4194304    
net.core.wmem_default = 262144    
net.core.wmem_max = 1048576

vm.dirty_background_ratio = 3
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100

:x保存退出
sysctl –p 立即生效

3.6 确认login配置

vim /etc/pam.d/login添加以下内容
session    required        /lib64/security/pam_limits.so
session    required        pam_limits.so

:x保存退出

3.7 关闭 selinux

setenforce 0
vim /etc/sysconfig/selinux

将SELINUX的值由默认的enforcing修改为disabled
:x保存退出重启生效

3.8 命令行安装

./DMInstall.bin –i

3.9 初始化

dminit PATH=/dbdata DB_NAME=EP1 INSTANCE_NAME=MPP1 PORT_NUM=5236

3.10 启动实例

[root@DM8 ~]# cd /dm/dmdbms/script/root/
[root@DM8 ~]# ./dm_service_installer.sh -t dmserver -p dmserver -dm_ini /dbdata/DAMENG/dm.ini

4 配置文件

4.1 dm.ini

分别对两个实例的 dm.ini 进行配置
/dmdba/dmdbms/data/DAMENG
修改MPP1的dm.ini的以下几个参数如下:

INSTANCE_NAME = MPP1
PORT_NUM = 5236
MAL_INI = 1
MPP_INI = 1

修改MPP2的dm.ini的以下几个参数如下:

INSTANCE_NAME = MPP2 
PORT_NUM = 5237
MAL_INI = 1
MPP_INI = 1

4.2 配置 dmmal.ini

为两个MPP配置dmmal.ini如下,配置完全一样,MPP间可互相拷贝。dmmal.ini 与dm.ini放在相同的目录下。

[MAL_INST1]
MAL_INST_NAME = MPP1
MAL_HOST = 172.16.1.81
MAL_PORT = 5269
MAL_INST_HOST = 192.168.1.81
MAL_INST_PORT = 5236
[MAL_INST2]
MAL_INST_NAME = MPP2
MAL_HOST = 172.16.1.82
MAL_PORT = 5270
MAL_INST_HOST = 192.168.1.82
MAL_INST_PORT = 5237

4.3 配置 dmmpp.ctl

dmmpp.ctl是一个二进制文件,用户不能直接配置,需要先配置 dmmpp.ini。
配置 dmmpp.ini 如下:

[SERVICE_NAME1]
 MPP_SEQ_NO = 0
 MPP_INST_NAME = MPP1
 
[SERVICE_NAME2] 
 MPP_SEQ_NO = 1
 MPP_INST_NAME = MPP2

使用 DM 提供的工具 dmctlcvt 将 dmmpp.ini 转换成 dmmpp.ctl,dmctlcvt 工具在 DM 安装目录的“bin”子目录中。转换生成的 dmmpp.ctl 需要放在与 dm.ini 同一个目录。假设 DM 的安装路径为 c 盘根目录,下面的命令将 dmmpp.ini 转换为 dmmpp.ctl,命令中的“TYPE=2”参数表示将文本文件转换成控制文件,也可以使用“TYPE=1”参数进行逆向转换。

/dm/dmdbms/bin/dmctlcvt TYPE=2 SRC=/dm/dmdbms/data/MPP1/dmmpp.ini DEST=/dm/dmdbms/data/MPP1/dmmpp.ctl

将生成的 dmmpp.ctl 拷贝至另一 EP,保证 MPP 系统中所有 EP 的 dmmpp.ctl 完全相同。

5 运行 MPP

经过前面四个步骤,DM MPP 环境已经配置完成了。分别启动 MPP1 和 MPP2 的 DM 数据库实例(顺序不分先后),DM MPP 系统即能正常运行,用户就可以登录任一 EP 进行数据库操作了。

6 创建分区表

创建哈希分布表 T_HASH,分布列为 C1。

SQL> CREATE TABLE T_HASH(C1 INT, C2 CHAR(10))DISTRIBUTED BY HASH (C1);

创建随机分布表 T_RANDOM。

SQL> CREATE TABLE T_RANDOM(C1 INT, C2 CHAR(10))DISTRIBUTED RANDOMLY;

创建复制分布表 T_FULLY。

SQL> CREATE TABLE T_FULLY(C1 INT, C2 CHAR(10))DISTRIBUTED FULLY;

创建范围分布表 T_RANGE,分布列为 C1。

SQL> CREATE TABLE T_RANGE (C1 INT, C2 CHAR(10)) DISTRIBUTED BY RANGE (C1) (VALUES EQU OR LESS THAN (100) ON MPP1, VALUES LESS THAN(MAXVALUE) ON MPP2);

创建 LIST 分布表 T_LIST,分布列为 C1。

SQL> CREATE TABLE T_LIST(C1 INT, C2 CHAR(10)) DISTRIBUTED BY LIST (C1) (VALUES(3) ON MPP1,VALUES(4) ON MPP2);

创建哈希分布表的范围水平分区表。

SQL> CREATE TABLE T_HASH_RANGE_PARTITION
(C1 INT, C2 CHAR(10), C3 CHAR(10))
PARTITION BY RANGE(C1)
(
PARTITION PART_1 VALUES LESS THAN(0) ,
PARTITION PART_2 VALUES LESS THAN(10) ,
PARTITION PART_3 VALUES LESS THAN(100) ,
PARTITION PART_4 VALUES LESS THAN(MAXVALUE)
)
DISTRIBUTED BY HASH (C1);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值