MPP集群搭建学习步骤

  1. 修改主机名

hostnamectl set-hostname mpp1、mpp2

达梦 选择 scheme 达梦 mpp_数据库

2.关闭防火墙

systemctl stop firewalld

达梦 选择 scheme 达梦 mpp_服务器_02

3.修改系统资源限制

vi /etc/security/limits.conf
dmdba soft core unlimited
dmdba hard core unlimited
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba soft nproc  65536
dmdba hard nproc  65536
dmdba soft stack  65536
dmdba hard stack  65536

达梦 选择 scheme 达梦 mpp_数据库_03

4.创建dmdba用户、组

groupadd dinstall
useradd -g dinstall -d /home/dmdba -s /bin/bash dmdba
echo dmdba|passwd --stdin dmdba

达梦 选择 scheme 达梦 mpp_运维_04

5.修改dmdba用户环境变量

vi /home/dmdba/.bash_profile
export DM_HOME=/home/dmdba/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin:$DM_HOME/tool

达梦 选择 scheme 达梦 mpp_服务器_05

6.上传dm8安装包并挂载

mount -o loop dm8_20220525_x86_rh6_64.iso /mnt

达梦 选择 scheme 达梦 mpp_运维_06

7.安装数据库软件

达梦 选择 scheme 达梦 mpp_数据库_07

达梦 选择 scheme 达梦 mpp_运维_08

8.数据库环境规划

主机


IP

实例名

PORT_NUM

MAL_INST_

DW_PORT

MAL_PORT

MAL_DW_PORT

主机A

192.168.142.75

EP11

5236

5246

5337

5347

192.168.142.75

EP22

5237

5247

5338

5348

主机B

192.168.142.76

EP12

5236

5246

5337

5347

192.168.142.76

EP21

5237

5247

5338

5348

备注:主机A和B上分别创建2个实例。其中A中的EP11和B中的EP21组合一个工作组为GRP1。机器B中的EP12和机器A中的EP22组成一个工作组为GRP2。

8.分别在主机A和B初始化主备实例

主机A:

./dminit PATH=/opt/data CASE_SENSITIVE=N CHARSET=1 INSTANCE_NAME=EP11 PORT_NUM=5236

达梦 选择 scheme 达梦 mpp_服务器_09

./dminit PATH=/opt/data1 CASE_SENSITIVE=N CHARSET=1 INSTANCE_NAME=EP22 PORT_NUM=5237

达梦 选择 scheme 达梦 mpp_达梦 选择 scheme_10

主机B:

./dminit PATH=/opt/data CASE_SENSITIVE=N CHARSET=1 INSTANCE_NAME=EP12 PORT_NUM=5236

达梦 选择 scheme 达梦 mpp_linux_11

./dminit PATH=/opt/data1 CASE_SENSITIVE=N CHARSET=1 INSTANCE_NAME=EP21 PORT_NUM=5237

达梦 选择 scheme 达梦 mpp_运维_12

9.配置归档,修改dm.ini中ARCH_INI=1

达梦 选择 scheme 达梦 mpp_数据库_13

10.创建dmarch_ini配置文件

EP11:
ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = EP21 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/data/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 1024 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 20480  #单位Mb,0 表示无限制,范围1024~4294967294M
EP12:
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = EP21 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/data/arch #本地归档文件存放路径       
ARCH_FILE_SIZE = 1024 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 20480  #单位Mb,0 表示无限制,范围1024~4294967294M
EP22:
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = EP12 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/data/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 1024 #单位 Mb,本地单个归档文件最大值
EP21:
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = EP11 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /opt/data/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 1024 #单位 Mb,本地单个归档文件最大值

达梦 选择 scheme 达梦 mpp_运维_14

11.配置dmmal.ini文件

MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = EP11 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.142.75 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5337 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.142.75 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 5347 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 5246 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = EP12
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = EP11 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.142.75 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 5337 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.142.75 #实例的对外服务 IP 地址
MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 5347 #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 5246 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = EP12
MAL_HOST = 192.168.142.76
MAL_PORT = 5337
MAL_INST_HOST = 192.168.142.76
MAL_INST_PORT = 5236
MAL_DW_PORT = 5347
MAL_INST_DW_PORT = 5246
[MAL_INST3]
MAL_INST_NAME =EP21
MAL_HOST = 192.168.142.76
MAL_PORT = 5338
MAL_INST_HOST = 192.168.142.76
MAL_INST_PORT = 5237
MAL_DW_PORT = 5348
MAL_INST_DW_PORT = 5247
[MAL_INST4]
MAL_INST_NAME = EP22
MAL_HOST = 192.168.142.75
MAL_PORT = 5338
MAL_INST_HOST = 192.168.142.75
MAL_INST_PORT = 5237
MAL_DW_PORT = 5348
MAL_INST_DW_PORT = 5247

达梦 选择 scheme 达梦 mpp_服务器_15

12.启动主机A和主机B的主库实例

