mpp集群(带主备)搭建

MPP集群(带主备)搭建

1、搭建准备    2

1.1、初始化信息    2

1.2、主库端口规划    2

1.3、备库端口规划    2

1.4、守护进程规划    3

2、创建实例并初始化    3

2.1、初始化MPP01    3

初始化MPP02:    4

3、脱机备份    4

3.1、对主库EP01进行脱机备份    4

3.2、将备份拷贝传输到备库EP11所在的机器MPP02    4

3.3、在MPP02执行脱机还原更新    5

3.4、对主库EP02进行脱机备份    5

3.5、将备份拷贝传输到备库EP22所在的机器MPP0    5

3.6、在MPP01机器上执行备份还原    5

4、配置主备库    6

4.1、在MPP01配置主库EP01    6

4.1.1、配置dm.ini    6

4.1.2、配置dmmal.ini    6

4.1.3、配置dmarch.ini    7

4.1.4、配置dmmpp.ctl    7

4.1.5、以mount方式启动主库    8

4.1.6、配置OGUID    8

4.1.7、修改数据库模式    8

4.2、在MPP02上配置主库EP02    8

4.2.1、配置dm.ini    8

4.2.2、配置dmmal.ini    9

4.2.3、配置dmarch.ini    9

4.2.4、配置dmmpp.ctl    9

4.2.5、以mount方式启动主库    9

4.2.6、配置OGUID    10

4.2.7、修改数据库模式    10

4.3、在MPP02上配置备库EP11    10

4.3.1、配置dm.ini    10

4.3.2、配置dmmal.ini    10

4.3.3、配置dmarch.ini    10

4.3.4、配置dmmpp.ctl    11

4.3.5、以mount方式启动备库    11

4.3.6、配置OGUID    11

4.3.7、修改数据库模式    11

4.4、在MPP01配置备库EP22    12

4.4.1、配置dm.ini    12

4.4.2、配置dmmal.ini    12

4.4.3、配置dmarch.ini    12

4.4.4、配置dmmpp.ctl    12

4.4.5、以mount方式启动备库    12

4.4.6、配置OGUID    13

4.4.7、修改数据库模式    13

4.5、配置守护进程    13

4.6、配置监视器    14

4.7、启动所有的守护进程    15

4.8、启动监视器    15

4.9、测试    16

4.10、MPP登录方式    18

 

1、搭建准备

请提前关闭两台机器的防火墙

systemctl stop firewalld

systemctl disable firewalld

1.1、初始化信息

机器名

 

IP地址

初始状态

MPP01

 

192.168.138.198

主库:EP01

备库:EP22

MPP02

 

192.168.138.199

主库:EP02

备库:EP11

监视器

 

192.168.138.199

监视器

1.2、主库端口规划

实例名

PORT

_NUM

MAL_INST

_DW_PORE

MAL_HOST

MAL_PORT

MALL_DW_PORT

MPP实例序号

EP01

5236

5243

192.168.138.198

5337

5253

0

EP02

5236

5243

192.168..138.199

5337

5253

1

1.3、备库端口规划

实例

PORT_NUM

MAL_INST

_DW_PORE

MAL_HOST

MAL_PORT

MALL_DW_PORT

对应主库

EM11

5237

5244

192.168.138.199

5338

5254

EM01

EM22

5237

5244

192.168.138.198

5338

5254

EP02

 

1.4、守护进程规划

组名

实例名

IP

GRP1(OGUID:45331)

EP01

192.168.138.198

EP11

192.168.138.199

GRP2(OGUID:45332)

EP02

192.168.138.199

EP22

192.168.138.198

2、创建实例并初始化

2.1、初始化MPP01

在MPP01机器上初始化实例主库EP01,初始化实例备库EP22。初始化完成后,记得分别开停库一次

 

./dminit PATH=/home/dmdba/dmdbms/data/EP01 INSTANCE_NAME="EP01" PORT_NUM=5236

 

./dminit PATH=/home/dmdba/dmdbms/data/EP22 INSTANCE_NAME="EP22" PORT_NUM=5236

 

分别修改dm.ini,使ARCH_INI=1

 

增加新文件dmarch.ini

 

EP01:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/EP01/arch #本地归档文件存放路径

ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 1024 #单位 Mb,0 表示无限制,范围 1024~4294967294M

 

