MPP搭建部署

it2023-08-23  71

环境准备

三个节点,每个节点作为主库,与其备库组成一个守护组,所以需要三个守护组,分别为GRP1/GRP2/GRP3,三台机器交叉部署实例,同时节点一部署监视器

部署步骤

1.创建用户

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

2.安装数据库软件 命令行安装

[dmdba@localhost ~]$ ./DMInstall.bin -i 语言:e Key:n 时区:21 安装类型:1 安装路径:/home/dmdba/dmdbms y 安装小结:y 安装

3.安装数据库

./dminit path=/home/dmdba/dmdbms/data/EP01 192.168.115.101 10.10.10.101 ./dminit path=/home/dmdba/dmdbms/data/EP02 192.168.115.201 10.10.10.201 ./dminit path=/home/dmdba/dmdbms/data/EP03 192.168.115.100 10.10.10.100

4.配置GRP1_MPP_EP01

1>配置dm.ini INSTANCE_NAME = GRP1_MPP_EP01 PORT_NUM = 5236 #数据库实例监听端口 DW_PORT = 5243 #守护环境下,监听守护进程连接端口 DW_ERROR_TIME = 60 #接收守护进程消息超时时间 ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态 ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间 MAL_INI = 1 #打开MAL系统 ARCH_INI = 1 #打开归档配置 MPP_INI = 1 #启用MPP配置 HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动 RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志发送信息

2>配置dmmal.ini 配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,MAL_HOST 使用内部网 络IP,MAL_PORT与dm.ini中PORT_NUM使用不同的端口值

MAL_CHECK_INTERVAL = 5 MAL_CONN_FAIL_INTERVAL = 5 [MAL_INST1] MAL_INST_NAME = GRP1_MPP_EP01 MAL_HOST = 10.10.10.101 MAL_PORT = 5337 MAL_INST_HOST = 192.168.115.101 MAL_INST_PORT = 5236 MAL_DW_PORT = 5253 [MAL_INST2] MAL_INST_NAME = GRP2_MPP_EP02 MAL_HOST = 10.10.10.201 MAL_PORT = 5337 MAL_INST_HOST = 192.168.115.201 MAL_INST_PORT = 5236 MAL_DW_PORT = 5253 [MAL_INST3] MAL_INST_NAME = GRP3_MPP_EP03 MAL_HOST = 10.10.10.100 MAL_PORT = 5337 MAL_INST_HOST = 192.168.115.100 MAL_INST_PORT = 5236 MAL_DW_PORT = 5253 [MAL_INST4] MAL_INST_NAME = GRP1_MPP_EP11 MAL_HOST = 10.10.10.201 MAL_PORT = 5338 MAL_INST_HOST = 192.168.115.201 MAL_INST_PORT = 5237 MAL_DW_PORT = 5254 [MAL_INST5] MAL_INST_NAME = GRP2_MPP_EP21 MAL_HOST = 10.10.10.100 MAL_PORT = 5338 MAL_INST_HOST = 192.168.115.100 MAL_INST_PORT = 5237 MAL_DW_PORT = 5254 [MAL_INST6] MAL_INST_NAME = GRP3_MPP_EP31 MAL_HOST = 10.10.10.101 MAL_PORT = 5338 MAL_INST_HOST = 192.168.115.101 MAL_INST_PORT = 5237 MAL_DW_PORT = 5254

3>配置dmarch.ini 配置本地归档和实时归档,当前实例GRP1_MPP_EP01是主库,需要向MPP备库GRP1_MPP_EP11同步数据,因此实时归档的ARCH_DEST配置为GRP1_MPP_EP11

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

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

[service_name1] mpp_seq_no = 0 mpp_inst_name = GRP1_MPP_EP01 [service_name2] mpp_seq_no = 1 mpp_inst_name = GRP2_MPP_EP02 [service_name3] mpp_seq_no = 2 mpp_inst_name = GRP3_MPP_EP03

转换命令:

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

5>启动主库

./dmserver /home/dmdba/dmdbms/data/EP01/DAMENG/dm.ini mount ./disql SYSDBA/SYSDBA*local@192.168.115.101 SQL>sp_set_oguid(45330) SQL>alter database primary;

5.配置GRP2_MPP_EP02 1>配置dm.ini 2>配置dmmal.ini (EP01同步)

scp dmmal.ini dmdba@192.168.115.201:/home/dmdba/dmdbms/data/EP02/DAMENG

3>配置dmarch.ini

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

4>配置dmmpp.ctl (EP01同步)

scp dmmpp.ctl dmdba@192.168.115.101:/home/dmdba/dmdbms/data/EP02/DAMENG

5>启动主库

./dmserver /home/dmdba/dmdbms/data/EP02/DAMENG/dm.ini mount ./disql SYSDBA/SYSDBA*local@192.168.115.201 SQL>sp_set_oguid(45331); SQL>alter database primary;

