DM8 MPP

环境搭建

1.

准备环境

本例配置一个两节点MPP。两个节点都配置两块网卡,一块接入内部网络交换模块,一块接入到外部交换机。两节点实例名分别为MEVI01和MEVI02,相关的IP、端口等规划见下表。

实例名

MAL_INST_HOST

MAL_INST_PORT

MAL_HOST

MAL

端口

MPP_SEQNO

MEVI01

192.168.18.171

5236

192.168.10.171

5269

0

MEVI02

192.168.18.172

5236

192.168.10.172

5269

1

DM MPP

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

2.

配置参数文件

1)

配置 dm.ini

首先,在 EP01 和 EP02 上分别创建数据库,用户可以使用 DM 的图形化客户端工具“数据库配置助手”或命令行工具 dminit 创建数据库。

在各 EP 上创建数据库时,要求有些初始化参数必须所有 EP 都相同。我们建议各 EP 的数据库初始化参数都保持一致,以免产生错误。

分别对两个实例的 dm.ini 进行配置。

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

INSTANCE_NAME = MEVI01

PORT_NUM = 5236

MAL_INI = 1

MPP_INI = 1

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

INSTANCE_NAME = MEVI02

PORT_NUM = 5236

MAL_INI = 1

MPP_INI = 1

2)

配置 dmmal.ini

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

[MAL_INST1]

MAL_INST_NAME = MEVI01

MAL_HOST = 192.168.10.171

MAL_PORT = 5269

MAL_INST_HOST = 192.168.18.171

MAL_INST_PORT = 5236

[MAL_INST2]

MAL_INST_NAME = MEVI02

MAL_HOST = 192.168.10.172

MAL_PORT = 5269

MAL_INST_HOST = 192.168.18.172

MAL_INST_PORT = 5236

3)

配置 dmmpp.ctl

dmmpp.ctl

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

配置 dmmpp.ini 如下:

[SERVICE_NAME1]

MPP_SEQ_NO = 0

MPP_INST_NAME = MEVI01

[SERVICE_NAME2]

MPP_SEQ_NO = 1

MPP_INST_NAME = MEVI02

使用dmctlcvt 工具将 dmmpp.ini 转换成 dmmpp.ctl,dmctlcvt 工具在 DM 安装目录的“bin”子目录中。转换生成的 dmmpp.ctl 需要放在与 dm.ini 同一个目录。

[dmdba@mpp1 ~]$ dmctlcvt TYPE=2 SRC=/dmdata/MEVI/dmmpp.ini DEST=/dmdata/MEVI/dmmpp.ctl

[dmdba@mpp2 ~]$ dmctlcvt TYPE=2 SRC=/dmdata/MEVI/dmmpp.ini DEST=/dmdata/MEVI/dmmpp.ctl

3.

运行 MPP

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

[dmdba@mpp1 ~]$ DmServiceMEVI01 start

Starting DmServiceMEVI01:                                  [ OK ]

[dmdba@mpp2 ~]$ DmServiceMEVI02 start

Starting DmServiceMEVI02:                                  [ OK ]

4.

建立分布表

DM MPP

支持表数据的哈希分布、随机分布、复制分布、范围分布、LIST 分布类型,用户可根据实际情况选择合适的分布类型。

MPP

的数据分布类型和具体设置在建表时指定,语法如下:

CREATE [[GLOBAL] TEMPORARY] TABLE <

表名定义> ;

<

表结构定义>::= |

<

表结构定义1>::= ( {,} [,{,}]) [ON COMMIT   ROWS] [][] [][] [][]

<

表结构定义2>::= [ON COMMIT   ROWS] [] [] []AS [];

子句>::=DISTRIBUTED[|]

|DISTRIBUTED BY [](<

列名> {,})

|DISTRIBUTED BY RANGE (<

列名> {,})( {,})

|DISTRIBUTED BY LIST (<<

列名> {,}>)( {,})

<

范围分布项>::= VALUES LESS THAN ({,}) ON

|VALUES EQU OR LESS THAN (<

表达式>{,})ON

分布项>::= VALUES ({,}) ON

测试:

#

创建用户和表空间:

#

以下操作在任意EP节点执行,所有EP节点都可见:

SQL> create tablespace MEVI datafile '/dmdata/MEVI/MEVI01.DBF' size 64;

SQL> create user mevi identified by "mevi123456" default tablespace mevi;

