提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
DMMPP大规模分布式集群,采用的完全对等无共享体系架构,结合了完全无共享体系的优点,在此基础上又前进了一步,不采用增加主控制节点来协调所有并行处理的主从式方法,而是各个节点完全对等,更进一步简化了体系的实现,也消除了系统可能存在的主节点瓶颈问题。。
一、目录与存储规划
根据系统系统需要规划出需要的目录文件
用途 | 目录路径 |
---|---|
数据库软件安装目录 | /dm/dmdba/dmdbms/ |
实例安装目录 | /dm/dmdata |
归档日志存放目录 | /dm/dmarch |
备份文件存放目录 | /dm//dmbak |
系统及端口规划
主机名 | public ip | private ip | 实例名 | 端口 | 用途 |
---|---|---|---|---|---|
dmdsc1 | 192.168.56.11 | 10.0.0.11 | dmmpp1 | 5236 | 数据库实例 dmmpp1 监听端口 |
dmdsc1 | 192.168.56.11 | 10.0.0.11 | dmmpp1 | 7236 | MAL 系统监听 TCP 连接的端口 |
dmdsc2 | 192.168.56.12 | 10.0.0.12 | dmmpp2 | 5236 | 数据库实例 dmmpp2监听端口 |
dmdsc2 | 192.168.56.12 | 10.0.0.12 | dmmpp2 | 7236 | MAL 系统监听 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