DMMPP两节点环境搭建

3.1 DMMPP两节点环境搭建

1. 前期规划
1.1 系统规划

在这里插入图片描述

1.2 IP与端口规划

在这里插入图片描述

1.3 存储规划

在这里插入图片描述

1.4 数据库初始化参数规划

在这里插入图片描述


2. 安装数据库基础软件

(略)
PS:

DM MPP 各EP使用的DM服务器版本应一致,同时还应注意各 EP所在主机的操作系统位数、大小端模式、
时区及时间设置都应一致,否则可能造成意想不到的错误。


3. 配置环境变量

在这里插入图片描述
环境变量具体配置如下:

su - dmdba
vi .bash_profile
source ~/.bash_profile
#################################################
### Dameng Database Environment Configuration ###
export TMP=/tmp
export TMP_DIR=$TMP
export DM_INSTALL_TMPDIR=$TMP
export DM_HOME=/DMDB/app/DM8
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DM_HOME/bin"
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH:$HOME/bin
umask 022
### end ###

4. 初始化数据库实例

建库两种方式:dbca图形化工具和dminit命令行工具。

此处使用dbca图形化工具建库:
(分别在MPPEP01/MPPEP02主机上创建数据库)
MPPEP01截图:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MPPEP02截图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置mpp环境前停止数据库实例运行

service DmServiceEP01 stop
service DmServiceEP02 stop

5. 编辑MPP环境所需的配置文件
5.1 配置dm.ini

MPPEP01主机の数据库EP01实例dm.ini文件

## 调整dm.ini部分参数 ##
INSTANCE_NAME = EP01
PORT_NUM = 5236
MAL_INI = 1
MPP_INI = 1

MPPEP02主机の数据库EP02实例dm.ini文件

## 调整dm.ini部分参数 ##
INSTANCE_NAME = EP02
PORT_NUM = 5236
MAL_INI = 1
MPP_INI = 1
5.2 配置dmmal.ini

所有EP节点之间的dmmal.ini通讯系统配置文件相同。

[MAL_INST1]
MAL_INST_NAME = EP01
MAL_HOST = 10.10.10.11
MAL_PORT = 5336
MAL_INST_HOST = 192.168.0.11
MAL_INST_PORT = 5236

[MAL_INST2]
MAL_INST_NAME = EP02
MAL_HOST = 10.10.10.12
MAL_PORT = 5336
MAL_INST_HOST = 192.168.0.12
MAL_INST_PORT = 5236

同一份dmmal.ini传到MPPEP02数据目录下

[dmdba@MPPEP01 DMDB]$ scp dmmal.ini 192.168.0.12:/DMDB/data/DMDB/
dmdba@192.168.0.12's password: 
dmmal.ini                                                                                           100%  245     0.2KB/s   00:00    
[dmdba@MPPEP01 DMDB]$ 
5.3 准备dmmpp.ini配置文件(dmpp.ctl)

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

# dmmpp.ini
[SERVICE_NAME1]
MPP_SEQ_NO = 0
MPP_INST_NAME = EP01

[SERVICE_NAME2] 
MPP_SEQ_NO = 1
MPP_INST_NAME = EP02

使用dmctlcvt工具将dmmpp.ini转换为dmmpp.ctl控制文件,然后在各个节点互传此文件,保证所有节点应用同一个dmmpp.ctl.

dmctlcvt TYPE=2 SRC=/DMDB/data/DMDB/dmmpp.ini DEST=/DMDB/data/DMDB/dmmpp.ctl
scp /DMDB/data/DMDB/dmmpp.ctl 192.168.0.12:/DMDB/data/DMDB


[dmdba@MPPEP01 DMDB]$ ls -l dmmpp*
-rw-r--r-- 1 dmdba dinstall 41540 12月  4 15:01 dmmpp.ctl
-rw-r--r-- 1 dmdba dinstall   106 12月  4 15:00 dmmpp.ini
[dmdba@MPPEP01 DMDB]$ scp /DMDB/data/DMDB/dmmpp.ctl 192.168.0.12:/DMDB/data/DMDB
dmdba@192.168.0.12's password: 
dmmpp.ctl                                                                                           100%   41KB  40.6KB/s   00:00    


6. 运行MPP

MPP前置环境配置好后,(不分实例启动的先后顺序)分别启动数据库实例EP01/EP02即可。

### PS: 用户登录任意一个EP节点(又称:主节点)进行正常的数据库操作。
chkconfig --list |grep ^Dm
service DmServiceEP01 start
service DmServiceEP02 start

7. 创建分布表测试

全局连接方式登录mpp (默认项) disql SYSDBA/SYSDBAglobal@localhost:5236
本地连接方式登录mpp disql SYSDBA/SYSDBA
local@localhost:5236

dm_svc.conf配置

TIME_ZONE=(+8:00)
LANGUAGE=(en)
mppsvc=(192.168.0.11:5236,192.168.0.12:5236)
LOGIN_MODE=(1)

在这里插入图片描述
在这里插入图片描述

7.1 创建表空间
## DDL必须在mpp全局模式下执行
create tablespace cqsoftbs 
   datafile '/DMDB/data/DMDB/cqsoftbs01.DBF' size 64;
7.2 创建用户
create user cqsoft identified by "cqsoft_123"  
   diskspace unlimited 
   default tablespace cqsoftbs;