SQL> grant RESOURCE,VTI to mevi;

SQL> conn mevi/mevi123456

#

创建哈希分布表 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 mevi01, values less than (maxvalue) on mevi02);

#

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

SQL> create table t_list(c1 int, c2 char(10)) distributed by list (c1) (values (6) on mevi01, values (8) on mevi02);

#

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

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);

在创建分布表时,用户应注意以下一些使用限制:

1)

单机模式下建的分布表和普通表一样,但是不能创建指定实例名的分布表(如范围分布表和LIST分布表);

2)

在MPP模式下创建分布表,如果未指定列则默认为RANDOMLY(随机)分布表;

3)

分布列类型不支持BLOB、CLOB、IMAGE、TEXT、LONGVARCHAR、BIT、BINARY、VARBINARY、LONGVARBINARY、BFILE、时间间隔类型、虚拟列和用户自定义类型;

4)

HASH

分布、RANGE分布、LIST分布允许更新分布列,并支持包含大字段列的表的分布列更新,但包含INSTEAD OF触发器的表、堆表不允许更新分布列;

5)

对于FULLY(复制)分布表,只支持单表查询的更新和删除操作,并且查询项或者条件表达式中都不能包含ROWID伪列表达式;

6)

RANGE

(范围)分布表和LIST(列表)分布表,分布列与分布列值列表必须一致,并且指定的实例名不能重复;

7)

引用约束的引用列和被引用列都必需包含分布列,且分布情况完全相同;

8)

随机分布表不支持UNIQUE索引。

5.

快速数据装载

DM MPP

特别适合于海量数据的存储和处理,因此在应用中常常面临将大量数据从某个或某些历史数据库中装载到MPP系统的需求。为了满足海量数据的快速装载需求,DM提供了快速装载工具dmfldr,能够对DM单机版和MPP系统进行海量数据的快速装载。

dmfldr

为命令行工具,使用时必须指定必要的执行参数。

dmfldr

支持MPP环境下的两种数据加载模式:客户端分发模式和本地分发模式,通过参数MPP_CLIENT进行设置。使用客户端分发模式时,数据在dmfldr客户端进行分发然后直接向指定EP发送数据;使用本地分发模式时,每个EP对应一个dmfldr和一份数据,每个dmfldr只选择出对应本节点的数据并发送,不管其他节点的数据。默认使用客户端分发模式。

6.

停止 MPP 系统

需要停止DM MPP系统的运行时,只需要停止每个EP的DM实例即可,没有特别的顺序要求。

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

7.

MPP

的使用限制

DM MPP

支持绝大多数单机版DM的功能,但在某些小的功能点使用上存在一些使用限制,具体如下:

1)

MPP

环境下,不支持创建SET NULL或SET DEFAULT约束检查规则的引用约束;

2)

MPP

环境下不支持创建外部表、间隔分区表;

3)

MPP

环境下不支持修改表的ADD [COLUMN] []子句;

4)

MPP

环境下不支持创建位图索引、空间索引、数组索引;

5)

MPP

环境下位图连接索引涉及的维度表需FULLY分布;

6)

MPP

环境下不支持索引的ONLINE选项;

7)

MPP

环境下不支持视图的WITH CHECK OPTION操作;

8)

MPP

环境下不支持闪回查询;

9)

MPP

环境下不支持物化视图日志;

10)

MPP

各EP创建数据库时指定的编码格式应相同,否则可能造成乱码问题;

11)

MPP

环境下INI参数MVCC_RETRY_TIMES无效,发生MVCC冲突时直接报错;

12)

MPP

环境下不支持DBMS_JOB包;

13)

MPP

环境下日志辅助表不支持FULLY分布。