EP22:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/EP22/arch #本地归档文件存放路径

ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 1024 #单位 Mb,0 表示无限制,范围 1024~4294967294M

 

初始化MPP02:

MPP02机器上初始化实例主库EP02,初始化实例备库EP11。初始化完成后记得分别开停库一次。

 

分别修改dm.ini,使ARCH_INI=1

增加新文件dmarch.ini:

EP02:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/EP02/arch #本地归档文件存放路径

ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 1024 #单位 Mb,0 表示无限制,范围 1024~4294967294M

 

EP11:

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/EP11/arch #本地归档文件存放路径

ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 1024 #单位 Mb,0 表示无限制,范围 1024~4294967294M

 

3、脱机备份

注意:备份之前如果没有初始化的话会提示不能备份没有初始化的数据库

3.1、对主库EP01进行脱机备份

./dmrman ctlstmt="backup database '/home/dmdba/dmdbms/data/EP01/DAMENG/dm.ini' full to backup_file1 backupset '/home/dmdba/dmdbms/data/EP01/BACKUP_FILE_01'"

 

3.2、将备份拷贝传输到备库EP11所在的机器MPP02

cd /home/dmdba/dmdbms/data/EP01

scp -r BACKUP_FILE_01/ dmdba@192.168.138.199:/home/dmdba/dmdbms/data/EP11

3.3、在MPP02执行脱机还原更新

还原:

./dmrman CTLSTMT="RESTORE DATABASE '/home/dmdba/dmdbms/data/EP11/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/data/EP11/BACKUP_FILE_01'"

 

恢复:

./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/EP11/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/data/EP11/BACKUP_FILE_01'"

 

更新DB_MAGIC:

./dmrman CTLSTMT="RECOVER DATABASE'/home/dmdba/dmdbms/data/EP11/DAMENG/dm.ini' UPDATE DB_MAGIC"

3.4、对主库EP02进行脱机备份

./dmrman ctlstmt="backup database '/home/dmdba/dmdbms/data/EP02/DAMENG/dm.ini' full to backup_file1 backupset '/home/dmdba/dmdbms/data/EP02/BACKUP_FILE_01'"

3.5、将备份拷贝传输到备库EP22所在的机器MPP0

cd /home/dmdba/dmdbms/data/EP02

scp -r BACKUP_FILE_01/ dmdba@192.168.138.198:/home/dmdba/dmdbms/data/EP22

 

3.6、在MPP01机器上执行备份还原

还原

./dmrman CTLSTMT="RESTORE DATABASE '/home/dmdba/dmdbms/data/EP22/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/data/EP22/BACKUP_FILE_01'"

恢复

./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/EP22/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/data/EP22/BACKUP_FILE_01'"

更新DB_MAGIC:

./dmrman CTLSTMT="RECOVER DATABASE '/home/dmdba/dmdbms/data/EP22/DAMENG/dm.ini' UPDATE DB_MAGIC"

4、配置主备库

4.1、在MPP01配置主库EP01

4.1.1、配置dm.ini

cd /home/dmdba/dmdbms/data/EP01/DAMENG/

vi dm.ini

修改和确认以下参数:

INSTANCE_NAME =EP01

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

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

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

MPP_INI = 1 #启用 MPP 配置

 

4.1.2、配置dmmal.ini

注意:各个主备库的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 = 192.168.138.198 #MAL 系统监听 TCP 连接的 IP 地址

MAL_PORT = 5337 #MAL 系统监听 TCP 连接的端口

MAL_INST_HOST = 192.168.168.198 #实例的对外服务 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 = 192.168.138.199

MAL_PORT = 5337

MAL_INST_HOST = 192.168.138.199

MAL_INST_PORT = 5236

MAL_DW_PORT = 5253

MAL_INST_DW_PORT = 5243

[MAL_INST3]

MAL_INST_NAME =EP11

MAL_HOST = 192.168.138.199

MAL_PORT = 5338

MAL_INST_HOST = 192.168.138.199

MAL_INST_PORT = 5237

MAL_DW_PORT = 5254

MAL_INST_DW_PORT = 5244

[MAL_INST4]

MAL_INST_NAME = EP22

MAL_HOST = 192.168.138.198

MAL_PORT = 5338

MAL_INST_HOST = 192.168.138.198

MAL_INST_PORT = 5237

MAL_DW_PORT = 5254

MAL_INST_DW_PORT = 5244

 