./dmserver /opt/data/DAMENG/dm.ini

达梦 选择 scheme 达梦 mpp_linux_16

13.主库上分别进行脱机备份和恢复

在主机A进行备份

 ./dmrman ctlstmt="backup database '/opt/data/DAMENG/dm.ini' full to backup_file_01 backupset '/opt/BACKUP_FILE_01'"

达梦 选择 scheme 达梦 mpp_linux_17

将备份拷贝传输到备库EP12所在的主机B

[dmdba@mpp1 ~]$ scp -r BACKUP_FILE_01/ 192.168.142.76:/opt

在主机B执行脱机还原恢复更新

./dmrman CTLSTMT="RESTORE DATABASE '/opt/data1/DAMENG/dm.ini' FROM BACKUPSET '/opt/BACKUP_FILE_01'"

达梦 选择 scheme 达梦 mpp_linux_18

在B主机上备份并拷贝到A主机

./dmrman ctlstmt="backup database '/opt/data/DAMENG/dm.ini' full to backup_file_02 backupset '/opt/BACKUP_FILE_02'"

达梦 选择 scheme 达梦 mpp_达梦 选择 scheme_19

[dmdba@mpp2 ~]$ scp -r /opt/BACKUP_FILE_02/ 192.168.142.75:/opt

在主机A执行脱机还原恢复更新

./dmrman CTLSTMT="RESTORE DATABASE '/opt/data1/DAMENG/dm.ini' FROM BACKUPSET '/opt/BACKUP_FILE_02'"

达梦 选择 scheme 达梦 mpp_服务器_20

14.配置主机AEP11库的dm.ini参数

vi /opt/data/DAMENG/dm.ini
NSTANCE_NAME =EP11
PORT_NUM = 5236 #数据库实例监听端口
DW_PORT = 5246 #守护环境下,监听守护进程连接端口
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
MPP_INI = 1 #启用 MPP 配置
RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志发送信息

15.配置dmmpp.ini

[service_name1] #标识每个实例的选项名
mpp_seq_no = 0 #实例在MPP系统内的序号
mpp_inst_name = EP11 #节点实例名
[service_name2]
mpp_seq_no = 1
mpp_inst_name = EP12

达梦 选择 scheme 达梦 mpp_linux_21

将dmmpp.ini转换为二进制文件dmmpp.ctl,主备库dmmpp.ctl配置相同

 ./dmctlcvt TYPE=2 SRC=/opt/data/DAMENG/dmmpp.ini DEST=/opt/data/DAMENG/dmmpp.ctl:

达梦 选择 scheme 达梦 mpp_服务器_22

15.以mount方式启动主库配置OGUID(EP11)

./dmserver /opt/data/DAMENG/dm.ini mount

达梦 选择 scheme 达梦 mpp_运维_23

./disql SYSDBA/SYSDBA@192.168.142.75:5236#"{mpp_type=local}"
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45330);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
alter database primary

;

达梦 选择 scheme 达梦 mpp_linux_24

16.在主机B配置主库EP12的dm.ini文件

INSTANCE_NAME =EP12
PORT_NUM = 5236 #数据库实例监听端口
DW_PORT = 5246 #守护环境下,监听守护进程连接端口
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
MPP_INI = 1 #启用 MPP 配置
RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志发送信息
17.在主机B配置主库EP12的dmmal.ini和dmmpp.ctl文件
将主机A的dmmal.ini和dmmpp.ctl拷贝到主机B
[dmdba@mpp1 bin]$ scp /opt/data/DAMENG/dmmal.ini 192.168.142.76:/opt/data/DAMENG/
[dmdba@mpp1 bin]$ scp /opt/data/DAMENG/dmmpp.ctl 192.168.142.76:/opt/data/DAMENG/
18.以mount方式启动主机B主库配置OGUID
[dmdba@mpp2 bin]$ ./dmserver /opt/data/DAMENG/dm.ini mount

达梦 选择 scheme 达梦 mpp_达梦 选择 scheme_25

[dmdba@mpp2 bin]$ ./disql SYSDBA/SYSDBA@192.168.142.76:5236#"{mpp_type=local}"
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45331);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
alter database primary;

达梦 选择 scheme 达梦 mpp_数据库_26

19.在主机A主机配置备库EP22的dm.ini文件

INSTANCE_NAME  = EP22

PORT_NUM  = 5237 #数据库实例监听端口

DW_PORT = 5247 #守护环境下,监听守护进程连接端口

ALTER_MODE_STATUS  = 0 #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS  = 2 #不允许备库 OFFLINE 表空间

MAL_INI = 1 #打开 MAL 系统

ARCH_INI  = 1 #打开归档配置

MPP_INI = 1 #打开 MPP 配置

RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志重演信息

DW_INACTIVE_INTERVAL  = 60 #接收守护进程消息超时时间

20.配置备库EP22的dmmal.ini和dmmpp.ini文件

将主机A上的配置文件拷贝到EP22

