MPP集群的搭建

目录

1 MPP搭建

1.1 集群规划

1.2 配置dm.ini 

 1.3 配置dmmal.ini 

1.4 配置dmmpp.ctl

1.5 验证是否搭建成功

2 MPP动态扩容

2.1 禁止系统DDL操作

2.2 克隆数据库

2.3 以mount打开EP2节点 

2.4 动态增加MAL 

2.5 增加MPP节点,设置表标记

3 数据重分发

3.1 哈希分布表数据重分发


1 MPP搭建

1.1 集群规划

实例名

MAL_INST_HOST

MAL_INST_PORT

MAL_HOST

MAL端口

MPP_SEQNO

EP0

192.168.61.198

5236

192.168.61.198

5269

0

EP1

192.168.61.199

5237

192.168.61.199

5270

1

1.2 配置dm.ini 

        利用dminit对两个数据库进行初始化。

        1) EP0

./dminit path=/dm8/data instance_name=EP0 port_num=5236

MAL_INI = 1

MPP_INI = 1

         2)EP1

./dminit path=/dm8/data instance_name=EP0 port_num=5237 
MAL_INI = 1
MPP_INI = 1

 1.3 配置dmmal.ini 

配置远程配置文件,两个节点配置相同。

[MAL_INST1] 
MAL_INST_NAME = EP0
MAL_HOST = 192.168.61.198
MAL_PORT = 5269 
MAL_INST_HOST = 192.168.61.198 
MAL_INST_PORT = 5236 
[MAL_INST2] 
MAL_INST_NAME = EP1 
MAL_HOST = 192.168.61.199
MAL_PORT = 5270 
MAL_INST_HOST = 192.168.61.199
MAL_INST_PORT = 5237

1.4 配置dmmpp.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。Type=2为文本文件装换为控制文件,type=1为控制文件装换为文本文件。
./dmctlcvt type=2 SRC=/dm8/data/DAMENG/dmmpp.ini DEST=/dm8/data/DAMENG/dmmpp.ctl 

1.5 验证是否搭建成功

        查看两节点状态是否为ok:

 SELECT * FROM V$MPP_CFG_ITEM WHERE SF_GET_EP_SEQNO(ROWID) = SF_GET_SELF_EP_SEQNO();

         节点1创建表t1:

         节点2查询表数据:

         至此说明,已经搭建成功。

2 MPP动态扩容

2.1 禁止系统DDL操作

        全局登录MPP系统任一节点,执行下面的语句禁止系统的DDL操作。

        SP_DDL_FORBIDEN(1);

2.2 克隆数据库

        关闭MPP节点,进行脱机备份数据。

        1)脱机备份

RMAN>backup database '/dm8/data/DAMENG/dm.ini' ddl_clone backupset 'clone';

        2)脱机还原

        将备份数据拷贝到EP2节点。

RMAN>RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET ‘/dm8/data/DAMENG/bak/clone’; 
RMAN>RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/DAMENG/bak/clone'; 
RMAN>RECOVER DATABASE ‘/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;

         3)配置dmmal.ini

#配置第三节点dmmal.ini

[MAL_INST1]

MAL_INST_NAME = EP0

MAL_HOST = 192.168.61.198

MAL_PORT = 5269

MAL_INST_HOST = 192.168.61.198

MAL_INST_PORT = 5236

[MAL_INST2]

MAL_INST_NAME = EP1

MAL_HOST = 192.168.61.199

MAL_PORT = 5270

MAL_INST_HOST = 192.168.61.199

MAL_INST_PORT = 5237

[MAL_INST3]

MAL_INST_NAME = EP2

MAL_HOST = 192.168.61.200

MAL_PORT = 5271

MAL_INST_HOST = 192.168.61.200

MAL_INST_PORT = 5236

2.3 以mount打开EP2节点 

        登录之后执行如下命令:

#紧张DDL操作
SP_DDL_FORBIDEN(1);
ALTER DATABASE OPEN FORCE;

2.4 动态增加MAL 

        分别本地登录MPP系统中原有的每个节点,执行下列语句为每个原有节点的MAL配置增加新增节点信息。

--设置本地MAL配置状态 
SF_MAL_CONFIG(1,0); 
--增加MAL配置 
SF_MAL_INST_ADD('MAL_INST3','EP2','192.168.61.200',5271, '192.168.61.200',5236);
 --应用MAL配置 
SF_MAL_CONFIG_APPLY(); 
--重置本地MAL配置状态 
SF_MAL_CONFIG(0,0);

2.5 增加MPP节点,设置表标记

        全局登录MPP系统原有节点中的任一个,执行下列语句。

--广播方式设置MAL配置状态 
SF_MAL_CONFIG(1,1); 
--保存老的HASHMAP 
SF_MPP_SAVE_HASHMAP(); 
--增加MPP实例EP2 
SF_MPP_INST_ADD('service_name3', 'EP2');


增加节点配置后,之前的连接失效,需要断开连接,重新全局登录,然后执行下列语句。
--设置分布表的重分发状态 
SF_MPP_REDIS_STATE_SET_ALL(); 
--广播方式重置MAL配置状态 
SF_MAL_CONFIG(0,1); 
--增加节点之后,可以放开DDL限制 
SP_DDL_FORBIDEN(0);

3 数据重分发

3.1 哈希分布表数据重分发

        创建的T1都是哈希分布表,其中T1为普通表,下面以这个表为例进行哈希分布表的数据重分发。

        1)新增节点

        2)置本 session 可对表进行重分发(插入和删除),执行如下语句:

        SET_SESSION_MPP_REDIS(1);

        3)设置重分发状态,执行如下语句:

        SF_MPP_REDIS_STATE_SET('SYSDBA','T1',2);

        4)进行查询插入,执行如下语句:

        INSERT INTO T1 SELECT * FROM T1 WHERE EP_SEQNO('T1')= 2; --2为本节点SEQNO          COMMIT;

        5)设置待删除数据状态,执行如下语句:

        SF_MPP_REDIS_STATE_SET('SYSDBA','T1',3);

        6)本地登录每个MPP系统的原有节点,删除分发出去的数据。

        SET_SESSION_MPP_REDIS(1);

        DELETE FROM T1 WHERE EP_SEQNO('T1')=2;

        7)所有新增节点执行完上述步骤后,重置表的分发状态为普通状态。

        SF_MPP_REDIS_STATE_SET('SYSDBA','T1',0);

        对原有MPP的哈希分布表、复制分布表和随机分布表都已进行了数据重分发,但是还需要更新扩容后的MPP系统的控制文件中的数据分布控制结构。  

        SF_MAL_CONFIG(1,1);

        SF_MPP_SAVE_HASHMAP();

        SF_MAL_CONFIG(0,1);

        自此,MPP的两节点搭建、动态扩容完成。


想要了解更多关于MPP集群信息,可以到达梦官网查看相应的手册:

达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值