DM大规模并行处理MPP_dm mpp-程序员宅基地

技术标签: database  达梦数据库  数据库  

一、概述

1.1、系统架构

  目前一些主流的数据库系统架构如下:
在这里插入图片描述
在这里插入图片描述

  • DM MPP
      采用的完全对等无共享体系架构,结合了完全无共享体系的优点,在此基础上又前进了一步,不采用增加主控制节点来协调所有并行处理的主从式方法,而是各个节点完全对等,更进一步简化了体系的实现,也消除了系统可能存在的主节点瓶颈问题。

在这里插入图片描述

  • DM MPP 中的每一个 DM 数据库服务器实例作为一个执行节点,简称 EP。客户端可连接任意一个 EP 节点进行操作,所有 EP 对客户来说都是对等的。
  • DM MPP 系统内每个 EP 只负责自身部分数据的读写,执行计划在所有 EP 并行执行,能充分利用各 EP 的计算能力及发挥各 EP 独立存储的优势。数据只在必要时通过 DM 的高速邮件 MAL 系统在 EP间传递。当通信代价占整体执行代价的比例较小时,更能体现大规模并行处理的优势,随着系统规模的扩大,并行支路越多,优势越明显。

1.2、原理概述

  在 DM MPP 中,数据根据用户指定的分布规则分布在不同的 EP 上。MPP 的核心在于对用户请求的并行执行,其执行流程可简单描述如下:

  1. 用户选择一个 EP 登录,此时该 EP 就是此用户的主 EP,集群中的其余 EP 都是此用户的从 EP;
  2. 主 EP 接受用户的 SQL 请求,并生成并行执行计划;
  3. 主 EP 将计划打包后分发给其他从 EP;
  4. 各 EP 并行执行;
  5. 主 EP 收集各 EP(包括自己)的执行结果;
  6. 主 EP 将执行结果汇总后返回给用户。
    在这里插入图片描述

1.3、系统特性

  使用 DM MPP 可获得以下功能特性支持:

  • TB/PB 级数据分析:支持数据的并行装载和操作的并行执行,数据分布式存储在各 EP 中,能支持 TB/PB级数据分析。
  • 支持绝大部分单机功能:DM 大规模并行处理 MPP、支持绝大部分的 DM
    单机版功能,同时支持行、列存储,支持存储过程、触发器、索引、分区表、多媒体数据类型等。
  • 高性价比:无需额外配置特殊软、硬件,性价比超高。
  • 高可靠性:DM MPP 与 DM 数据守护相结合,为 MPP 系统中的每个 EP 配置一个或多个实时备库,在 EP发生故障时其对应备库能迅速切换为主库继续提供服务,确保系统的高可用性。
  • 支持超大型集群:支持最多 1024 个 EP,轻松组建超大型集群

二、MPP并行执行计划

  • 在DM数据库中,SQL语句经过一系列的处理最终生成一棵由不同操作符组成的计划树,DM
    执行器以自底向上的顺序执行计划树,数据也按自底向上的顺序在计划树中流动并经过各操作符的处理,最终在计划树的根节点生成执行结果。
  • 在 DM MPP 环境中各 EP 执行的是并行计划,并行计划是在单节点执行计划的基础上,按照一定规则于适当的位置插入 MPP通讯操作符而生成的。

操作符名称	功能
MPP GATHER(MGAT)	主EP收集所有节点数据,从EP将数据发送到主EP
MPP COLLECT(MCLCT)	在MGAT的基础上,增加主从EP执行同步功能,避免数据在主EP上堆积。一个计划树中一般只会在较上层出现一个MCLCT,但可能有多个MGAT
MPP DISTRIBUTE(MDIS)	各EP节点间相互分发数据,按照分发列计算行数据的目标节点并发送过去,目标节点负责接收
MPP BROADCAST(MBRO)	收集数据到主EP,该操作符带有聚集函数运算功能
MPP SCATTER(MSCT)	主EP发送完整数据到所有从EP,保证每个节点数据都完整,一般和MGAT配合使用
操作符名称	功能
MPP GATHER(MGAT)	主EP收集所有节点数据,从EP将数据发送到主EP
MPP COLLECT(MCLCT)	在MGAT的基础上,增加主从EP执行同步功能,避免数据在主EP上堆积。一个计划树中一般只会在较上层出现一个MCLCT,但可能有多个MGAT
MPP DISTRIBUTE(MDIS)	各EP节点间相互分发数据,按照分发列计算行数据的目标节点并发送过去,目标节点负责接收
MPP BROADCAST(MBRO)	收集数据到主EP,该操作符带有聚集函数运算功能
MPP SCATTER(MSCT)	主EP发送完整数据到所有从EP,保证每个节点数据都完整,一般和MGAT配合使用

三、MPP集群搭建(手动切换)

3.1集群规划

服务器配置信息
A机器	B机器
业务IP	192.168.2.100	192.168.2.101
心跳IP	192.168.10.100	192.168.10.101
实例名	MPP1_01	MPP1_02B	MPP1_02	MPP1_01B
实例端口	5236	5237	5236	5237
MAL端口	5336	5337	5336	5337
MAL守护进程端口	5436	5437	5436	5437
守护进程端口	5536	5537	5536	5537
OGUID	45331	45332	45332	45331
守护组	GMPP1_01	GMPP1_02	GMPP1_02	GMPP1_01
安装目录	/dm8/
实例目录	/dm8/data/
归档上限	51200
确认监视器IP	192.168.10.102

3.2、配置A机器-MPP1_01库

3.2.1实例、备份数据

--初始化实例
[dmdba@dmp ~]$dminit PATH=/dm8/data/ DB_NAME=MPP1_01 INSTANCE_NAME=MPP1_01 PORT_NUM=5236 PAGE_SIZE=32 LOG_SIZE=2048

--启动服务
[dmdba@dmp ~]$ dmserver /dm8/data/MPP1_01/dm.ini

--开启归档
[dmdba@dmp ~]$ disql SYSDBA/[email protected]:5236
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/data/MPP1_01/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
SQL> ALTER DATABASE OPEN;

--备份数据
SQL> BACKUP DATABASE BACKUPSET '/dm8/data/MPP1_01/bak/BACKUP_FILE';