4.1.3、配置dmarch.ini

修改 dmarch.ini,配置实时归档。除了本地归档外,其他归档配置项中的 ARCH_DEST 表示实例是 Primary 模式时,需要同步归档数据的目标实例名。当前实例 EP01 是主库,需要向 MPP 备库EP11同步数据,因此实时归档的 ARCH_DEST 配置为 EP11

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME #实时归档类型

ARCH_DEST = EP11 #实时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/EP01/arch #本地归档文件存放路径

ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 1024 #单位 Mb0 表示无限制,范围 1024~4294967294M

 

4.1.4、配置dmmpp.ctl

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

dmmp.ini配置如下:

[service_name1]

mpp_seq_no = 0

mpp_inst_name = EP01

[service_name2]

mpp_seq_no = 1

mpp_inst_name = EP02

 

回到bin目录,转换dmmpp.inidmmpp.ctl

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

4.1.5、以mount方式启动主库

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

 

4.1.6、配置OGUID

./disql SYSDBA/SYSDBA*LOCAL@localhost:5236

 

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>sp_set_oguid(45331);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

 

4.1.7、修改数据库模式

    alter database primary;

 

4.2、在MPP02上配置主库EP02

4.2.1、配置dm.ini

INSTANCE_NAME = EP02

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

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

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

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

MPP_INI = 1 #启用 MPP 配置

 

4.2.2、配置dmmal.ini

因为dmmal.ini文件都是一样的所以可以直接copy

 

4.2.3、配置dmarch.ini

 当前实例 EP02 是主库,需要向 MPP 备库EP22 同步数据,因此实时归档的 ARCH_DEST 配置为 EP22。

 

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME

ARCH_DEST = EP22 #实时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/EP02 /arch #本地归档文件存放路径

ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

 

4.2.4、配置dmmpp.ctl

将MPP01机器上的dmmpp.ctl拷贝发送过来即可

[dmdba@MPP01 DAMENG]$ scp -r /home/dmdba/dmdbms/data/EP01/DAMENG/dmmpp.ctl dmdba@192.168.138.199:/home/dmdba/dmdbms/data/EP02/DAMENG

 

4.2.5、以mount方式启动主库

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

4.2.6、配置OGUID

启动命令行工具 DIsql,使用 MPP 类型为 LOCAL 方式,登录主库设置 OGUID 值。

./disql SYSDBA/SYSDBA*LOCAL@localhost:5236

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>sp_set_oguid(45332);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

4.2.7、修改数据库模式

SQL>alter database primary;

 

4.3、在MPP02上配置备库EP11

4.3.1、配置dm.ini

INSTANCE_NAME = EP11

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

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 次的日志重演信息

 

4.3.2、配置dmmal.ini

MPP01dmmal.ini拷贝发送过来即可

 

4.3.3、配置dmarch.ini

当前实例 EP11 是备库,守护系统配置完成后,可能在各种故障处理中,EP11 切换为新的主库,正常情况下, EP01 会切换为新的备库,需 要 向 EP01 同 步 数 据 , 因 此 实 时 归 档 的 ARCH_DEST 配 置 为EP01。

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME

ARCH_DEST = EP01 #实时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/EP11 /arch #本地归档文件存放路径

ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

 

4.3.4、配置dmmpp.ctl

MPP01机器上的 dmmpp.ctl拷贝发送过来

 

4.3.5、以mount方式启动备库

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

 

 

 

4.3.6、配置OGUID

./disql SYSDBA/SYSDBA*LOCAL@localhost:5237

 

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>sp_set_oguid(45331);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

 

4.3.7、修改数据库模式

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>ALTER DATABASE STANDBY;

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

 

4.4、在MPP01配置备库EP22

4.4.1、配置dm.ini

INSTANCE_NAME = EP22

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

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 配置

 

4.4.2、配置dmmal.ini

拷贝即可

4.4.3、配置dmarch.ini

当前实例 EP22 是备库,守护系统配置完成后,可能在各种故障处理中, EP22 切换为新的主库,正常情况下, EP02 会切换为新的备库,需 要 向EP02 同 步 数 据 , 因 此 实 时 归 档 的 ARCH_DEST 配 置 为EP02。

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME

ARCH_DEST =EP02 #实时归档目标实例名

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

