dm8 mpp主备集群搭建

mpp主备集群搭建

规划

机器名MAL_INST_HOSTMAL_HOST主库实例名备库实例名
A机器192.168.56.11172.16.1.11EP01EP12
B机器192.168.56.12172.16.1.12EP02EP11
C机器192.168.56.13172.16.1.3监视器

端口规划

实例名PORT_NUMMAL_INST_HOSTMAL_INST_DW_PORTMAL_HOSTMAL_PORTMAL_DW_PROTMPP_SEQNO
EP015236192.168.56.115243172.16.1.11533752530
EP025236192.168.56.125243172.16.1.12533752531
EP115237192.168.56.125244172.16.1.1253385254对应主库EP01
EP125237192.168.56.115244172.16.1.1153385254对应主库EP02

一.数据准备

1.初始化

A 机器上初始化主库EP01

/home/dmdba/dmdbms/bin/dminit PATH=/home/dmdba/dmdbms/data/ DB_NAME=EP01 INSTANCE_NAME=EP01 PORT_NUM=5236

初始化备库EP12

/home/dmdba/dmdbms/bin/dminit PATH=/home/dmdba/dmdbms/data/ DB_NAME=EP12 INSTANCE_NAME=EP12 PORT_NUM=5237

B 机器上初始化主库EP02:

/home/dmdba/dmdbms/bin/dminit PATH=/home/dmdba/dmdbms/data/ DB_NAME=EP02 INSTANCE_NAME=EP02 PORT_NUM=5236

初始化备库EP11

/home/dmdba/dmdbms/bin/dminit PATH=/home/dmdba/dmdbms/data/ DB_NAME=EP11 INSTANCE_NAME=EP11 PORT_NUM=5237

开启服务:
开启主库EP01

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/EP01/dm.ini

开启备库EP12

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/EP12/dm.ini

开启主库EP02

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/EP02/dm.ini

开启主库EP11

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/EP11/dm.ini

然后exit退出

2.脱机备份

给A机器上EP01进行备份 文件名backup20220816

/home/dmdba/dmdbms/bin/dmrman ctlstmt="backup database '/home/dmdba/dmdbms/data/EP01/dm.ini' full to backup20220816 backupset '/home/dmdba/dmdbms/data/EP01/bak/backup20220816'"

在这里插入图片描述

给B机器上EP02进行备份 文件名backupfile

/home/dmdba/dmdbms/bin/dmrman ctlstmt="backup database '/home/dmdba/dmdbms/data/EP02/dm.ini' full to backupfile backupset '/home/dmdba/dmdbms/data/EP02/bak/backupfile'"

在这里插入图片描述

拷贝到备库
A至B

scp -r /home/dmdba/dmdbms/data/EP01/bak/backup20220816/ 192.168.56.12:/home/dmdba/dmdbms/data/EP11/bak

在这里插入图片描述

B至A

scp -r /home/dmdba/dmdbms/data/EP02/bak/backupfile/ 192.168.56.11:/home/dmdba/dmdbms/data/EP12/bak

在这里插入图片描述

还原
在B机器上还原A机器上的主库EP01

/home/dmdba/dmdbms/bin/dmrman ctlstmt="restore database '/home/dmdba/dmdbms/data/EP11/dm.ini' from backupset '/home/dmdba/dmdbms/data/EP11/bak/backup20220816'"

在这里插入图片描述

在A机器上还原B机器上的主库EP02

/home/dmdba/dmdbms/bin/dmrman ctlstmt="restore database '/home/dmdba/dmdbms/data/EP12/dm.ini' from backupset '/home/dmdba/dmdbms/data/EP12/bak/backupfile'"

在这里插入图片描述

恢复
在B机器上恢复A机器上的主库EP01

/home/dmdba/dmdbms/bin/dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/EP11/dm.ini' from backupset '/home/dmdba/dmdbms/data/EP11/bak/backup20220816'"

在这里插入图片描述

在A机器上恢复B机器上的主库EP02

/home/dmdba/dmdbms/bin/dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/EP12/dm.ini' from backupset '/home/dmdba/dmdbms/data/EP12/bak/backupfile'"

在这里插入图片描述

更新DB_MAGIC
在B机器上还原A机器上的主库EP01

/home/dmdba/dmdbms/bin/dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/EP11/dm.ini' update db_magic"

在这里插入图片描述

在A机器上还原B机器上的主库EP02

/home/dmdba/dmdbms/bin/dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/EP12/dm.ini' update db_magic"

在这里插入图片描述

二.DM MPP配置

1.dm.ini配置

EP01,EP02,EP11,EP12按照各自的实例端口规划进行配置

vi /home/dmdba/dmdbms/data/EP01/dm.ini
INSTANCE_NAME        = EP01
PORT_NUM             = 5236         #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60           #接收守护进程消息超时时间
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次的日志

检查:

grep -E 'INSTANCE_NAME|PORT_NUM|DW_INACTIVE_INTERVAL|ALTER_MODE_STATUS|MAL_INI|ARCH_INI|MPP_INI|RLOG_SEND_APPLY_MON' /home/dmdba/dmdbms/data/EP*/dm.ini 

在这里插入图片描述

2.dmmal.ini配置

vi /home/dmdba/dmdbms/data/EP01/dmmal.ini
MAL_CHECK_INTERVAL     = 5              #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5              #判定MAL链路断开的时间
[MAL_INST1]
MAL_INST_NAME          = EP01           #实例名,和dm.ini中的INSTANCE_NAME一致
MAL_HOST               = 172.16.1.11  #MAL系统监听TCP连接的IP地址
MAL_PORT               = 5337           #MAL 系统监听TCP连接的端口
MAL_INST_HOST          = 192.168.56.11  #实例的对外服务IP地址
MAL_INST_PORT          = 5236          #实例的对外服务端口,和dm.ini中的PORT_NUM一致
MAL_DW_PORT            = 5253           #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT       = 5243           #实例监听守护进程TCP连接的端口

[MAL_INST2]
MAL_INST_NAME          = EP02
MAL_HOST               = 172.16.1.12
MAL_PORT               = 5337
MAL_INST_HOST          = 192.168.56.12
MAL_INST_PORT          = 5236
MAL_DW_PORT            = 5253
MAL_INST_DW_PORT       = 5243

[MAL_INST3]
MAL_INST_NAME          = EP11
MAL_HOST               = 172.16.1.12
MAL_PORT               = 5338
MAL_INST_HOST          = 192.168.1.12
MAL_INST_PORT          = 5237
MAL_DW_PORT            = 5254
MAL_INST_DW_PORT       = 5244

[MAL_INST4]
MAL_INST_NAME          = EP12
MAL_HOST               = 172.16.1.11
MAL_PORT               = 5338
MAL_INST_HOST          = 192.168.56.11
MAL_INST_PORT          = 5237
MAL_DW_PORT            = 5254
MAL_INST_DW_PORT       = 5244

将文件拷贝到实例EP12中

cp /home/dmdba/dmdbms/data/EP01/dmmal.ini /home/dmdba/dmdbms/data/EP12/dmmal.ini

将文件传输到实例EP02中

scp /home/dmdba/dmdbms/data/EP01/dmmal.ini  192.168.56.12:/home/dmdba/dmdbms/data/EP02/dmmal.ini

将文件传输到实例EP11中

scp /home/dmdba/dmdbms/data/EP01/dmmal.ini  192.168.56.12:/home/dmdba/dmdbms/data/EP11/dmmal.ini

3.dmarch.ini配置

vi /home/dmdba/dmdbms/data/EP01/dmarch.ini
[ARCHIVE_REALTIME1]
ARCH_TYPE          =  REALTIME                 #实时归档类型
ARCH_DEST          =  EP11                     #实时归档目标实例名  
[ARCHIVE_LOCAL1]
ARCH_TYPE          =  LOCAL                    #本地归档类型
ARCH_DEST          =  /home/dmdba/dmdbms/data/EP01/bak    #本地归档文件存放路径  
ARCH_FILE_SIZE     =  128                      #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT   =  1024                     #单位 Mb,0 表示无限制,范围 1024~4294967294M

注意更改实时归档目标名以及本地归档存放路径

cd /home/dmdba/dmdbms/data/EP12/       
cd /home/dmdba/dmdbms/data/EP02/
cd /home/dmdba/dmdbms/data/EP11/

4.dmmpp.ctl配置

dmmpp.ctl是二进制文件,由dmmpp.ini文本通过dmctlcvt工具转换而来先配置dmmpp.ini

vi /home/dmdba/dmdbms/data/EP01/dmmpp.ini
[service_name1]
mpp_seq_no    = 0
mpp_inst_name = EP01
[service_name2]
mpp_seq_no    = 1
mpp_inst_name = EP02

转换dmmpp.ini为dmmpp.ctl(bin目录下):

/home/dmdba/dmdbms/bin/dmctlcvt TYPE=2 SRC=/home/dmdba/dmdbms/data/EP01/dmmpp.ini DEST=/home/dmdba/dmdbms/data/EP01/dmmpp.ctl

将文件拷贝到实例EP12中

cp /home/dmdba/dmdbms/data/EP01/dmmpp.ctl /home/dmdba/dmdbms/data/EP12/dmmpp.ctl

将文件传输到实例EP02中

scp /home/dmdba/dmdbms/data/EP01/dmmpp.ctl  192.168.56.12:/home/dmdba/dmdbms/data/EP02/dmmpp.ctl

将文件传输到实例EP11中

scp /home/dmdba/dmdbms/data/EP01/dmmpp.ctl  192.168.56.12:/home/dmdba/dmdbms/data/EP11/dmmpp.ctl