--修改dm.ini
SQL> SP_SET_PARA_VALUE (2,'PORT_NUM',5236);
SQL> SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SQL> SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SQL> SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SQL> SP_SET_PARA_VALUE (2,'MAL_INI',1);
SQL> SP_SET_PARA_VALUE (2,'MPP_INI',1);
SQL> SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);

3.2.2.替换dmarch.ini

[dmdba@dmp ~]$ vi /dm8/data/MPP1_01/dmarch.ini
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL  #本地归档类型
  ARCH_DEST                = /dm8/data/MPP1_01/arch/  #本地归档存放路径
  ARCH_FILE_SIZE           = 1024  #单个归档大小,单位MB
  ARCH_SPACE_LIMIT         = 51200  #归档上限,单位MB
[ARCHIVE_REALTIME]
  ARCH_TYPE                = REALTIME  #实时归档类型
  ARCH_DEST                = MPP1_01B  #实时归档目标实例名

3.2.3创建dmmal.ini

[dmdba@dmp ~]$ vi /dm8/data/MPP1_01/dmmal.ini
MAL_CHECK_INTERVAL         = 10  #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL     = 10  #判定MAL链路断开的时间
MAL_TEMP_PATH              = /dm8/data/malpath/MPP1_01/  #临时文件目录
MAL_BUF_SIZE               = 512  #单个MAL缓存大小,单位MB
MAL_SYS_BUF_SIZE           = 2048  #MAL总大小限制,单位MB
MAL_COMPRESS_LEVEL         = 0  #MAL消息压缩等级,0表示不压缩

[MAL_INST1]
  MAL_INST_NAME            = MPP1_01  #实例名,和 dm.ini中INSTANCE_NAME一致
  MAL_HOST                 = 192.168.10.100  #MAL系统监听TCP连接的IP地址
  MAL_PORT                 = 5336  #MAL系统监听TCP连接的端口
  MAL_INST_HOST            = 192.168.2.100 #实例的对外服务IP地址
  MAL_INST_PORT            = 5236  #实例对外服务端口,和dm.ini中PORT_NUM一致
  MAL_DW_PORT              = 5436  #实例对应的守护进程监听TCP连接的端口
  MAL_INST_DW_PORT         = 5536  #实例监听守护进程TCP连接的端口

[MAL_INST2]
  MAL_INST_NAME            = MPP1_01B
  MAL_HOST                 = 192.168.10.101
  MAL_PORT                 = 5337
  MAL_INST_HOST            = 192.168.2.101
  MAL_INST_PORT            = 5237
  MAL_DW_PORT              = 5437
  MAL_INST_DW_PORT         = 5537

[MAL_INST3]
  MAL_INST_NAME            = MPP1_02
  MAL_HOST                 = 192.168.10.101
  MAL_PORT                 = 5336
  MAL_INST_HOST            = 192.168.2.101
  MAL_INST_PORT            = 5236
  MAL_DW_PORT              = 5436
  MAL_INST_DW_PORT         = 5536

[MAL_INST4]
  MAL_INST_NAME            = MPP1_02B
  MAL_HOST                 = 192.168.10.100
  MAL_PORT                 = 5337
  MAL_INST_HOST            = 192.168.2.100
  MAL_INST_PORT            = 5237
  MAL_DW_PORT              = 5437
  MAL_INST_DW_PORT         = 5537

3.2.4创建dmmpp.ini

[dmdba@dmp ~]$ vi /dm8/data/MPP1_01/dmmpp.ini
[service_name1]
  mpp_seq_no               = 0
  mpp_inst_name            = MPP1_01
[service_name2]
  mpp_seq_no               = 1
  mpp_inst_name            = MPP1_02

3.2.5创建dmmpp.ctl

[dmdba@dmp ~]$ /dm8/bin/dmctlcvt t2c /dm8/data/MPP1_01/dmmpp.ini /dm8/data/MPP1_01/dmmpp.ctl

3.2.6创建dmwatcher.ini

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

[GMPP1_02]
  DW_TYPE                  = GLOBAL
  DW_MODE                  = MANUAL
  DW_ERROR_TIME            = 20
  INST_ERROR_TIME          = 20
  INST_RECOVER_TIME        = 60
  INST_OGUID               = 45332
  INST_INI                 = /dm8/data/MPP1_02/dm.ini
  INST_AUTO_RESTART        = 1
  INST_STARTUP_CMD         = /dm8/bin/dmserver
  RLOG_SEND_THRESHOLD      = 0
  RLOG_APPLY_THRESHOLD     = 0

3.2.7拷贝实例

--拷贝实例到B机器
[dmdba@dmp ~]$ scp -r /dm8/data/MPP1_01 192.168.10.101:///dm8/data/

3.2.8注册服务