cp /opt/data/DAMENG/dmmal.ini /opt/data1/DAMENG/
cp /opt/data/DAMENG/dmmpp.ctl /opt/data1/DAMENG/

达梦 选择 scheme 达梦 mpp_linux_27

21.在A主机配置EP22:

以mount方式启动备库配置OGUID

./dmserver /opt/data1/DAMENG/dm.ini mount

达梦 选择 scheme 达梦 mpp_达梦 选择 scheme_28

遇到问题,查看资料需更新db_magic

recover database '/opt/data1/DAMENG/dm.ini' update db_magic;

达梦 选择 scheme 达梦 mpp_数据库_29

正常以mount方式启动

达梦 选择 scheme 达梦 mpp_数据库_30

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45331);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
alter database primary;

达梦 选择 scheme 达梦 mpp_运维_31

21.在B主机配置备库EP21的dm.ini文件

INSTANCE_NAME  = EP21

PORT_NUM  = 5237 #数据库实例监听端口

DW_PORT = 5247 #守护环境下,监听守护进程连接端口

ALTER_MODE_STATUS  = 0 #不允许手工方式修改实例模式/状态/OGUID

ENABLE_OFFLINE_TS  = 2 #不允许备库 OFFLINE 表空间

MAL_INI = 1 #打开 MAL 系统

ARCH_INI  = 1 #打开归档配置

MPP_INI = 1 #打开 MPP 配置

RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志重演信息

DW_INACTIVE_INTERVAL  = 60 #接收守护进程消息超时时间

22.配置备库EP21的dmmal.ini和dmmpp.ini文件

将主机A上的配置文件拷贝到EP21

达梦 选择 scheme 达梦 mpp_linux_32

23.EP21以mount方式启动备库配置OGUID

./dmserver /opt/data1/DAMENG/dm.ini mount
./disql SYSDBA/SYSDBA@192.168.142.76:5237#"{mpp_type=local}"
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45330);
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
ALTER DATABASE STANDBY;
alter database standby;

达梦 选择 scheme 达梦 mpp_达梦 选择 scheme_33

 

达梦 选择 scheme 达梦 mpp_数据库_34

24.配置主库EP11和EP12守护进程

/opt/data/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10  #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10  #本地实例故障认定时间
INST_OGUID = 45330#守护系统唯一 OGUID 值
INST_INI =/opt/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver  #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
[GRP2]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10  #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10  #本地实例故障认定时间
INST_OGUID = 45331 #守护系统唯一 OGUID 值
INST_INI = /opt/data1/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
[dmdba@mpp2 ~]$ vi /opt/data/DAMENG/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10  #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10  #本地实例故障认定时间
INST_OGUID = 45330#守护系统唯一 OGUID 值
INST_INI =/opt/data/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver  #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
[GRP2]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = AUTO #自动切换模式
DW_ERROR_TIME = 10  #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10  #本地实例故障认定时间
INST_OGUID = 45331 #守护系统唯一 OGUID 值
INST_INI = /opt/data1/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
25.配置监视器
[dmdba@mpp2 ~]$ vi /opt/data/DAMENG/dmmonitor.ini
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /home/dmdba/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 45330 #组 GRP1 的唯一 OGUID 值 #以下配置为监视器到组 GRP1 的守护进程的连接信息
,以―IP:PORT‖的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.142.75:5347
MON_DW_IP = 192.168.142.76:5348
[GRP2]
MON_INST_OGUID = 45331 #组 GRP2 的唯一 OGUID 值 #以下配置为监视器到组 GRP2 的守护进程的连接信息
,以―IP:PORT‖的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.142.75:5348
MON_DW_IP = 192.168.142.76:5347

26.注册服务

主机A:

./dm_service_installer.sh -t dmserver -dm_ini /opt/data/DAMENG/dm.ini -p EP11
./dm_service_installer.sh -t dmserver -dm_ini /opt/data1/DAMENG/dm.ini -p EP22
./dm_service_installer.sh -t dmwatcher -watcher_ini /opt/data/DAMENG/dmwatcher.ini -p GPR1

达梦 选择 scheme 达梦 mpp_运维_35

主机B;

./dm_service_installer.sh -t dmserver -dm_ini /opt/data/DAMENG/dm.ini -p EP12
./dm_service_installer.sh -t dmserver -dm_ini /opt/data1/DAMENG/dm.ini -p EP21
./dm_service_installer.sh -t dmwatcher -watcher_ini /opt/data/DAMENG/dmwatcher.ini -p GPR2

达梦 选择 scheme 达梦 mpp_数据库_36

启动监视器:

[root@mpp2 root]# ./dm_service_installer.sh -t dmmonitor -monitor_ini /opt/data/DAMENG/dmmonitor.ini -p mon

达梦 选择 scheme 达梦 mpp_服务器_37

 

达梦 选择 scheme 达梦 mpp_linux_38

show查看数据库状态

达梦 选择 scheme 达梦 mpp_服务器_39