5.配置主库EP01

以mount方式启动主库

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/EP01/dm.ini mount

配置OGUID

/home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.56.11:5236#"{mpp_type=local}"

Sql下执行:

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

6.配置备库EP12

以mount方式启动备库

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/EP12/dm.ini mount

配置OGUID

/home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.56.11:5237#"{mpp_type=local}"

Sql下执行:

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
sp_set_oguid(15302);
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
alter database standby;

7.配置主库EP02

以mount方式启动主库

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/EP02/dm.ini mount

配置OGUID

/home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.56.12:5236#"{mpp_type=local}"

Sql下执行:

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

8.配置备库EP11

以mount方式启动备库

/home/dmdba/dmdbms/bin/dmserver /home/dmdba/dmdbms/data/EP11/dm.ini mount

配置OGUID

/home/dmdba/dmdbms/bin/disql SYSDBA/SYSDBA@192.168.56.12:5237#"{mpp_type=local}"

Sql下执行:

SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
sp_set_oguid(15301);
SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',0);
alter database standby;

9.守护进程配置

在A机器上配置

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

将文件拷贝到EP11中:

scp /home/dmdba/dmdbms/data/EP01/dmwatcher.ini @192.168.56.12:/home/dmdba/dmdbms/data/EP11

在B机器上配置

/home/dmdba/dmdbms/data/EP02/dmwatcher.ini
[GRP1]
DW_TYPE              = GLOBAL
DW_MODE              = AUTO
DW_ERROR_TIME        = 10
INST_RECOVER_TIME    = 60
INST_ERROR_TIME      = 10
INST_OGUID           = 15301
INST_INI             = /home/dmdba/dmdbms/data/EP11/dm.ini
INST_AUTO_RESTART    = 1
INST_STARTUP_CMD     = /home/dmdba/dmdbms/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           = 15302
INST_INI             = /home/dmdba/dmdbms/data/EP02/dm.ini
INST_AUTO_RESTART    = 1
INST_STARTUP_CMD     = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD  = 0
RLOG_APPLY_THRESHOLD = 0

将文件拷贝到EP12中:

scp /home/dmdba/dmdbms/data/EP02/dmwatcher.ini @192.168.56.11:/home/dmdba/dmdbms/data/EP12

10.启动守护进程

自动将实例open
A:

/home/dmdba/dmdbms/bin/dmwatcher /home/dmdba/dmdbms/data/EP01/dmwatcher.ini

B:

/home/dmdba/dmdbms/bin/dmwatcher /home/dmdba/dmdbms/data/EP02/dmwatcher.ini

11.配置监视器

vi /home/dmdba/dmdbms/data/dmmonitor.ini
MON_DW_CONFIRM = 1 #确认监视器模式
MON_LOG_PATH = /home/dmdba/dmdbms/data/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 15301 #组 GRP1 的唯一 OGUID 值 #以下配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 172.16.1.11:5253
MON_DW_IP = 172.16.1.12:5254
[GRP2]
MON_INST_OGUID = 15302 #组 GRP2 的唯一 OGUID 值 #以下配置为监视器到组 GRP2 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 172.16.1.12:5253
MON_DW_IP = 172.16.1.11:5254

启动监视器

/home/dmdba/dmdbms/bin/dmmonitor /home/dmdba/dmdbms/data/dmmonitor.ini

在这里插入图片描述

12.注册服务

A
注册主库实例EP01服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/data/EP01/dm.ini -m mount -p EP01

注册主库EP01守护进程服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/EP01/dmwatcher.ini -p EP01

注册备库实例EP12服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/data/EP12/dm.ini -m mount -p EP12

注册备库EP12守护进程服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/EP12/dmwatcher.ini -p EP12

B
注册主库实例EP02服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/data/EP02/dm.ini -m mount -p EP02

注册主库EP02守护进程服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/EP02/dmwatcher.ini -p EP02

注册备库实例EP11服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/dmdbms/data/EP11/dm.ini -m mount -p EP11

注册备库EP11守护进程服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/dmdbms/data/EP11/dmwatcher.ini -p EP11

C监视器

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -monitor_ini /home/dmdba/dmdbms/data/dmmonitor.ini -p EP

三.验证集群

GRP1验证

连接主库EP01的disql

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA@192.168.56.11:5236
SQL> create table grp1(id int);
SQL> insert into grp1 values(1);
SQL> commit;

在这里插入图片描述

连接备库EP11的disql

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA@192.168.56.12:5237
select * from grp1;

在这里插入图片描述

GRP2验证

连接主库EP02的disql

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA@192.168.56.12:5236
SQL> create table grp2(id int);
SQL> insert into grp2 values(1);
SQL> commit;

在这里插入图片描述

连接备库EP12的disql

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA@192.168.56.11:5237
select * from grp;

在这里插入图片描述
更多达梦相关知识:https://eco.dameng.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值