[root@dmp ~]# /dm8/script/root/dm_service_installer.sh -t dmserver -p MPP1_01 -dm_ini /dm8/data/MPP1_01/dm.ini -m mount
[root@dmp ~]# /dm8/script/root/dm_service_installer.sh -t dmwatcher -p MPP1_01 -watcher_ini /dm8/data/MPP1_01/dmwatcher.ini
备注:删除自启
[root@dmp ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmServiceMPP1_01
[root@dmp ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmWatcherServiceMPP1_01

3.3、配置B机器-MPP1_02库

3.3.1实例、备份数据

--初始化实例
[dmdba@dms1 ~]$ /dm8/bin/dminit PATH=/dm8/data/ DB_NAME=MPP1_02 INSTANCE_NAME=MPP1_02 PORT_NUM=5236 PAGE_SIZE=32 LOG_SIZE=2048

--启动服务
[dmdba@dms1 ~]$ /dm8/bin/dmserver /dm8/data/MPP1_02/dm.ini

--开启归档
[dmdba@dms1 ~]$  /dm8/bin/disql SYSDBA/[email protected]:5236
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dm8/data/MPP1_02/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
SQL> ALTER DATABASE OPEN;

--备份数据
SQL> BACKUP DATABASE BACKUPSET '/dm8/data/MPP1_02/bak/BACKUP_FILE';

--修改dm.ini
SQL> SP_SET_PARA_VALUE (2,'PORT_NUM',5236);
SQL> SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SQL> SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SQL> SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SQL> SP_SET_PARA_VALUE (2,'MAL_INI',1);
SQL> SP_SET_PARA_VALUE (2,'MPP_INI',1);
SQL> SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);

3.3.2替换dmarch.ini

[dmdba@dms1 ~]$  vi /dm8/data/MPP1_02/dmarch.ini
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL  #本地归档类型
  ARCH_DEST                = /dm8/data/MPP1_02/arch/  #本地归档存放路径
  ARCH_FILE_SIZE           = 1024  #单个归档大小,单位MB
  ARCH_SPACE_LIMIT         = 51200  #归档上限,单位MB
[ARCHIVE_REALTIME]
  ARCH_TYPE                = REALTIME  #实时归档类型
  ARCH_DEST                = MPP1_02B  #实时归档目标实例名

3.3.3创建dmmal.ini

[dmdba@dms1 ~]$ vi /dm8/data/MPP1_02/dmmal.ini
MAL_CHECK_INTERVAL         = 10  #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL     = 10  #判定MAL链路断开的时间
MAL_TEMP_PATH              = /dm8/data/malpath/MPP1_02/  #临时文件目录
MAL_BUF_SIZE               = 512  #单个MAL缓存大小,单位MB
MAL_SYS_BUF_SIZE           = 2048  #MAL总大小限制,单位MB
MAL_COMPRESS_LEVEL         = 0  #MAL消息压缩等级,0表示不压缩

[MAL_INST1]
  MAL_INST_NAME            = MPP1_01  #实例名,和 dm.ini中INSTANCE_NAME一致
  MAL_HOST                 = 192.168.10.100  #MAL系统监听TCP连接的IP地址
  MAL_PORT                 = 5336  #MAL系统监听TCP连接的端口
  MAL_INST_HOST            = 192.168.2.100 #实例的对外服务IP地址
  MAL_INST_PORT            = 5236  #实例对外服务端口,和dm.ini中PORT_NUM一致
  MAL_DW_PORT              = 5436  #实例对应的守护进程监听TCP连接的端口
  MAL_INST_DW_PORT         = 5536  #实例监听守护进程TCP连接的端口
[MAL_INST2]
  MAL_INST_NAME            = MPP1_01B
  MAL_HOST                 = 192.168.10.101
  MAL_PORT                 = 5337
  MAL_INST_HOST            = 192.168.2.101
  MAL_INST_PORT            = 5237
  MAL_DW_PORT              = 5437
  MAL_INST_DW_PORT         = 5537
[MAL_INST3]
  MAL_INST_NAME            = MPP1_02
  MAL_HOST                 = 192.168.10.101
  MAL_PORT                 = 5336
  MAL_INST_HOST            = 192.168.2.101
  MAL_INST_PORT            = 5236
  MAL_DW_PORT              = 5436
  MAL_INST_DW_PORT         = 5536
[MAL_INST4]
  MAL_INST_NAME            = MPP1_02B
  MAL_HOST                 = 192.168.10.100
  MAL_PORT                 = 5337
  MAL_INST_HOST            = 192.168.2.100
  MAL_INST_PORT            = 5237
  MAL_DW_PORT              = 5437
  MAL_INST_DW_PORT         = 5537

3.3.4创建dmmpp.ini

[dmdba@dms1 ~]$  vi /dm8/data/MPP1_02/dmmpp.ini
[service_name1]
  mpp_seq_no               = 0
  mpp_inst_name            = MPP1_01
[service_name2]
  mpp_seq_no               = 1
  mpp_inst_name            = MPP1_02

3.3.5创建dmmpp.ctl

[dmdba@dms1 ~]$  /dm8/bin/dmctlcvt t2c /dm8/data/MPP1_02/dmmpp.ini /dm8/data/MPP1_02/dmmpp.ctl

3.3.6创建dmwatcher.ini

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

3.3.7拷贝实例

--拷贝实例到A机器
[dmdba@dms1 ~]$  scp -r /dm8/data/MPP1_02 [email protected]:/dm8/data/

3.3.8注册服务

[root@dms1 ~]# /dm8/script/root/dm_service_installer.sh -t dmserver -p MPP1_02 -dm_ini /dm8/data/MPP1_02/dm.ini -m mount
[root@dms1 ~]#  /dm8/script/root/dm_service_installer.sh -t dmwatcher -p MPP1_02 -watcher_ini /dm8/data/MPP1_02/dmwatcher.ini
备注:删除自启
[root@dms1 ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmServiceMPP1_02
[root@dms1 ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmWatcherServiceMPP1_02

3.4、配置B机器-MPP1_01B库

3.4.1修改dm.ini

[dmdba@dms1 ~]$ vi /dm8/data/MPP1_01/dm.ini
INSTANCE_NAME              = MPP1_01B  #数据库实例名
PORT_NUM                   = 5237  #数据库实例监听端口

3.4.2替换dmarch.ini

[dmdba@dms1 ~]$ vi /dm8/data/MPP1_01/dmarch.ini
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL  #本地归档类型
  ARCH_DEST                = /dm8/data/MPP1_01/arch/  #本地归档存放路径
  ARCH_FILE_SIZE           = 1024  #单个归档大小,单位MB
  ARCH_SPACE_LIMIT         = 51200  #归档上限,单位MB
[ARCHIVE_REALTIME]
  ARCH_TYPE                = REALTIME  #实时归档类型
  ARCH_DEST                = MPP1_01  #实时归档目标实例名

3.4.3相同配置项

与A机器MPP1_01的dmmal.ini、dmmpp.ini、dmmpp.ctl相同

3.4.4注册服务

[root@~]# /dm8/script/root/dm_service_installer.sh -t dmserver -p MPP1_01B -dm_ini /dm8/data/MPP1_01/dm.ini -m mount
备注:删除自启
[root@~]# /dm8/script/root/dm_service_uninstaller.sh -n DmServiceMPP1_01B
3.4.5恢复数据
[dmdba@dms1 ~]$ /dm8/bin/dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/MPP1_01/dm.ini' FROM BACKUPSET '/dm8/data/MPP1_01/bak/BACKUP_FILE'"
[dmdba@dms1 ~]$ /dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/MPP1_01/dm.ini' FROM BACKUPSET '/dm8/data/MPP1_01/bak/BACKUP_FILE'"
[dmdba@dms1 ~]$ /dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/MPP1_01/dm.ini' UPDATE DB_MAGIC"

3.5、配置A机器-MPP1_02B库

3.5.1修改dm.ini

[dmdba@dmp ~]$ vi /dm8/data/MPP1_02/dm.ini
INSTANCE_NAME              = MPP1_02B  #数据库实例名
PORT_NUM                   = 5237  #数据库实例监听端口

3.5.2替换dmarch.ini

[dmdba@dmp ~]$ vi /dm8/data/MPP1_02/dmarch.ini
[ARCHIVE_LOCAL]
  ARCH_TYPE                = LOCAL  #本地归档类型
  ARCH_DEST                = /dm8/data/MPP1_02/arch/  #本地归档存放路径
  ARCH_FILE_SIZE           = 1024  #单个归档大小,单位MB
  ARCH_SPACE_LIMIT         = 51200  #归档上限,单位MB
[ARCHIVE_REALTIME]
  ARCH_TYPE                = REALTIME  #实时归档类型
  ARCH_DEST                = MPP1_02  #实时归档目标实例名

3.5.3配置相同项

与B机器MPP1_02的dmmal.ini、dmmpp.ini、dmmpp.ctl相同

3.5.4注册服务

[root@dmp ~]# /dm8/script/root/dm_service_installer.sh -t dmserver -p MPP1_02B -dm_ini /dm8/data/MPP1_02/dm.ini -m mount
备注:删除自启
[root@dmp ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmServiceMPP1_02B

3.5.5恢复数据

[dmdba@dmp ~]$ /dm8/bin/dmrman CTLSTMT="RESTORE DATABASE '/dm8/data/MPP1_02/dm.ini' FROM BACKUPSET '/dm8/data/MPP1_02/bak/BACKUP_FILE'"
[dmdba@dmp ~]$ /dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/MPP1_02/dm.ini' FROM BACKUPSET '/dm8/data/MPP1_02/bak/BACKUP_FILE'"
[dmdba@dmp ~]$ /dm8/bin/dmrman CTLSTMT="RECOVER DATABASE '/dm8/data/MPP1_02/dm.ini' UPDATE DB_MAGIC"

3.6、配置监视器

1、在各节点数据库的bin目录中 存放非确认监视器配置文件。
2、在确认监视器机器上(非集群节点) 注册确认监视器自启服务。

3.6.1创建dmmonitor_manual.ini

[dmdba@dmm ~]$  vi /dm8/bin/dmmonitor_manual.ini
MON_DW_CONFIRM             = 0  #0为非确认,1为确认
MON_LOG_PATH               = ../log  #监视器日志文件存放路径
MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位MB
MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位MB

[GMPP1_01]
  MON_INST_OGUID           = 45331  #组GMPP1_01的唯一OGUID 值
  MON_DW_IP                = 192.168.10.100:5436  #IP对应MAL_HOST,PORT对应MAL_DW_PORT
  MON_DW_IP                = 192.168.10.101:5437
  
[GMPP1_02]
  MON_INST_OGUID           = 45332  #组GMPP1_02的唯一OGUID 值
  MON_DW_IP                = 192.168.10.101:5436
  MON_DW_IP                = 192.168.10.100:5437

3.6.2注册服务(选做)

[root@dmm ~]# /dm8/script/root/dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dm8/bin/dmmonitor_manual.ini
备注:删除自启
[root@dmm ~]# /dm8/script/root/dm_service_uninstaller.sh -n DmMonitorServiceMonitor

3.6.3监视器使用

在这里插入图片描述

3.7、启动服务及查看信息

3.7.1启动数据库并修改参数

A机器-MPP1_01
[dmdba@dmp ~]$ /dm8/bin/DmServiceMPP1_01 start
[dmdba@dmp ~]$ /dm8/bin/disql SYSDBA/[email protected]:5236
SQL> SP_SET_OGUID(45331);
SQL> ALTER DATABASE PRIMARY;

B机器-MPP1_02
[dmdba@dms1 ~]$ /dm8/bin/DmServiceMPP1_02 start
[dmdba@dms1 ~]$ /dm8/bin/disql SYSDBA/[email protected]:5236
SQL> SP_SET_OGUID(45332);
SQL> ALTER DATABASE PRIMARY;

A机器-MPP1_02B
[dmdba@dmp ~]$ /dm8/bin/DmServiceMPP1_02B start
[dmdba@dmp ~]$/dm8/bin/disql SYSDBA/[email protected]:5237
SQL> SP_SET_OGUID(45332);
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> ALTER DATABASE STANDBY;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

B机器-MPP1_01B
[dmdba@dms1 ~]$ /dm8/bin/DmServiceMPP1_01B start
[dmdba@dms1 ~]$ /dm8/bin/disql SYSDBA/[email protected]:5237
SQL> SP_SET_OGUID(45331);
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL> ALTER DATABASE STANDBY;
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

3.7.2启动守护进程

A机器:[dmdba@dmp ~]$ /dm8/bin/DmWatcherServiceMPP1_01 start
B机器:[dmdba@dms1 ~]$ /dm8/bin/DmWatcherServiceMPP1_02 start

3.7.3启动监视器

[dmdba@dmm bin]$ DmMonitorServiceMonitor start
Starting DmMonitorServiceMonitor: [ OK ]

--前台启动
[dmdba@dmm bin]$ dmmonitor dmmonitor_manual.ini
[monitor]         2022-06-01 12:16:58: DMMONITOR[4.0] V8
[monitor]         2022-06-01 12:16:58: DMMONITOR[4.0] IS READY.

[monitor]         2022-06-01 12:16:58: 收到守护进程(MPP1_02)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 12:16:58  OPEN           OK        MPP1_02          OPEN        PRIMARY   VALID    3        37860           37860           

[monitor]         2022-06-01 12:16:58: 收到守护进程(MPP1_01)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 12:16:58  OPEN           OK        MPP1_01          OPEN        PRIMARY   VALID    4        39318           39318           

[monitor]         2022-06-01 12:16:58: 收到守护进程(MPP1_01B)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 12:16:58  OPEN           OK        MPP1_01B         OPEN        STANDBY   VALID    4        39317           39317           

[monitor]         2022-06-01 12:16:58: 收到守护进程(MPP1_02B)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 12:16:58  OPEN           OK        MPP1_02B         OPEN        STANDBY   VALID    3        37859           37859           


输入命令非法,请输入help命令查看帮助信息!

tip
[monitor]         2022-06-01 12:17:06: [!!! 提示:本监视器不是确认监视器,在故障自动切换模式下如果发生主库故障,本监视器无法执行自动接管 !!!]

[monitor]         2022-06-01 12:17:06: 实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]不可加入其他实例,守护进程状态:OPEN,Open记录状态:VALID
[monitor]         2022-06-01 12:17:06: 实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 12:17:06: 实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 12:17:06: 实例MPP1_01B[STANDBY, OPEN, ISTAT_SAME:TRUE]可加入实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]
[monitor]         2022-06-01 12:17:06: 实例MPP1_01B[STANDBY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 12:17:06: 实例MPP1_01B[STANDBY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 12:17:06: 组(GMPP1_01)当前活动实例运行正常

[monitor]         2022-06-01 12:17:06: 实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]不可加入其他实例,守护进程状态:OPEN,Open记录状态:VALID
[monitor]         2022-06-01 12:17:06: 实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 12:17:06: 实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 12:17:06: 实例MPP1_02B[STANDBY, OPEN, ISTAT_SAME:TRUE]可加入实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]
[monitor]         2022-06-01 12:17:06: 实例MPP1_02B[STANDBY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 12:17:06: 实例MPP1_02B[STANDBY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 12:17:06: 组(GMPP1_02)当前活动实例运行正常

[monitor]         2022-06-01 12:17:06: 系统当前活动组(有活动PRIMARY实例)的MPP控制文件处于一致状态!

[monitor]         2022-06-01 12:17:06: 所有组中的活动实例运行正常!
i

3.7.4启停集群

启动
A机器:[dmdba@dmp ~]$ /dm8/bin/DmWatcherServiceMPP1_01 start
B机器:[dmdba@~]# /dm8/bin/DmWatcherServiceMPP1_02 start

停止
A机器:[dmdba@dmp ~]$ /dm8/bin/DmWatcherServiceMPP1_01 stop
B机器:[dmdba@dms1 ~]$ /dm8/bin/DmWatcherServiceMPP1_02 stop
A机器:[dmdba@dmp ~]$ /dm8/bin/DmServiceMPP1_01 stop
B机器:[dmdba@dms1 ~]$ /dm8/bin/DmServiceMPP1_02 stop
B机器:[dmdba@dms1 ~]$ /dm8/bin/DmServiceMPP1_01B stop
A机器:[dmdba@dmp ~]$ /dm8/bin/DmServiceMPP1_02B stop

四、MPP集群搭建(自动切换)

参考手动切换步骤进行配置,唯一区别如下:

4.1修改所有dmwatcher.ini文件中DW_MODE参数

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

4.2创建新dmmonitor_auto.ini文件

[dmdba@dmm ~]$  vi /dm8/bin/dmmonitor_manual.ini
MON_DW_CONFIRM             = 1  #0为非确认,1为确认
MON_LOG_PATH               = ../log  #监视器日志文件存放路径
MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE          = 512  #单个日志大小,单位MB
MON_LOG_SPACE_LIMIT        = 2048  #日志上限,单位MB

[GMPP1_01]
  MON_INST_OGUID           = 45331  #组GMPP1_01的唯一OGUID 值
  MON_DW_IP                = 192.168.10.100:5436  #IP对应MAL_HOST,PORT对应MAL_DW_PORT
  MON_DW_IP                = 192.168.10.101:5437
  
[GMPP1_02]
  MON_INST_OGUID           = 45332  #组GMPP1_02的唯一OGUID 值
  MON_DW_IP                = 192.168.10.101:5436
MON_DW_IP                = 192.168.10.100:5437

4.3重新启动服务进行查看

[root@dmm root]# ./dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dm8/bin/dmmonitor_auto.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceMonitor.service to /usr/lib/systemd/system/DmMonitorServiceMonitor.service.
创建服务(DmMonitorServiceMonitor)完成

[dmdba@dmm ~]$ DmMonitorServiceMonitor start
Starting DmMonitorServiceMonitor: [ OK ]
[dmdba@dmm ~]$ 
[dmdba@dmm bin]$ dmmonitor dmmonitor_auto.ini 
[monitor]         2022-06-01 13:11:43: DMMONITOR[4.0] V8
[monitor]         2022-06-01 13:11:43: DMMONITOR[4.0] IS READY.

[monitor]         2022-06-01 13:11:43: 收到守护进程(MPP1_02B)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 13:11:43  OPEN           OK        MPP1_02B         OPEN        STANDBY   NULL     3        38953           38953           

[monitor]         2022-06-01 13:11:43: 收到守护进程(MPP1_01B)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 13:11:43  OPEN           OK        MPP1_01B         OPEN        STANDBY   NULL     4        40411           40411           

[monitor]         2022-06-01 13:11:43: 收到守护进程(MPP1_02)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 13:11:43  OPEN           OK        MPP1_02          OPEN        PRIMARY   VALID    3        38954           38955           

[monitor]         2022-06-01 13:11:43: 收到守护进程(MPP1_01)消息
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 13:11:43  OPEN           OK        MPP1_01          OPEN        PRIMARY   VALID    4        40412           40413           


输入命令非法,请输入help命令查看帮助信息!

tip 
[monitor]         2022-06-01 13:11:52: 实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]不可加入其他实例,守护进程状态:OPEN,Open记录状态:VALID
[monitor]         2022-06-01 13:11:52: 实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 13:11:52: 实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 13:11:52: 实例MPP1_01B[STANDBY, OPEN, ISTAT_SAME:TRUE]可加入实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]
[monitor]         2022-06-01 13:11:52: 实例MPP1_01B[STANDBY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 13:11:52: 实例MPP1_01B[STANDBY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 13:11:52: 组(GMPP1_01)当前活动实例运行正常

[monitor]         2022-06-01 13:11:52: 实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]不可加入其他实例,守护进程状态:OPEN,Open记录状态:VALID
[monitor]         2022-06-01 13:11:52: 实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 13:11:52: 实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 13:11:52: 实例MPP1_02B[STANDBY, OPEN, ISTAT_SAME:TRUE]可加入实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]
[monitor]         2022-06-01 13:11:52: 实例MPP1_02B[STANDBY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 13:11:52: 实例MPP1_02B[STANDBY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 13:11:52: 组(GMPP1_02)当前活动实例运行正常

[monitor]         2022-06-01 13:11:52: 系统当前活动组(有活动PRIMARY实例)的MPP控制文件处于一致状态!

[monitor]         2022-06-01 13:11:52: 所有组中的活动实例运行正常!

4.4模拟故障看是否自动切换

--shutdown abort实例
[dmdba@dmp MPP1_01]$ disql SYSDBA/[email protected]:5236
服务器[192.168.10.100:5236]:处于主库打开状态
登录使用时间 : 3.951(ms)
disql V8
SQL> 
SQL> shutdown abort;
操作已执行
已用时间: 0.441(毫秒). 执行号:0.

--查看监视器
[monitor]         2022-06-01 13:13:45: 实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]故障
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 13:13:45  STARTUP        ERROR     MPP1_01          OPEN        PRIMARY   VALID    5        41934           41934           

[monitor]         2022-06-01 13:13:45: 守护进程(MPP1_01)状态切换 [OPEN-->STARTUP]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 13:13:45  STARTUP        ERROR     MPP1_01          OPEN        PRIMARY   VALID    5        41934           41934           

[monitor]         2022-06-01 13:13:45: 检测到PRIMARY实例故障,开始对组(GMPP1_01)执行自动接管

[monitor]         2022-06-01 13:13:45: 通知组(GMPP1_01)当前活动的守护进程设置MID
[monitor]         2022-06-01 13:13:45: 通知组(GMPP1_01)当前活动的守护进程设置MID成功
[monitor]         2022-06-01 13:13:45: 通知组(GMPP1_02)当前活动的守护进程设置MID
[monitor]         2022-06-01 13:13:46: 通知组(GMPP1_02)当前活动的守护进程设置MID成功
[monitor]         2022-06-01 13:13:46: 开始使用实例MPP1_01B接管
[monitor]         2022-06-01 13:13:46: 通知守护进程MPP1_01B切换TAKEOVER状态
[monitor]         2022-06-01 13:13:46: 守护进程(MPP1_01B)状态切换 [OPEN-->TAKEOVER]
[monitor]         2022-06-01 13:13:47: 切换守护进程MPP1_01B为TAKEOVER状态成功
[monitor]         2022-06-01 13:13:47: 实例MPP1_01B开始执行SP_SET_GLOBAL_DW_STATUS(0, 7)语句
[monitor]         2022-06-01 13:13:47: 实例MPP1_01B执行SP_SET_GLOBAL_DW_STATUS(0, 7)语句成功
[monitor]         2022-06-01 13:13:47: 实例MPP1_01B开始执行SP_APPLY_KEEP_PKG()语句
[monitor]         2022-06-01 13:13:47: 实例MPP1_01B执行SP_APPLY_KEEP_PKG()语句成功
[monitor]         2022-06-01 13:13:47: 实例MPP1_01B开始执行ALTER DATABASE MOUNT语句
[monitor]         2022-06-01 13:13:47: 实例MPP1_01B执行ALTER DATABASE MOUNT语句成功
[monitor]         2022-06-01 13:13:47: 实例MPP1_01B开始执行ALTER DATABASE PRIMARY语句
[monitor]         2022-06-01 13:13:47: 实例MPP1_01B执行ALTER DATABASE PRIMARY语句成功
[monitor]         2022-06-01 13:13:47: 通知实例MPP1_01B修改所有归档状态无效
[monitor]         2022-06-01 13:13:47: 修改所有实例归档为无效状态成功
[monitor]         2022-06-01 13:13:47: 构造新的MPPCTL文件成功
[monitor]         2022-06-01 13:13:47: 通知更新实例MPP1_01B[PRIMARY, MOUNT, ISTAT_SAME:TRUE]的MPPCTL文件
[monitor]         2022-06-01 13:13:47: 通知实例MPP1_01B[PRIMARY, MOUNT, ISTAT_SAME:TRUE]更新MPPCTL文件成功
[monitor]         2022-06-01 13:13:47: 通知更新实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]的MPPCTL文件
[monitor]         2022-06-01 13:13:47: 通知守护进程MPP1_02切换MPPCTL UPDATE状态
[monitor]         2022-06-01 13:13:47: 守护进程(MPP1_02)状态切换 [OPEN-->MPPCTL UPDATE]
[monitor]         2022-06-01 13:13:48: 切换守护进程MPP1_02为MPPCTL UPDATE状态成功
[monitor]         2022-06-01 13:13:48: 实例MPP1_02开始执行SP_SET_GLOBAL_DW_STATUS(0, 12)语句
[monitor]         2022-06-01 13:13:48: 实例MPP1_02执行SP_SET_GLOBAL_DW_STATUS(0, 12)语句成功
[monitor]         2022-06-01 13:13:48: 实例MPP1_02开始执行SP_SET_GLOBAL_DW_STATUS(12, 0)语句
[monitor]         2022-06-01 13:13:48: 实例MPP1_02执行SP_SET_GLOBAL_DW_STATUS(12, 0)语句成功
[monitor]         2022-06-01 13:13:48: 通知守护进程MPP1_02切换OPEN状态
[monitor]         2022-06-01 13:13:49: 守护进程(MPP1_02)状态切换 [MPPCTL UPDATE-->OPEN]
[monitor]         2022-06-01 13:13:50: 切换守护进程MPP1_02为OPEN状态成功
[monitor]         2022-06-01 13:13:50: 通知实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]更新MPPCTL文件成功
[monitor]         2022-06-01 13:13:50: 实例MPP1_01B开始执行ALTER DATABASE OPEN FORCE语句
[monitor]         2022-06-01 13:13:50: 实例MPP1_01B执行ALTER DATABASE OPEN FORCE语句成功
[monitor]         2022-06-01 13:13:50: 实例MPP1_01B开始执行SP_SET_GLOBAL_DW_STATUS(7, 0)语句
[monitor]         2022-06-01 13:13:50: 实例MPP1_01B执行SP_SET_GLOBAL_DW_STATUS(7, 0)语句成功
[monitor]         2022-06-01 13:13:50: 通知守护进程MPP1_01B切换OPEN状态
[monitor]         2022-06-01 13:13:51: 守护进程(MPP1_01B)状态切换 [TAKEOVER-->OPEN]
[monitor]         2022-06-01 13:13:51: 切换守护进程MPP1_01B为OPEN状态成功
[monitor]         2022-06-01 13:13:51: 通知组(GMPP1_01)的守护进程执行清理操作
[monitor]         2022-06-01 13:13:51: 清理守护进程(MPP1_01)请求成功
[monitor]         2022-06-01 13:13:51: 清理守护进程(MPP1_01B)请求成功
[monitor]         2022-06-01 13:13:51: 通知组(GMPP1_02)的守护进程执行清理操作
[monitor]         2022-06-01 13:13:51: 清理守护进程(MPP1_02)请求成功
[monitor]         2022-06-01 13:13:51: 清理守护进程(MPP1_02B)请求成功
[monitor]         2022-06-01 13:13:51: 使用实例MPP1_01B接管成功

[monitor]         2022-06-01 13:13:51: 组(GMPP1_01)使用实例MPP1_01B自动接管成功


输入命令非法,请输入help命令查看帮助信息!

tip
[monitor]         2022-06-01 13:14:05: 实例MPP1_01B[PRIMARY, OPEN, ISTAT_SAME:TRUE]不可加入其他实例,守护进程状态:OPEN,Open记录状态:VALID
[monitor]         2022-06-01 13:14:05: 实例MPP1_01B[PRIMARY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 13:14:05: 实例MPP1_01B[PRIMARY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 13:14:05: 实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 13:14:05: 实例MPP1_01[PRIMARY, OPEN, ISTAT_SAME:TRUE]故障,请等待守护进程将其自动拉起

[monitor]         2022-06-01 13:14:05: 组(GMPP1_01)中当前有PRIMARY&OPEN的实例,但存在有其他异常实例,请参考上述提示信息进行处理!

[monitor]         2022-06-01 13:14:05: 实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]不可加入其他实例,守护进程状态:OPEN,Open记录状态:VALID
[monitor]         2022-06-01 13:14:05: 实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 13:14:05: 实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 13:14:05: 实例MPP1_02B[STANDBY, OPEN, ISTAT_SAME:TRUE]可加入实例MPP1_02[PRIMARY, OPEN, ISTAT_SAME:TRUE]
[monitor]         2022-06-01 13:14:05: 实例MPP1_02B[STANDBY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2022-06-01 13:14:05: 实例MPP1_02B[STANDBY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2022-06-01 13:14:05: 组(GMPP1_02)当前活动实例运行正常

[monitor]         2022-06-01 13:14:05: 系统当前活动组(有活动PRIMARY实例)的MPP控制文件处于一致状态!

[monitor]         2022-06-01 13:14:05: 所有组中都存在有PRIMARY&OPEN实例,但仍然存在有异常实例!

[monitor]         2022-06-01 13:14:08: 实例MPP1_01[STANDBY, MOUNT, ISTAT_SAME:TRUE]恢复正常
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 13:14:08  STARTUP        OK        MPP1_01          MOUNT       STANDBY   INVALID  5        41934           41934           

[monitor]         2022-06-01 13:14:09: 守护进程(MPP1_01)状态切换 [STARTUP-->OPEN]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 13:14:09  OPEN           OK        MPP1_01          OPEN        STANDBY   INVALID  5        41934           41934           

[monitor]         2022-06-01 13:14:19: 守护进程(MPP1_01B)状态切换 [OPEN-->RECOVERY]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 13:14:19  RECOVERY       OK        MPP1_01B         OPEN        PRIMARY   VALID    6        43302           43302           

[monitor]         2022-06-01 13:14:22: 守护进程(MPP1_01B)状态切换 [RECOVERY-->OPEN]
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                  2022-06-01 13:14:22  OPEN           OK        MPP1_01B         OPEN        PRIMARY   VALID    6        43303           43303           


输入命令非法,请输入help命令查看帮助信息!

show global info
2022-06-01 13:14:32 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GMPP1_01         45331       TRUE            AUTO            TRUE      


<<DATABASE GLOBAL INFO:>>
DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
192.168.10.101      5437         2022-06-01 13:14:31  GLOBAL    VALID     OPEN           MPP1_01B         OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
192.168.10.100      5436         2022-06-01 13:14:31  GLOBAL    VALID     OPEN           MPP1_01          OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID    


#--------------------------------------------------------------------------------#
2022-06-01 13:14:32 
#--------------------------------------------------------------------------------#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GMPP1_02         45332       TRUE            AUTO            TRUE      


<<DATABASE GLOBAL INFO:>>
DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
192.168.10.101      5436         2022-06-01 13:14:32  GLOBAL    VALID     OPEN           MPP1_02          OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
192.168.10.100      5437         2022-06-01 13:14:32  GLOBAL    VALID     OPEN           MPP1_02B         OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID    

#================================================================================#

五、问题及解决方法

--登录的时候失败
[dmdba@dmp backup_file]$ disql SYSDBA/[email protected]:5236
[-6024]:全局登录时远程节点连接失败.
disql V8
用户名:SYSDBA  
密码:
[-6024]:全局登录时远程节点连接失败.
用户名:
密码:
[-6024]:全局登录时远程节点连接失败.

--原因
MPP系统中数据分布在各个EP中,用户只需要登录到某个EP,系统自动建立这个 EP与其余 EP 的连接,因此用户建立的实际上是与整个 MPP 系统的全局连接,用户对数据库的操作通过全局连接在 MPP 系统的所有 EP 进行。使用全局连接时,要求 MPP 系统的所有EP都正常提供服务,否则无法建立接。

--解决,启动MPP1_02实例
[dmdba@dms1 MPP1_01]$ DmServiceMPP1_02 start
Starting DmServiceMPP1_02: [ OK ]

--尝试登录
[dmdba@dmp backup_file]$ disql SYSDBA/[email protected]:5236

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 3.198(ms)
disql V8

社区地址:https://eco.dameng.com

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lilingfeng1/article/details/125099788

智能推荐

分布式光纤传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告_预计2026年中国分布式传感器市场规模有多大-程序员宅基地

文章浏览阅读3.2k次。本文研究全球与中国市场分布式光纤传感器的发展现状及未来发展趋势,分别从生产和消费的角度分析分布式光纤传感器的主要生产地区、主要消费地区以及主要的生产商。重点分析全球与中国市场的主要厂商产品特点、产品规格、不同规格产品的价格、产量、产值及全球和中国市场主要生产商的市场份额。主要生产商包括:FISO TechnologiesBrugg KabelSensor HighwayOmnisensAFL GlobalQinetiQ GroupLockheed MartinOSENSA Innovati_预计2026年中国分布式传感器市场规模有多大

07_08 常用组合逻辑电路结构——为IC设计的延时估计铺垫_基4布斯算法代码-程序员宅基地

文章浏览阅读1.1k次,点赞2次,收藏12次。常用组合逻辑电路结构——为IC设计的延时估计铺垫学习目的:估计模块间的delay,确保写的代码的timing 综合能给到多少HZ,以满足需求!_基4布斯算法代码

OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版-程序员宅基地

文章浏览阅读3.3k次,点赞3次,收藏5次。OpenAI Manager助手(基于SpringBoot和Vue)_chatgpt网页版

关于美国计算机奥赛USACO,你想知道的都在这_usaco可以多次提交吗-程序员宅基地

文章浏览阅读2.2k次。USACO自1992年举办,到目前为止已经举办了27届,目的是为了帮助美国信息学国家队选拔IOI的队员,目前逐渐发展为全球热门的线上赛事,成为美国大学申请条件下,含金量相当高的官方竞赛。USACO的比赛成绩可以助力计算机专业留学,越来越多的学生进入了康奈尔,麻省理工,普林斯顿,哈佛和耶鲁等大学,这些同学的共同点是他们都参加了美国计算机科学竞赛(USACO),并且取得过非常好的成绩。适合参赛人群USACO适合国内在读学生有意向申请美国大学的或者想锻炼自己编程能力的同学,高三学生也可以参加12月的第_usaco可以多次提交吗

MySQL存储过程和自定义函数_mysql自定义函数和存储过程-程序员宅基地

文章浏览阅读394次。1.1 存储程序1.2 创建存储过程1.3 创建自定义函数1.3.1 示例1.4 自定义函数和存储过程的区别1.5 变量的使用1.6 定义条件和处理程序1.6.1 定义条件1.6.1.1 示例1.6.2 定义处理程序1.6.2.1 示例1.7 光标的使用1.7.1 声明光标1.7.2 打开光标1.7.3 使用光标1.7.4 关闭光标1.8 流程控制的使用1.8.1 IF语句1.8.2 CASE语句1.8.3 LOOP语句1.8.4 LEAVE语句1.8.5 ITERATE语句1.8.6 REPEAT语句。_mysql自定义函数和存储过程

半导体基础知识与PN结_本征半导体电流为0-程序员宅基地

文章浏览阅读188次。半导体二极管——集成电路最小组成单元。_本征半导体电流为0

随便推点

【Unity3d Shader】水面和岩浆效果_unity 岩浆shader-程序员宅基地

文章浏览阅读2.8k次,点赞3次,收藏18次。游戏水面特效实现方式太多。咱们这边介绍的是一最简单的UV动画(无顶点位移),整个mesh由4个顶点构成。实现了水面效果(左图),不动代码稍微修改下参数和贴图可以实现岩浆效果(右图)。有要思路是1,uv按时间去做正弦波移动2,在1的基础上加个凹凸图混合uv3,在1、2的基础上加个水流方向4,加上对雾效的支持,如没必要请自行删除雾效代码(把包含fog的几行代码删除)S..._unity 岩浆shader

广义线性模型——Logistic回归模型(1)_广义线性回归模型-程序员宅基地

文章浏览阅读5k次。广义线性模型是线性模型的扩展,它通过连接函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。广义线性模型拟合的形式为:其中g(μY)是条件均值的函数(称为连接函数)。另外,你可放松Y为正态分布的假设,改为Y 服从指数分布族中的一种分布即可。设定好连接函数和概率分布后,便可以通过最大似然估计的多次迭代推导出各参数值。在大部分情况下,线性模型就可以通过一系列连续型或类别型预测变量来预测正态分布的响应变量的工作。但是,有时候我们要进行非正态因变量的分析,例如:(1)类别型.._广义线性回归模型

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计_垃圾分类网页设计目标怎么写-程序员宅基地

文章浏览阅读69次。环境保护、 保护地球、 校园环保、垃圾分类、绿色家园、等网站的设计与制作。 总结了一些学生网页制作的经验:一般的网页需要融入以下知识点:div+css布局、浮动、定位、高级css、表格、表单及验证、js轮播图、音频 视频 Flash的应用、ul li、下拉导航栏、鼠标划过效果等知识点,网页的风格主题也很全面:如爱好、风景、校园、美食、动漫、游戏、咖啡、音乐、家乡、电影、名人、商城以及个人主页等主题,学生、新手可参考下方页面的布局和设计和HTML源码(有用点赞△) 一套A+的网_垃圾分类网页设计目标怎么写

C# .Net 发布后,把dll全部放在一个文件夹中,让软件目录更整洁_.net dll 全局目录-程序员宅基地

文章浏览阅读614次,点赞7次,收藏11次。之前找到一个修改 exe 中 DLL地址 的方法, 不太好使,虽然能正确启动, 但无法改变 exe 的工作目录,这就影响了.Net 中很多获取 exe 执行目录来拼接的地址 ( 相对路径 ),比如 wwwroot 和 代码中相对目录还有一些复制到目录的普通文件 等等,它们的地址都会指向原来 exe 的目录, 而不是自定义的 “lib” 目录,根本原因就是没有修改 exe 的工作目录这次来搞一个启动程序,把 .net 的所有东西都放在一个文件夹,在文件夹同级的目录制作一个 exe._.net dll 全局目录

BRIEF特征点描述算法_breif description calculation 特征点-程序员宅基地

文章浏览阅读1.5k次。本文为转载,原博客地址:http://blog.csdn.net/hujingshuang/article/details/46910259简介 BRIEF是2010年的一篇名为《BRIEF:Binary Robust Independent Elementary Features》的文章中提出,BRIEF是对已检测到的特征点进行描述,它是一种二进制编码的描述子,摈弃了利用区域灰度..._breif description calculation 特征点

房屋租赁管理系统的设计和实现,SpringBoot计算机毕业设计论文_基于spring boot的房屋租赁系统论文-程序员宅基地

文章浏览阅读4.1k次,点赞21次,收藏79次。本文是《基于SpringBoot的房屋租赁管理系统》的配套原创说明文档,可以给应届毕业生提供格式撰写参考,也可以给开发类似系统的朋友们提供功能业务设计思路。_基于spring boot的房屋租赁系统论文