7.3 授权用户
grant resource to cqsoft;
7.4 创建哈希分布表
conn cqsoft/"cqsoft_123" 
create table tab_hash(a1 int, a2 char(10)) distributed by hash(a1);
7.5 创建随机分布表

create table tab_random(a1 int, a2 char(10)) distributed randomly;

7.6 创建范围分布表
create table tab_range(a1 int, a2 char(10)) 
  distributed by range(a1) 
    (
    values equ or less than (100) on EP01,
    values equ or less than (maxvalue) on EP02 
    );    
7.7 创建LIST列表分布表
create table tab_list (a1 int, a2 char(10)) 
  distributed by list(a2)
   (
     values ('男') on EP01,
     values (default) on EP02
   );
   
-- 分布表中实例分布不能重复指定。
values ('女') on EP02,
 values (default) on EP02  
错误[-2212]:分布表指定了相同的实例名[EP02]. 
7.8 创建复制分布表

每个EP节点上此表的数据内容完全相同。不需要从其他节点上获取数据。

create table tab_replicate (a1 int, a2 char(10))  distributed fully;
7.9 哈希分布表的范围水平分区表
create table tab_hash_range_part (a1 int, a2 char(10), a3 char(10))
  partition by range (a1)
   (
     partition p1 values less than (100),
     partition p2 values less than (200),   
     partition p3 values less than (maxvalue)  
   )
 distributed by hash (a1);  

8. 快速数据装载dmfldr

准备数据文本文件tab_list_distr.txt

1,中
2,男
3,男
4,男
5,男
6,男
7,女
8,女
9,女
10,女
11,女
12,女
13,女
14,女
15,女
16,女
17,女
18,女
19,男
20,男

dmfldr控制文件 tab_list_distr.ctl
注意:巨坑数据文件编码,最好先检查下。

OPTIONS (
 CHARACTER_CODE = 'UTF-8'       
)

LOAD DATA
INFILE '/DMDB/soft/tab_list_distr.txt'
BADFILE '/DMDB/soft/fldr.bad'
INTO TABLE tab_list
FIELDS ','
(A1,A2)

dmfldr装载数据

su - dmdba
dmfldr cqsoft/"cqsoft_123"@localhost:5236 control=\'/DMDB/soft/tab_list_distr.ctl\'

全局模式查询表内容:
在这里插入图片描述

本地模式查询表内容:
加粗样式

PS:从以上查询结果得知:mpp利用分布式存储和分布式计算的好处,提高系统并行处理的效率。


9. 停止MPP

*** 注意事项 ***

若在DM MPP系统的运行过程中,某一EP发生故障停机,则整个MPP系统将处于不能DM大规模并行处理MPP正常服务的状态。
当前所有的用户会话会被系统断开,不能进行全局登录,只能进行本地登录。 因此,为了保证MPP系统的高可用性,我们强烈建议采用 DM MPP
与数据守护相结合的部署方案。

#停止mpp同数据库实例正常停止无差别方式,不分先后顺序。即:停止每个EP的数据库实例即可。 service DmServiceEP01 stop service DmServiceEP02 stop


10. 数据分布概念

DM MPP系统的数据分布在各个EP节点,支持表数据的哈希分布、随机分布、复制分布、范围分布、LIST分布类型,用户可根据应用的实际情况为表数据选择合适的分布类型。
1、哈希分布
哈希分布根据表定义中指定一列或多列对数据行计算出一个哈希值,再根据哈希值和哈希映射表,将该行数据分布到映射的节点上。
当表的连接查询中使用的连接键为哈希分布列时,MPP下的查询计划会进行优化,比如可能减少计划中通讯操作符个数、使用索引、对分组计划优化等,减少数据在节点间的分发,提高查询效率。
使用哈希分布时,节点间的数据是否均衡,取决于设置的哈希分布列以及表中的数据情况。
当节点个数变动时,各个节点的数据需要按照新的哈希映射表重新进行分发。

2、随机分布
随机分布表不存在分布列,插入表数据时会按照一定的随机算法,将数据随机均衡分布到各个节点。
随机分布的优点是数据和节点间不存在映射关系。节点个数变动后,如果没有节点数据均衡的要求,可以不用对节点现有的数据进行变动。
一般来说,随机分布对于复杂查询及存在较多的节点间数据分发情况,性能不如哈希分布高。

3、复制分布
复制分布表在每个节点上的本地数据都是一份完整的拷贝,查询该表数据时在任意节点上都能单独完成,不需要从其他节点获取数据。
复制分布一般用于数据量不是很大的表。

4、范围分布
范围分布按照表定义中指定的一个或多个列的列值范围分布项,决定将一行数据存储到MPP的哪个相应 EP上。

5、LIST分布
LIST分布通过指定表中的一个或多个列的离散值集,来确定将一行数据存储到 MPP 的哪个相应EP上。此分布用于表中列值可列举的情况(枚举)。

11. EP数据分布与分区表

DM MPP 同时支持数据分布与分区表相结合,实现了 “ 数据分布后再分区” 。
在数据分布到各节点的基础上,再在单个节点上将数据再次分区,可进一步提高查询性能。
分布的类型和分区的类型可以混合搭配,比如建立哈希分布表的范围水平分区表 。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值