ARCH_DEST = /home/dmdba/dmdbms/data/EP22/DAMENG/arch #本地归档文件存放路径

ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值

ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M

4.4.4、配置dmmpp.ctl

拷贝即可

4.4.5、以mount方式启动备库

./dmserver /home/dmdba/dmdbms/data/EP22/DAMENG/dm.ini mount

 

4.4.6、配置OGUID

./disql SYSDBA/SYSDBA@localhost:5237

 

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>sp_set_oguid(45332);

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

 

4.4.7、修改数据库模式

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

SQL>ALTER DATABASE STANDBY;

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

 

4.5、配置守护进程

一般来说,每个单独的实例都是使用一个单独的守护进程守护。本例中,由于同一台机器上有不同组的两个实例,我们可以只配置一个守护进程,同时守护两个实例。

 

MPP01(/home/dmdba/dmdbms/data/EP01/DAMENG),MPP01器上配置 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 = /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 #指定备库重演日志的时间阈值,默认关闭

[GRP2]

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/EP22/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 #指定备库重演日志的时间阈值,默认关闭

 

MPP02(/home/dmdba/dmdbms/data/EP02/DAMENG),MPP02器上配置 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 = /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 = 45332 #守护系统唯一 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 #指定备库重演日志的时间阈值,默认关闭

 

4.6、配置监视器

监视器地址为:MPP02(/home/dmdba/dmdbms/data/EP02/DAMENG)

由于主备库的守护进程配置为自动切换模式,因此这里选择配置确认监视器。和普通监视器相比,确认监视器除了相同的命令支持外,在主库发生故障时,能够自动通知备库接管为新的主库,具有自动故障处理的功能。

修改 dmmonitor.ini 配置确认监视器,其中 MON_DW_IP 中的 IP 和 PORT 和dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致

 

MON_DW_CONFIRM = 1 #确认监视器模式

MON_LOG_PATH = /home/dmdba/dmdbms/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.91.132:5253

MON_DW_IP = 192.168.91.133:5254

[GRP2]

MON_INST_OGUID = 45332 #组 GRP2 的唯一 OGUID 值

#以下配置为监视器到组 GRP2 的守护进程的连接信息,以―IP:PORT‖的形式配置

#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT

MON_DW_IP = 192.168.91.133:5253

MON_DW_IP = 192.168.91.132:5254

 

至此,所有的配置完毕!

 

4.7、启动所有的守护进程

启动守护进程前注意先把实例开启。也可以注册服务,使他们开机开机自起

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

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

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

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

 

4.8、启动监视器

 

 

 

4.9、测试

模拟EP01故障(杀掉进程)

关闭MP01机器

[monitor] 2020-11-30 14:01:46: 检测到PRIMARY实例故障,开始对组(GRP1)执行自动接管

 

[monitor] 2020-11-30 14:01:46: 通知组(GRP1)当前活动的守护进程设置MID

[monitor] 2020-11-30 14:01:46: 通知组(GRP1)当前活动的守护进程设置MID成功

[monitor] 2020-11-30 14:01:46: 通知组(GRP2)当前活动的守护进程设置MID

[monitor] 2020-11-30 14:01:46: 通知组(GRP2)当前活动的守护进程设置MID成功

[monitor] 2020-11-30 14:01:46: 开始使用实例EP11接管

[monitor] 2020-11-30 14:01:46: 通知守护进程EP11切换TAKEOVER状态

[monitor] 2020-11-30 14:01:46: 守护进程(EP11)状态切换 [OPEN-->TAKEOVER]

[monitor] 2020-11-30 14:01:46: 切换守护进程EP11为TAKEOVER状态成功

[monitor] 2020-11-30 14:01:46: 实例EP11开始执行SP_SET_GLOBAL_DW_STATUS(0, 7)语句

[monitor] 2020-11-30 14:01:46: 实例EP11执行SP_SET_GLOBAL_DW_STATUS(0, 7)语句成功

[monitor] 2020-11-30 14:01:46: 实例EP11开始执行SP_APPLY_KEEP_PKG()语句

[monitor] 2020-11-30 14:01:47: 实例EP11执行SP_APPLY_KEEP_PKG()语句成功

[monitor] 2020-11-30 14:01:47: 实例EP11开始执行ALTER DATABASE MOUNT语句

[monitor] 2020-11-30 14:01:49: 实例EP11执行ALTER DATABASE MOUNT语句成功

