• 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

  • 相关阅读:
    Entity Framework框架 (一)
    webAPI的常用操作
    图片添加水印和生成验证码
    ASP.NET中Page_Load()与Page_Init()的区别
    session常用操作
    非递归解决组合问题
    TemplateDoesNotExist 异常
    [android]不解锁刷机
    论记忆化搜索
    flex builder 4
  • 原文地址:https://www.cnblogs.com/hong-yf/p/14762895.html
Copyright © 2020-2023  润新知