mpp新增一个字段_DM8 MPP环境搭建相关推荐

  1. mpp新增一个字段_如何快速新增百万测试数据?

    柠檬班的APP上线之前,需要一百万个学员的信息进行压力测试. 那么数据从哪里来呢?直接找开发帮忙?可能会被他鄙视! 一条一条去insert?嗯,算了下大概需要20年! 不用怕,Happy老师接下来教你 ...

  2. mpp新增一个字段_mybatisplus使用@InsertFill和@UpdateFill注解设置自定义sql对字段自动填充...

    自动填充优化功能 原生mybatisplus只能做%s+1和now两种填充,mybatisplus-plus在插入或更新时对指定字段进行自定义复杂sql填充. 需要在实体类字段上用原生注解@Table ...

  3. 在数据库中如何新增一个字段?

    工作中常会用到:交给测试时,会让交付新增的字段的SQL语句. 如何在数据库中新增一个字段: alter TABLE t_Execution(表名) add FIsModifyQuote(列名) int ...

  4. mysql表中指定位置新增一个字段

    在表test种,新增一个字段:status,并且status字段放在id后面 alter table + 表名 + add + 要添加的字段 字段类型 + (comment +注释+) after + ...

  5. mysql表 新增一个字段

    mysql表中在指定位置新增一个字段 原表结构,表名number 目的: 在字段numid 后新增一个name字段 alter table number add name varchar(100) c ...

  6. Elasticsearch新增一个字段并赋值

    先吐槽几句,最近本博主一直在做数据平台的事,越发觉得做数据平台难,尤其数据量很大的情况下,然而一旦问题解决,又马上觉得峰回路转,蛮有成就感. 下面就介绍一下,在已经存有大量数据的ES索引中(博主处理的 ...

  7. LAMP攻略: LAMP环境搭建,Linux下Apache,MySQL,PHP安装与配置

    之前写过一个red hat 9下的LAMP环境的配置,不过由于版本比较旧,很多不适用了. 所以决定写一个新的LAMP环境搭建与配置教程.本配置是在 CentOS-5.3 下 httpd-2.2.11. ...

  8. Windows下Android开发环境 搭建

    1. 下载Android SDK (1)官网下载解压后即可用. 在http://androidappdocs.appspot.com/sdk/index.html 下选择 合适自己的平台下载,下载后解 ...

  9. Kotlin——初级篇(一):最详细的环境搭建

    众所周知,Kotlin出来已经良久了.Kotlin有着众多优势,不管是用于Android开发中,还是Java开发,都能缩减很大的代码量,大大提高了工作效率.而小生本人也是才从忙碌的个工作中抽身出来,有 ...

  10. 关于在XP操作系统和IIS5.1环境下的MVC环境搭建之IIS错误

    我们通常在XP操作系统中搭建IIS5.1环境下的webform模式应用程序和MVC模式的应用程序,但是我们知道,一个应用程序的环境搭建是首先要面临的一个问题.环境搭建,特别是第一次的搭建,这个看似并不 ...

最新文章

  1. WannaCry的UWP版,哈哈哈
  2. 20160808_安装JDK7u79
  3. ubuntu 16.04 更换国内源(下载源)(阿里源)(换源)
  4. SQL Server数据库备份的镜像
  5. MySQL语法解析和预处理(Parser Preprocessor)
  6. 泛型类有什么作用_3 分钟带你彻底搞懂 Java 泛型背后的秘密
  7. python静默打印pdf_前端静默打印实现 html pdf集合
  8. 【转】Burp Suite详细使用教程-Intruder模块详解
  9. 学成在线-处理常见视频格式avi,mp4,mov,rmvb,flv
  10. DTCC 干货分享:Real Time DaaS - 面向TP+AP业务的数据平台架构
  11. Flink单机部署,slots为0,TaskExecutor akka.tcp://xxx has no more allocated slots for job
  12. pycharm2018破解
  13. 【PHP】获取浏览器HTTP请求header信息、获取服务器HTTP响应header信息
  14. ssd测试遇到的问题
  15. IDEA推送项目到gitee上,拉取gitee项目到IDEA中
  16. 文件服务器定时开关机,服务器设置定时开关机
  17. 跟我一起玩Win32开发(2):完整的开发流程
  18. 【程序源代码】电商网站系统
  19. mysql sdo geometry_SDO_Geometry结构详细说明
  20. 用python编写彩色螺旋线

热门文章

  1. Docker Windows Containers
  2. 手机三十分钟熄屏如何一直亮_oppo如何把自动熄屏永远不熄屏 建议检查手机背光时长设置--...
  3. 删除cortana_如何从Windows 10任务栏中删除Cortana
  4. VB程序启动后如何在通知区域显示
  5. 【深度】“考上北大,我们也和那几亿的农民工人互为镜像”
  6. 排版——用Markdown写Csdn博客
  7. FPGA:实现快速傅里叶变换(FFT)算法
  8. 蓝湖能导入html文件么,axure怎么导入蓝湖
  9. java8-常用stream操作(1)
  10. java基础入门习题答案_传智播客-Java基础入门习题答案