DM数据库搭建步骤-分布式集群MPP主备(MPP-DW)

目录

前言

一、配置规划

二、操作系统配置

1.创建用户和组

2.创建目录并授权

3.修改用户资源限制

4.添加环境变量

5.关闭防火墙

6.关闭selinux

三、数据库安装

1.上传挂载安装镜像

2.注册DMAP服务

3.初始化数据库实例

四、MPP主备配置

1、MPP主库备份,备库恢复

2、各实例配置dm.ini

3、配置归档日志dmarch.ini

4、配置MAL系统配置文件dmmal.ini(所有实例一致)

5、配置MPP配置文件dmmpp.ini

6、配置守护进程配置文件dmwatcher.ini

7、启动数据库实例

8、启动守护进程

9、配置监视器配置文件dmmonitor.ini

总结


前言

分布式集群MPP主备(MPP-DW)


一、配置规划

实例

MAL_INST_HOST

MAL_HOST

MAL_PORT

MAL_INST_PORT

MAL_DW_PORT

MAL_INST_DW_PORT

MPP_SEQNO

Dmmpp1

192.168.13.227

10.10.10.71

7236

5236

5660

5770

0

Dmmpp2

192.168.13.228

10.10.10.72

7236

5236

5660

5770

1

Dmmpp1rw

192.168.13.228

10.10.10.72

17236

15236

15660

15770

Dmmpp2rw

192.168.13.227

10.10.10.72

17236

15236

15660

15770

二、操作系统配置

1.创建用户和组

groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba

2.创建目录并授权

mkdir /dm8
mkdir /dmdata
mkdir /dmarch
mkdir /dmbak

chown -R /dm8
chown -R /dmdata
chown -R /dmarch
chown -R /dmbak

3.修改用户资源限制

vim /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

4.添加环境变量

vi /home/dmdba/.bash_profile

添加:

export DM_HOME=/dm8
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

5.关闭防火墙

systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld

6.关闭selinux

echo "SELINUX=disabled">/etc/selinux/config
echo "SELINUXTYPE=targeted" >> /etc/selinux/config
cat /etc/selinux/config
setenforce 0

三、数据库安装

1.上传挂载安装镜像

mount -o loop dm8_20200930_x86_rh6_64_ent_8.1.1.134.iso /mnt
su - dmdba
cd /mnt
./DMInstall.bin –i

安装结束后会提示

请以root系统用户执行命令:
/dm8/script/root/root_installer.sh

安装结束

2.注册DMAP服务

切换到root用户

[root@dmdb01 dmtest]# /dm8/script/root/root_installer.sh
##创建并启动DmAPService服务

DmAP是数据库备份恢复需要依赖的一个服务

启动数据库:

su - dmdba
cd /dm8/bin
./DmAPService start

关闭数据库:

./DmAPService stop

查看服务进程:

ps -ef|grep dmap

3.初始化数据库实例

使用dmdba用户,进入bin目录

dminit path=/dmdata db_name=dmmpp instance_name=dmmpp1 LOG_SIZE=2048 PAGE_SIZE=32 charset=1
dminit path=/dmdata db_name=dmmpp instance_name=dmmpp2 LOG_SIZE=2048 PAGE_SIZE=32 charset=1
dminit path=/dmdata db_name=dmmpp1rw instance_name=dmmpp1rw LOG_SIZE=2048 PAGE_SIZE=32 charset=1
dminit path=/dmdata db_name=dmmpp2rw instance_name=dmmpp2rw LOG_SIZE=2048 PAGE_SIZE=32 charset=1

四、MPP主备配置

1、MPP主库备份,备库恢复

backup database full backupset '/mnt/fullmpp1';
RESTORE DATABASE '/dm8/dmmpp1rw/dm.ini' FROM BACKUPSET '/mnt/fullmpp1';
RECOVER DATABASE '/dm8/dmmpp1rw/dm.ini' FROM BACKUPSET '/mnt/fullmpp1
RECOVER DATABASE '/dm8/dmmpp1rw/dm.ini' update db_magic;

backup database full backupset '/mnt/fullmpp2';
RESTORE DATABASE '/dm8/dmmpp2rw/dm.ini' FROM BACKUPSET '/mnt/fullmpp2';
RECOVER DATABASE '/dm8/dmmpp2rw/dm.ini' FROM BACKUPSET '/mnt/fullmpp2';
RECOVER DATABASE '/dm8/dmmpp2rw/dm.ini' update db_magic;

2、各实例配置dm.ini

INSTANCE_NAME = dmmpp1
PORT_NUM = 5236
MAL_INI = 1
ARCH_INI=1
MPP_INI = 1
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间

3、配置归档日志dmarch.ini

主节点dmmpp1:

vi /dmdata/dmmpp/dmarch.ini
[ARCHIVE_REALTIME1] 
ARCH_TYPE = REALTIME #实时归档类型 
ARCH_DEST = dmmpp1rw #实时归档目标实例名 
[ARCHIVE_LOCAL1]
	ARCH_TYPE            = LOCAL        
	ARCH_DEST            = /dmarch        
	ARCH_FILE_SIZE       = 1024        
	ARCH_SPACE_LIMIT     = 0  

备节点dmmpp1rw:

[ARCHIVE_REALTIME1] 
ARCH_TYPE = REALTIME #实时归档类型 
ARCH_DEST = dmmpp1 #实时归档目标实例名 
[ARCHIVE_LOCAL1]
	ARCH_TYPE            = LOCAL        
	ARCH_DEST            = /dmarch2        
	ARCH_FILE_SIZE       = 1024        
	ARCH_SPACE_LIMIT     = 0

主节点dmmpp2:

vi /dmdata/dmmpp/dmarch.ini
[ARCHIVE_REALTIME1] 
ARCH_TYPE = REALTIME #实时归档类型 
ARCH_DEST = dmmpp2rw #实时归档目标实例名 
[ARCHIVE_LOCAL1]
	ARCH_TYPE            = LOCAL        
	ARCH_DEST            = /dmarch        
	ARCH_FILE_SIZE       = 1024        
	ARCH_SPACE_LIMIT     = 0

备节点dmmpp2rw:

vi /dmdata/dmmpp/dmarch.ini
[ARCHIVE_REALTIME1] 
ARCH_TYPE = REALTIME #实时归档类型 
ARCH_DEST = dmmpp #实时归档目标实例名 
[ARCHIVE_LOCAL1]
	ARCH_TYPE            = LOCAL        
	ARCH_DEST            = /dmarch2        
	ARCH_FILE_SIZE       = 1024        
	ARCH_SPACE_LIMIT     = 0

4、配置MAL系统配置文件dmmal.ini(所有实例一致)

vi /dmdata/dmmpp/dmmal.ini

MAL_CHECK_INTERVAL   = 5
MAL_CONN_FAIL_INTERVAL  = 5
[MAL_INST1]
MAL_CHECK_INTERVAL   = 5
MAL_CONN_FAIL_INTERVAL  = 5
[MAL_INST1]
  MAL_INST_NAME = dmmpp1
  MAL_HOST     = 192.168.13.227
  MAL_PORT     = 7236
  MAL_INST_HOST   = 192.168.13.227
  MAL_INST_PORT   = 5236
  MAL_DW_PORT = 5660
  MAL_INST_DW_PORT = 5770
[MAL_INST2]
  MAL_INST_NAME = dmmpp2
  MAL_HOST      = 192.168.13.228
  MAL_PORT          = 7236
  MAL_INST_HOST         = 192.168.13.228
  MAL_INST_PORT         = 5236
  MAL_DW_PORT = 5660
  MAL_INST_DW_PORT = 5770
[MAL_INST3]
  MAL_INST_NAME = dmmpp2rw #与 dm.ini 中的 INSTANCE_NAME 一致
  MAL_HOST     = 192.168.13.227  #MAL 系统监听 TCP 内部网络 IP
  MAL_PORT     = 17236 #MAL 系统监听 TCP 连接的端口
  MAL_INST_HOST   = 192.168.13.227  #实例的对外服务 IP 地址
  MAL_INST_PORT   = 15236 #与 dm.ini 中的 PORT_NUM 一致
  MAL_DW_PORT   = 15660 #实例对应的守护进程监听 TCP 端口
  MAL_INST_DW_PORT = 15770
[MAL_INST4]
  MAL_INST_NAME = dmmpp1rw #与 dm.ini 中的 INSTANCE_NAME 一致
  MAL_HOST      = 192.168.13.228  # MAL 系统监听 TCP 内部网络 IP
  MAL_PORT          = 17236 #MAL 系统监听 TCP 连接的端口
  MAL_INST_HOST         = 192.168.13.228  #实例的对外服务 IP 地址
  MAL_INST_PORT         = 15236 #与 dm.ini 中的 PORT_NUM 一致
  MAL_DW_PORT = 15660
  MAL_INST_DW_PORT = 15770

5、配置MPP配置文件dmmpp.ini

vi /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控制文件,并拷贝至所有实例

./dmctlcvt TYPE=2 SRC=/dmdata/dmmpp/dmmpp.ini DEST=/dmdata/dmmpp/dmmpp.ctl
cp dmmpp.ctl /dmdata/dmmpp2rw/
scp dmmpp.ctl 192.168.13.228:/dmdata/dmmpp/
scp dmmpp.ctl 192.168.13.228:/dmdata/dmmpp1rw/