[monitor] 2020-11-30 14:01:49: 实例EP11开始执行ALTER DATABASE PRIMARY语句

[monitor] 2020-11-30 14:01:51: 实例EP11执行ALTER DATABASE PRIMARY语句成功

[monitor] 2020-11-30 14:01:54: 通知实例EP11修改所有归档状态无效

[monitor] 2020-11-30 14:01:54: 修改所有实例归档为无效状态成功

[monitor] 2020-11-30 14:01:54: 构造新的MPPCTL文件成功

[monitor] 2020-11-30 14:01:54: 通知更新实例EP11[PRIMARY, MOUNT, ISTAT_SAME:TRUE]的MPPCTL文件

[monitor] 2020-11-30 14:01:56: 通知实例EP11[PRIMARY, MOUNT, ISTAT_SAME:TRUE]更新MPPCTL文件成功

[monitor] 2020-11-30 14:01:56: 通知更新实例EP02[PRIMARY, OPEN, ISTAT_SAME:TRUE]的MPPCTL文件

[monitor] 2020-11-30 14:01:56: 通知守护进程EP02切换MPPCTL UPDATE状态

[monitor] 2020-11-30 14:01:56: 守护进程(EP02)状态切换 [OPEN-->MPPCTL UPDATE]

[monitor] 2020-11-30 14:01:56: 切换守护进程EP02为MPPCTL UPDATE状态成功

[monitor] 2020-11-30 14:01:56: 实例EP02开始执行SP_SET_GLOBAL_DW_STATUS(0, 12)语句

[monitor] 2020-11-30 14:01:56: 实例EP02执行SP_SET_GLOBAL_DW_STATUS(0, 12)语句成功

[monitor] 2020-11-30 14:01:58: 实例EP02开始执行SP_SET_GLOBAL_DW_STATUS(12, 0)语句

[monitor] 2020-11-30 14:01:58: 实例EP02执行SP_SET_GLOBAL_DW_STATUS(12, 0)语句成功

[monitor] 2020-11-30 14:01:58: 通知守护进程EP02切换OPEN状态

[monitor] 2020-11-30 14:01:58: 守护进程(EP02)状态切换 [MPPCTL UPDATE-->OPEN]

[monitor] 2020-11-30 14:01:58: 切换守护进程EP02为OPEN状态成功

[monitor] 2020-11-30 14:01:58: 通知实例EP02[PRIMARY, OPEN, ISTAT_SAME:TRUE]更新MPPCTL文件成功

[monitor] 2020-11-30 14:01:58: 实例EP11开始执行ALTER DATABASE OPEN FORCE语句

[monitor] 2020-11-30 14:02:00: 实例EP11执行ALTER DATABASE OPEN FORCE语句成功

[monitor] 2020-11-30 14:02:00: 实例EP11开始执行SP_SET_GLOBAL_DW_STATUS(7, 0)语句

[monitor] 2020-11-30 14:02:00: 实例EP11执行SP_SET_GLOBAL_DW_STATUS(7, 0)语句成功

[monitor] 2020-11-30 14:02:00: 通知守护进程EP11切换OPEN状态

[monitor] 2020-11-30 14:02:00: 守护进程(EP11)状态切换 [TAKEOVER-->OPEN]

[monitor] 2020-11-30 14:02:00: 切换守护进程EP11为OPEN状态成功

[monitor] 2020-11-30 14:02:00: 通知组(GRP1)的守护进程执行清理操作

[monitor] 2020-11-30 14:02:00: 清理守护进程(EP11)请求成功

[monitor] 2020-11-30 14:02:00: 通知组(GRP2)的守护进程执行清理操作

[monitor] 2020-11-30 14:02:00: 清理守护进程(EP02)请求成功

[monitor] 2020-11-30 14:02:00: 使用实例EP11接管成功

 

[monitor] 2020-11-30 14:02:00: 组(GRP1)使用实例EP11自动接管成功

重启后,把EP01重新设为主备

 

4.10、MPP登录方式

bin]$ ./disql

 

2.MPP本地主库登录

bin]$ ./disql SYSDBA/SYSDBA*local:5236

 

3.MPP本地备库登录

bin]$ ./disql SYSDBA/SYSDBA:5236

posted @ 2021-05-13 02:29  莫得感情的肝帝  阅读(315)  评论(0编辑  收藏  举报