6.配置GRP3_MPP_EP03 1>配置dm.ini 2>配置dmmal.ini (EP01同步)

scp dmmal.ini dmdba@192.168.115.100:/home/dmdba/dmdbms/data/EP03/DAMENG

3>配置dmarch.ini

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

4>配置dmmpp.ctl (EP01同步)

scp dmmpp.ctl dmdba@192.168.115.100:/home/dmdba/dmdbms/data/EP03/DAMENG

5>启动主库

./dmserver /home/dmdba/dmdbms/data/EP03/DAMENG/dm.ini mount ./disql SYSDBA/SYSDBA*local@192.168.115.100 SQL>sp_set_oguid(45332); SQL>alter database primary;

6.配置备库GRP1_MPP_EP11(GRP1_MPP_EP11/GRP1_MPP_EP11) 将主库的数据拷贝到节点二

scp -r EP01 dmdba@192.168.115.201:/home/dmdba/dmdbms/data/

注:dm.ctl 文件,数据文件安装路径需要修改为当前备库路径,利用dmctlcvt装换成dmctl.txt文件后修改,然后转换成dm.ctl

./dmctlcvt TYPE=2 SRC=/home/dmdba/dmdbms/data/EP21/DAMENG/dmctl.txt dest=/home/dmdba/dmdbms/data/EP21/DAMENG/dm.ctl

1>配置dm.ini

INSTANCE_NAME = GRP1_MPP_EP11 PORT_NUM = 5237 #数据库实例监听端口 DW_PORT = 5244 #守护环境下,监听守护进程连接端口 DW_ERROR_TIME = 60 #接收守护进程消息超时时间 ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态 ENABLE_OFFLINE_TS = 2 #不允许备库OFFLINE表空间 MAL_INI = 1 #打开MAL系统 ARCH_INI = 1 #打开归档配置 MPP_INI = 1 #打开MPP配置 HA_INST_CHECK_FLAG = 1 #检测是否多个实例进程同时启动 RLOG_SEND_APPLY_MON = 64 #统计最近64次的日志重演信息

注:数据库文件目录是否正确 2>配置dmmal.ini (EP01同步) 3>配置dmarch.ini

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

4>配置dmmpp.ctl (EP01同步) 5>启动主库

./dmserver /home/dmdba/dmdbms/data/EP03/DAMENG/dm.ini mount ./disql SYSDBA/SYSDBA*local@192.168.115.100 SQL>sp_set_oguid(45330); #oguid与EP01主库的一致 V$INSTANCE 查看数据库信息oguid SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); SQL>ALTER DATABASE STANDBY; SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

7.配置dmwatcher.ini

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

同一个守护进程组,必须使用同一份dmwatcher.ctl。因此,只需要使用dmctlcvt 工具生成一份dmwatcher.ctl文件,

./dmctlcvt type=3 src=/home/dmdba/dmdbms/data/EP03/DAMENG/dmwatcher.ini dest=/home/dmdba/dmdbms/data 将节点一的/home/dmdba/dmdbms/data/GRP1/dmwatcher.ctl文件拷贝到节点一的/home/dmdba/dmdbms/data/EP01/DAMENG/ 和节点二的/home/dmdba/dmdbms/data/EP11/DAMENG/ 将节点二的/home/dmdba/dmdbms/data/GRP2/dmwatcher.ctl文件拷贝到节点二的/home/dmdba/dmdbms/data/EP02/DAMENG/ 和节点三的/home/dmdba/dmdbms/data/EP21/DAMENG/ 将节点三的/home/dmdba/dmdbms/data/GRP3/dmwatcher.ctl文件拷贝到节点三的/home/dmdba/dmdbms/data/EP03/DAMENG/ 和节点一的/home/dmdba/dmdbms/data/EP31/DAMENG/

8.配置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 = 45330 #组GRP1的唯一OGUID值 #以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”的形式配置 #IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT MON_DW_IP = 10.10.10.101:5253 MON_DW_IP = 10.10.10.201:5254 [GRP2] MON_INST_OGUID = 45331 #组GRP2的唯一OGUID值 #以下配置为监视器到组GRP2的守护进程的连接信息,以“IP:PORT”的形式配置 #IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT MON_DW_IP = 10.10.10.201:5253 MON_DW_IP = 10.10.1 0.100:5254 [GRP3] MON_INST_OGUID = 45332 #组GRP3的唯一OGUID值 #以下配置为监视器到组GRP2的守护进程的连接信息,以“IP:PORT”的形式配置 #IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT MON_DW_IP = 10.10.10.100:5253 MON_DW_IP = 10.10.10.101:5254

9.启动守护进程(三个节点)

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

10.启动监视器(节点一)

./dmmonitor /dm7/data/dmmonitor.ini
最新回复(0)