6、配置守护进程配置文件dmwatcher.ini

主节点dmmpp1:

[GRP1]
DW_TYPE = GLOBAL #全局守护类型 
DW_MODE = AUTO #自动切换模式 
DW_ERROR_TIME = 10 #远程守护进程故障认定时间 
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 
INST_ERROR_TIME = 10 #本地实例故障认定时间 
INST_OGUID = 45331 #守护系统唯一 OGUID 值 
INST_INI = /dmdata/dmmpp/dm.ini #dm.ini 配置文件路径 
INST_AUTO_RESTART = 1 #打开实例的自动启动功能 
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动 
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭 
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭 

备节点dmmpp1rw

vi /dmdata/dmmpp1rw/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL #全局守护类型 
DW_MODE = AUTO #自动切换模式 
DW_ERROR_TIME = 10 #远程守护进程故障认定时间 
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 
INST_ERROR_TIME = 10 #本地实例故障认定时间 
INST_OGUID = 45331 #守护系统唯一 OGUID 值 
INST_INI = /dmdata/dmmpp1rw/dm.ini #dm.ini 配置文件路径 
INST_AUTO_RESTART = 1 #打开实例的自动启动功能 
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动 
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭 
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭 

主节点dmmpp2:

vi /dmdata/dmmpp/dmwatcher.ini
[GRP2]
DW_TYPE = GLOBAL #全局守护类型 
DW_MODE = AUTO #自动切换模式 
DW_ERROR_TIME = 10 #远程守护进程故障认定时间 
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 
INST_ERROR_TIME = 10 #本地实例故障认定时间 
INST_OGUID = 45330 #守护系统唯一 OGUID 值 
INST_INI = /dmdata/dmmpp/dm.ini #dm.ini 配置文件路径 
INST_AUTO_RESTART = 1 #打开实例的自动启动功能 
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动 
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭 
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭 

备节点dmmpp2rw:

vi /dmdata/dmmpp2rw/dmwatcher.ini
[GRP2]
DW_TYPE = GLOBAL #全局守护类型 
DW_MODE = AUTO #自动切换模式 
DW_ERROR_TIME = 10 #远程守护进程故障认定时间 
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 
INST_ERROR_TIME = 10 #本地实例故障认定时间 
INST_OGUID = 45330 #守护系统唯一 OGUID 值 
INST_INI = /dmdata/dmmpp2rw/dm.ini #dm.ini 配置文件路径 
INST_AUTO_RESTART = 1 #打开实例的自动启动功能 
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动 
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭 
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭

7、启动数据库实例

启动数据库实例(先起所有的主库,再起所有的备库,否则会报无法连接到远端,配置oguid需注意分组oguid不能相同)

主节点dmmpp1及备节点dmmpp1rw:

./dmserver /dmdata/dmmpp/dm.ini mount
./dmserver /dmdata/dmmpp1rw/dm.ini mount
./disql SYSDBA/SYSDBA
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45331);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

./disql SYSDBA/SYSDBA
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45331);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

主节点dmmpp2及备节点dmmpp2rw:

./dmserver /dmdata/dmmpp/dm.ini mount
./dmserver /dmdata/dmmpp2rw/dm.ini mount

./disql SYSDBA/SYSDBA
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45330);
alter database primary;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

./disql SYSDBA/SYSDBA
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(45330);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

8、启动守护进程

./dmwatcher /dmdata/dmmpp/dmwatcher.ini
./dmwatcher /dmdata/dmmpp1rw/dmwatcher.ini
./dmwatcher /dmdata/dmmpp/dmwatcher.ini
./dmwatcher /dmdata/dmmpp2rw/dmwatcher.ini

9、配置监视器配置文件dmmonitor.ini

建议单独一台服务器做确认监视器(本例为普通监视器模式)

vi /dmdata/dmmpp/dmmonitor.ini

MON_DW_CONFIRM = 0 #确认监视器模式 
MON_LOG_PATH = /dmdata/DAMENG2/log #监视器日志文件存放路径 
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件 MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M 
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间 
[GRP1] 
MON_INST_OGUID = 45331 #组 GRP1 的唯一 OGUID 值 #以下配置为监视器到组 GRP1 的守护进程的连接信息,以―IP:PORT‖的形式配置 #IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT 
MON_DW_IP = 192.168.13.227:5660 
MON_DW_IP = 192.168.13.228:15660 
[GRP2] 
MON_INST_OGUID = 45330 
MON_DW_IP = 192.168.13.228:5660 
MON_DW_IP = 192.168.13.227:15660

前台启动dmmonitor,查看集群状态

./dmmonitor /dmdata/dmmpp/dmmonitor.ini

 

 分别查看GRP1和GRP2集群状态,搭建完成。


总结

更多资讯请上达梦技术社区了解:https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值