达梦数据库dm8版本Mpp集群原理系统架构和搭建测试

      当前主流的数据库系统架构有完全共享、共享存储、完全不共享和完全对等不共享几种。 其中完全共享体系如 SMP 服务器,局限于单节点服务器,通常价格比较昂贵,其扩展 性和性能受到相应的限制。 共享存储体系允许系统带有多个服务器实例,这些实例与共享存储设备相连。这种体系 可实现多机并行,保证系统的高可用性,但需要通过一个数据管道将所有 I/O 信息过滤到 共享存储子系统,对硬件的要求较高,且并非高性能解决方案。 与此相比,基于硬件的数据仓库平台一般采用完全无共享体系。在这种体系下,通讯功 能部署在一个高宽带网络互连体系上,用户通过一个主控制节点执行并行查询。该体系的一 个重要优势就是每个节点都有一个通往本地磁盘的独立通道,不但简化了体系,还提供良好 的扩展性。但主控节点的存在使得系统规模扩张时主控节点可能成为系统瓶颈,且主控节点 一旦发生故障这个系统将无法提供服务。 DM MPP 采用的完全对等无共享体系架构,结合了完全无共享体系的优点,在此基础上 又前进了一步,不采用增加主控制节点来协调所有并行处理的主从式方法,而是各个节点完 全对等,更进一步简化了体系的实现,也消除了系统可能存在的主节点瓶颈问题。 图 2.1 是这几种数据库系统架构的整体结构示意图。

 

 

 

 

 

 

 

 

DM MPP 中的每一个 DM 数据库服务器实例作为一个执行节点,简称 EP。客户端可连接 任意一个 EP 节点进行操作,所有 EP 对客户来说都是对等的。 DM MPP 系统内每个 EP 只负责自身部分数据的读写,执行计划在所有 EP 并行执行, 能充分利用各 EP 的计算能力及发挥各 EP 独立存储的优势。数据只在必要时通过 DM 的高 速邮件 MAL 系统在 EP 间传递。当通信代价占整体执行代价的比例较小时,更能体现大规模 并行处理的优势,随着系统规模的扩大,并行支路越多,优势越明显
原理概述
在 DM MPP 中,数据根据用户指定的分布规则分布在不同的 EP 上。MPP 的核心在于对 用户请求的并行执行,其执行流程可简单描述如下: 1. 用户选择一个 EP 登录,此时该 EP 就是此用户的主 EP,集群中的其余 EP 都是此 用户的从 EP; 2. 主 EP 接受用户的 SQL 请求,并生成并行执行计划; 3. 主 EP 将计划打包后分发给其他从 EP; 4. 各 EP 并行执行; 5. 主 EP 收集各 EP(包括自己)的执行结果; 6. 主 EP 将执行结果汇总后返回给用户。 如图 2.3 所示。

 

 

 

 

系统特性
DM MPP 采用完全对等不共享架构,系统中各 EP 的功能完全对等,因此对于用户来说, MPP 系统的处理是完全透明的,用户任意登录 MPP 系统的的任一节点进行操作都可获得完 全的 MPP 支持。 使用 DM MPP 可获得以下功能特性支持:
• TB/PB 级数据分析 支持数据的并行装载和操作的并行执行,数据分布式存储在各 EP 中,能支持 TB/PB 级数据分析。
• 支持绝大部分单机功能 支持绝大部分的 DM 单机版功能,同时支持行、列存储,支持存储过程、触发器、索引、 分区表、多媒体数据类型等。
• 高性价比 无需额外配置特殊软、硬件,性价比超高。
• 高可靠性 DM MPP 与 DM 数据守护相结合,为 MPP 系统中的每个 EP 配置一个或多个实时备库, 在 EP 发生故障时其对应备库能迅速切换为主库继续提供服务,确保系统的高可用性。
• 支持超大型集群 支持最多 1024 个 EP,轻松组建超大型集群。

 

测试部署4节点的达梦MPP集群数据库。

     网络配置

本次部署要求做双层网络,业务ip和心跳ip分为不同网段,由于DM MPP 系统需要通过网络在各 EP 间传递数据,因此网络的带宽较高,建议配置万兆内部网络。

节点

业务ip

心跳IP

网络要求

节点1

192.168.88.100

172.16.1.1

百兆网

节点2

192.168.88.101

172.16.1.2

百兆网

节点3

192.168.88.102

172.16.1.3

百兆网

节点4

192.168.88.103

172.16.1.4

百兆网

     软件配置

类型

名称和版本号

数量

说明

操作系统

centos 7.8 64位

4

需要安装gcc、gdb、unixodbc组件

数据库

达梦数据库管理系统 DM8

4

统计系统MPP集群

 

1      搭建MPP主备集群

    部署前准备

    集群规划

 

A机器

B机器

C机器

D机器

业务IP

192.168.88.100

192.168.88.101

192.168.88.102

192.168.88.103

心跳IP

172.16.1.1

172.16.1.2

172.16.1.3

172.16.1.4

实例名

TEST_MPP_01

TEST_MPP_44

TEST_MPP_02

TEST_MPP_33

TEST_MPP_03

TEST_MPP_22

TEST_MPP_04

TEST_MPP_11

实例端口

5538

5539

5538

5539

5538

5539

5538

5539

MAL端口

5638

5639

5638

5639

5638

5639

5638

5639

MAL守护进程端口

5738

5739

5738

5739

5738

5739

5738

5739

守护进程端口

5838

5839

5838

5839

5838

5839

5838

5839

OGUID

45331

45334

45332

45333

45333

45332

45334

45331

守护组

MPP01

MPP04

MPP02

MPP03

MPP03

MPP02

MPP04

MPP01

安装目录

/home/dmdba/dmdbms

实例目录

/dmdata/dmdb

归档上限

512000M

归档日志大小

512M

     配置A机器-TEST_MPP_01库

    初始化实例、脱机备份数据

--初始化实例

./dminit path=/dmdata/dmdb db_name=TEST_MPP_01 instance_name=TEST_MPP_01 page_size=32 extent_size=32 case_sensitive=0 charset=1 port_num=5538 sysdba_pwd=SYSDBA 

 

--前台正常启停数据库服务一次

./dmserver /dmdata/dmdb/TEST_MPP_01/dm.ini

 

--脱机备份数据

./dmrman ctlstmt=”backup database ‘/dmdata/dmdb/TEST_MPP_01/dm.ini’backupset ‘/dmdata/full_bak_01’”

 

--将备份文件scpD服务器上

scp -r /dmdata/full_bak_01 root@192.168.88.103:/dmdata

  修改dm.ini

vim /dmdata/dmdb/TEST_MPP_01/dm.ini

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

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

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

MPP_INI = 1 #启用 MPP 配置

    创建dmarch.ini

vi /dmdata/dmdb/TEST_MPP_01/dmarch.ini

[ARCHIVE_LOCAL]

  ARCH_TYPE                = LOCAL  #本地归档类型

  ARCH_DEST                     = /dmdata/dmarch/arch_01  #本地归档存放路径

  ARCH_FILE_SIZE           = 512  #单个归档大小,单位MB

  ARCH_SPACE_LIMIT        = 512000  #归档上限,单位MB

[ARCHIVE_REALTIME]

  ARCH_TYPE                = REALTIME  #实时归档类型

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

 

   创建dmmal.ini

vim /dmdata/dmdb/TEST_MPP_01/dmmal.ini

 MAL_CHECK_INTERVAL         = 10  #MAL链路检测时间间隔

MAL_CONN_FAIL_INTERVAL     = 10  #判定MAL链路断开的时间

MAL_COMPRESS_LEVEL         = 0  #MAL消息压缩等级,0表示不压缩

 

[MAL_INST1]

  MAL_INST_NAME   = TEST_MPP_01  #实例名,和 dm.ini中INSTANCE_NAME一致

  MAL_HOST          = 172.16.1.1  #MAL系统监听TCP连接的IP地址(心跳IP)

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

  MAL_INST_HOST      = 192.168.88.100  #实例的对外服务IP地址

  MAL_INST_PORT      = 5538  #实例对外服务端口,和dm.ini中PORT_NUM一致

  MAL_DW_PORT       = 5738  #实例对应的守护进程监听TCP连接的端口

  MAL_INST_DW_PORT  = 5338  #实例监听守护进程TCP连接的端口

[MAL_INST2]

  MAL_INST_NAME            = TEST_MPP_02

  MAL_HOST                 = 172.16.1.2

  MAL_PORT                 = 5638

  MAL_INST_HOST            = 192.168.88.101

  MAL_INST_PORT            = 5538

  MAL_DW_PORT              = 5738

  MAL_INST_DW_PORT         = 5838

[MAL_INST3]

  MAL_INST_NAME            = TEST_MPP_03

  MAL_HOST                 = 172.16.1.3

  MAL_PORT                 = 5638

  MAL_INST_HOST            = 192.168.88.102

  MAL_INST_PORT            = 5538

  MAL_DW_PORT              = 5738

  MAL_INST_DW_PORT         = 5838

[MAL_INST4]

  MAL_INST_NAME            = TEST_MPP_04

  MAL_HOST                 = 172.16.1.4

  MAL_PORT                 = 5638

  MAL_INST_HOST            = 192.168.88.103

  MAL_INST_PORT            = 5538

  MAL_DW_PORT              = 5738

  MAL_INST_DW_PORT         = 5838

[MAL_INST5]

  MAL_INST_NAME            = TEST_MPP_11

  MAL_HOST                 = 172.16.1.4

  MAL_PORT                 = 5639

  MAL_INST_HOST            = 192.168.88.103

  MAL_INST_PORT            = 5539

  MAL_DW_PORT              = 5739

  MAL_INST_DW_PORT         = 5839

[MAL_INST6]

  MAL_INST_NAME            = TEST_MPP_22

  MAL_HOST                 = 172.16.1.3

  MAL_PORT                 = 5639

  MAL_INST_HOST            = 192.168.88.102

  MAL_INST_PORT            = 5539

  MAL_DW_PORT              = 5739

  MAL_INST_DW_PORT         = 5839

[MAL_INST7]

  MAL_INST_NAME            = TEST_MPP_33

  MAL_HOST                 = 172.16.1.2

  MAL_PORT                 = 5639

  MAL_INST_HOST            = 192.168.88.101

  MAL_INST_PORT            = 5539

  MAL_DW_PORT              = 5739

  MAL_INST_DW_PORT         = 5839

[MAL_INST8]

  MAL_INST_NAME            = TEST_MPP_44

  MAL_HOST                 = 172.16.1.1

  MAL_PORT                 = 5639

  MAL_INST_HOST            = 192.168.88.100

  MAL_INST_PORT            = 5539

  MAL_DW_PORT              = 5739

  MAL_INST_DW_PORT         = 5839

 

 

 

注:所有节点的dmmal.ini文件需保持一致,所以可以在一个节点配置好之后,直接拷贝到其他节点。

    创建dmmpp.ini

 vi  /dmdata/dmdb/TEST_MPP_01/dmmpp.ini

[service_name1]

  mpp_seq_no               = 0              #节点在mpp环境中的序号

  mpp_inst_name            = TEST_MPP_01    #节点实例名称

[service_name2]

  mpp_seq_no               = 1

  mpp_inst_name            = TEST_MPP_02

[service_name3]

  mpp_seq_no               = 2

  mpp_inst_name            = TEST_MPP_03

[service_name4]

  mpp_seq_no               = 3

  mpp_inst_name            = TEST_MPP_04

 

   创建dmmpp.ctl

使用数据库的dmctlcvt工具,将上一步配置的dmmpp.ini文件转换为dmmpp.ctl文件:

./dmctlcvt type=2  src=/dmdata/dmdb/TEST_MPP_01/dmmpp.ini   dest=/dmdata/dmdb/TEST_MPP_01/dmmpp.ctl

注:所有节点的dmmpp.ctl文件需保持一致,故可以在一个节点配置完成之后,直接拷贝到其他节点使用。

    创建dmwatcher.ini

 vim   /dmdata/dmdb/TEST_MPP_01/dmwatcher.ini

[MPP01]

  DW_TYPE                  = GLOBAL  #全局守护类型

  DW_MODE                = AUTO  #AUTO表示故障手动切换模式,AUTO表示故障自动切换模式

  DW_ERROR_TIME          = 20  #远程守护进程故障认定时间

  INST_ERROR_TIME          = 20  #本地实例故障认定时间

  INST_RECOVER_TIME        = 60  #主库守护进程启动恢复的间隔时间

  INST_OGUID               = 45331  #守护系统唯一OGUID值

  INST_INI                 = /dmdata/dmdb/TEST_MPP_01/dm.ini  #dm.ini文件路径

  INST_AUTO_RESTART        = 1  #打开实例的自动启动功能

  INST_STARTUP_CMD       = /home/dmdba/dmdbms/bin/dmserver  #命令行方式启动

  RLOG_SEND_THRESHOLD   = 0  #指定主库发送日志到备库的时间阈值,默认关闭

  RLOG_APPLY_THRESHOLD    = 0  #指定备库重演日志的时间阈值,默认关闭

 

   拷贝实例

--拷贝实例到D机器

scp -r   /dmdata/dmdb/TEST_MPP_01 dmdba@192.168.88.103: /dmdata/dmdb

 

    注册服务

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmserver -p TEST_MPP_01 -dm_ini   /dmdata/dmdb/TEST_MPP_01/dm.ini -m mount

/home/dmdba/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p TEST_MPP_GP01 -watcher_ini   /dmdata/dmdb/TEST_MPP_01/dmwatcher.ini

 

     配置B机器-TEST_MPP_02库

   初始化实例、脱机备份数据

--初始化实例

./dminit path=/dmdata/dmdb/ db_name=TEST_MPP_02 instance_name=TEST_MPP_02 page_size=32 extent_size=32 case_sensitive=0 charset=1 port_num=5538 sysdba_pwd=SYSDBA

 

--前台正常启停数据库服务一次

 ./dmserver /dmdata/dmdb/TEST_MPP_02/dm.ini

 

--脱机备份数据

 ./dmrman ctlstmt=”backup database ‘/dmdata/dmdb/TEST_MPP_02/dm.ini’backupset ‘/dmdata/full_bak_02’”

 

--将备份文件scp到C服务器上

scp -r /dmdata/full_bak_02 dmdba@192.168.88.102:/dmdata

    修改dm.ini

vim /dmdata/dmdb/TEST_MPP_02/dm.ini

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

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

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

MPP_INI = 1 #启用 MPP 配置 

    修改dmarch.ini

 vim   /dmdata/dmdb/TEST_MPP_02/dmarch.ini

[ARCHIVE_LOCAL]

  ARCH_TYPE                = LOCAL  #本地归档类型

  ARCH_DEST                = /dmdata/dmarch/arch_02  #本地归档存放路径

  ARCH_FILE_SIZE           = 512  #单个归档大小,单位MB

  ARCH_SPACE_LIMIT         = 512000  #归档上限,单位MB

[ARCHIVE_REALTIME]

  ARCH_TYPE                = REALTIME  #实时归档类型

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

 

   创建dmmal.ini

从A机器直接拷贝dmmal.ini文件即可。

    创建dmmpp.ini

直接从A机器直接拷贝dmmpp.ini文件即可。

   创建dmmpp.ctl

直接从A机器直接拷贝dmmpp.ctl文件即可。

    创建dmwatcher.ini

vi   /dmdata/dmdb/TEST_MPP_02/dmwatcher.ini

 [MPP02]

  DW_TYPE                  = GLOBAL  #全局守护类型

  DW_MODE                  = AUTO  #AUTO表示故障手动切换模式,AUTO表示故障自动切换模式

  DW_ERROR_TIME            = 20  #远程守护进程故障认定时间

  INST_ERROR_TIME          = 20  #本地实例故障认定时间

  INST_RECOVER_TIME        = 60  #主库守护进程启动恢复的间隔时间

  INST_OGUID               = 45332  #守护系统唯一OGUID值

  INST_INI                 = /dmdata/dmdb/TEST_MPP_02/dm.ini  #dm.ini文件路径

  INST_AUTO_RESTART      = 1  #打开实例的自动启动功能

  INST_STARTUP_CMD       = /home/dmdba/dmdbms/bin/dmserver  #命令行方式启动

  RLOG_SEND_THRESHOLD   = 0  #指定主库发送日志到备库的时间阈值,默认关闭

  RLOG_APPLY_THRESHOLD     = 0  #指定备库重演日志的时间阈值,默认关闭

 

   拷贝实例

-- 拷贝实例到C机器

scp -r   /dmdata/dmdb/TEST_MPP_02 dmdba@192.168.88.102:/dmdata/dmdb

 

   注册服务

./dm_service_installer.sh -t dmserver -p TEST_MPP_02 -dm_ini   /dmdata/dmdb/TEST_MPP_02/dm.ini -m mount

./dm_service_installer.sh -t dmwatcher -p TEST_MPP_GP02 -watcher_ini   /dmdata/dmdb/TEST_MPP_02/dmwatcher.ini

 

     配置C机器-TEST_MPP_03库

    初始化实例、脱机备份数据

--初始化实例

./dminit path=/dmdata/dmdb/ db_name=TEST_MPP_03 instance_name=TEST_MPP_03 page_size=32 extent_size=32 case_sensitive=0 charset=1 port_num=5538 sysdba_pwd=SYSDBA

 

--前台正常启停数据库服务一次

 ./dmserver  /dmdata/dmdb/TEST_MPP_03/dm.ini

 

--脱机备份数据

 ./dmrman ctlstmt=”backup database ‘/dmdata/dmdb/TEST_MPP_03/dm.ini’backupset ‘/dmdata/full_bak_03’”

 

--将备份文件scp到B服务器上

scp -r /dmdata/full_bak_03 dmdba@192.168.88.101:/dmdata

 

   修改dm.ini

vim /dmdata/dmdb/TEST_MPP_03/dm.ini

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

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

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

MPP_INI = 1 #启用 MPP 配置 

 

   创建dmarch.ini

vi   /dmdata/dmdb/TEST_MPP_03/dmarch.ini

[ARCHIVE_LOCAL]

  ARCH_TYPE                = LOCAL  #本地归档类型

  ARCH_DEST                = /dmdata/dmarch/arch_03  #本地归档存放路径

  ARCH_FILE_SIZE           = 512  #单个归档大小,单位MB

  ARCH_SPACE_LIMIT         = 512000  #归档上限,单位MB

[ARCHIVE_REALTIME]

  ARCH_TYPE                = REALTIME  #实时归档类型

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

 

    创建dmmal.ini

从A机器直接拷贝dmmal.ini文件即可。

   创建dmmpp.ini

直接从A机器直接拷贝dmmpp.ctl文件即可。

   创建dmmpp.ctl

直接从A机器直接拷贝dmmpp.ctl文件即可。

    创建dmwatcher.ini

 vi   /dmdata/dmdb/TEST_MPP_03/dmwatcher.ini

[MPP03]

  DW_TYPE                  = GLOBAL  #全局守护类型

  DW_MODE                  = AUTO  #AUTO表示故障手动切换模式,AUTO表示故障自动切换模式

  DW_ERROR_TIME            = 20  #远程守护进程故障认定时间

  INST_ERROR_TIME          = 20  #本地实例故障认定时间

  INST_RECOVER_TIME        = 60  #主库守护进程启动恢复的间隔时间

  INST_OGUID               = 45333  #守护系统唯一OGUID值

  INST_INI                 = /dmdata/dmdb/TEST_MPP_03/dm.ini  #dm.ini文件路径

  INST_AUTO_RESTART        = 1  #打开实例的自动启动功能

  INST_STARTUP_CMD       = /home/dmdba/dmdbms/bin/dmserver  #命令行方式启动

  RLOG_SEND_THRESHOLD   = 0  #指定主库发送日志到备库的时间阈值,默认关闭

  RLOG_APPLY_THRESHOLD     = 0  #指定备库重演日志的时间阈值,默认关闭

 

    拷贝实例

--拷贝实例到B机器

 scp -r   /dmdata/dmdb/TEST_MPP_03 dmdba@192.168.88.101:/dmdata/dmdb

 

1.3.9    注册服务

./dm_service_installer.sh -t dmserver -p TEST_MPP_03 -dm_ini   /dmdata/dmdb/TEST_MPP_03/dm.ini -m mount

./dm_service_installer.sh -t dmwatcher -p TEST_MPP_GP03 -watcher_ini   /dmdata/dmdb/TEST_MPP_03/dmwatcher.ini

 

    配置D机器-TEST_MPP_04库

    实例、备份数据

--初始化实例

./dminit path=/dmdata/dmdb/ db_name=TEST_MPP_04 instance_name=TEST_MPP_04 page_size=32 extent_size=32 case_sensitive=0 charset=1 port_num=5538 sysdba_pwd=SYSDBA

 

--前台正常启停数据库服务一次

 ./dmserver  /dmdata/dmdb/TEST_MPP_04/dm.ini

 

--脱机备份数据

./dmrman ctlstmt=”backup database ‘/dmdata/dmdb/TEST_MPP_04/dm.ini’backupset ‘/dmdata/full_bak_04’”

 

--将备份文件scp到A服务器上

scp -r /dmdata/full_bak_04 dmdba@192.168.88.100:/dmdata

 

   修改dm.ini

vim /dmdata/dmdb/TEST_MPP_04/dm.ini

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

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

MAL_INI = 1 #打开 MAL 系统

ARCH_INI = 1 #打开归档配置

MPP_INI = 1 #启用 MPP 配置 

 

  替换dmarch.ini

vi   /dmdata/dmdb/TEST_MPP_04/dmarch.ini

 [ARCHIVE_LOCAL]

  ARCH_TYPE                = LOCAL  #本地归档类型

  ARCH_DEST                = /dmdata/dmarch/arch_04  #本地归档存放路径

  ARCH_FILE_SIZE           = 512  #单个归档大小,单位MB

  ARCH_SPACE_LIMIT         = 512000  #归档上限,单位MB

[ARCHIVE_REALTIME]

  ARCH_TYPE                = REALTIME  #实时归档类型

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

 

   创建dmmal.ini

从A机器直接拷贝dmmal.ini文件即可。

   创建dmmpp.ini

直接从A机器直接拷贝dmmpp.ctl文件即可。

    创建dmmpp.ctl

直接从A机器直接拷贝dmmpp.ctl文件即可。

    创建dmwatcher.ini

 vi   /dmdata/TEST_MPP_04/dmwatcher.ini

[MPP04]

  DW_TYPE                  = GLOBAL

  DW_MODE                  = AUTO

  DW_ERROR_TIME            = 20

  INST_ERROR_TIME          = 20

  INST_RECOVER_TIME        = 60

  INST_OGUID               = 45334

  INST_INI                 = /dmdata/dmdb/TEST_MPP_04/dm.ini

  INST_AUTO_RESTART        = 1

  INST_STARTUP_CMD         = /home/dmdba/dmdbms/bin/dmserver

  RLOG_SEND_THRESHOLD      = 0

  RLOG_APPLY_THRESHOLD     = 0

 

    拷贝实例

--拷贝实例到A机器

 scp -r   /dmdata/dmdb/TEST_MPP_04  dmdba@192.168.88.100:/dmdata/dmdb

 

    注册服务

./dm_service_installer.sh -t dmserver -p TEST_MPP_04 -dm_ini   /dmdata/dmdb/TEST_MPP_04/dm.ini -m mount

./dm_service_installer.sh -t dmwatcher -p TEST_MPP_GP04 -watcher_ini   /dmdata/dmdb/TEST_MPP_04/dmwatcher.ini

 

    配置D机器-TEST_MPP_11库

    修改dm.ini

 vi   /dmdata/dmdb/TEST_MPP_01/dm.ini

INSTANCE_NAME              = TEST_MPP_11  #数据库实例名

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

 

   修改dmarch.ini

vi   /dmdata//dmdb/TEST_MPP_01/dmarch.ini

[ARCHIVE_LOCAL]

  ARCH_TYPE                = LOCAL  #本地归档类型

  ARCH_DEST                = /dmdata/dmarch/arch_11  #本地归档存放路径

  ARCH_FILE_SIZE           = 512  #单个归档大小,单位MB

  ARCH_SPACE_LIMIT         = 512000  #归档上限,单位MB

[ARCHIVE_REALTIME]

  ARCH_TYPE                = REALTIME  #实时归档类型

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

 

    相同配置项

与A机器TEST_MPP_01的dmmal.ini、dmmpp.ini、dmmpp.ctl相同,直接拷贝即可

    注册服务

./dm_service_installer.sh -t dmserver -p TEST_MPP_11 -dm_ini   /dmdata/dmdb/TEST_MPP_01/dm.ini -m mount

./dm_service_installer.sh -t dmwatcher -p TEST_MPP_GP11 -watcher_ini   /dmdata/dmdb/TEST_MPP_01/dmwatcher.ini

   恢复数据

./dmrman CTLSTMT="RESTORE DATABASE '  /dmdata/dmdb/TEST_MPP_01/dm.ini' FROM BACKUPSET '  /dmdata/full_bak_01'"

./dmrman CTLSTMT="RECOVER DATABASE '  /dmdata/dmdb/TEST_MPP_01/dm.ini' FROM BACKUPSET '  /dmdata/full_bak_01'"

./dmrman CTLSTMT="RECOVER DATABASE '  /dmdata/dmdb/TEST_MPP_01/dm.ini' UPDATE DB_MAGIC"

 

     配置C机器-TEST_MPP_22库

    修改dm.ini

 vi   /dmdata/dmdb/TEST_MPP_02/dm.ini

INSTANCE_NAME              = TEST_MPP_22  #数据库实例名

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

 

    替换dmarch.ini

vi   /dmdata/dmdb/TEST_MPP_02/dmarch.ini

[ARCHIVE_LOCAL]

  ARCH_TYPE                = LOCAL  #本地归档类型

  ARCH_DEST                = /dmdata/dmarch/arch_22  #本地归档存放路径

  ARCH_FILE_SIZE           = 512  #单个归档大小,单位MB

  ARCH_SPACE_LIMIT         = 512000  #归档上限,单位MB

[ARCHIVE_REALTIME]

  ARCH_TYPE                = REALTIME  #实时归档类型

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

 

    相同配置项

与A机器TEST_MPP_01的dmmal.ini、dmmpp.ini、dmmpp.ctl相同,直接拷贝即可。

 

    注册服务

./dm_service_installer.sh -t dmserver -p TEST_MPP_22 -dm_ini   /dmdata/dmdb/TEST_MPP_02/dm.ini -m mount

./dm_service_installer.sh -t dmwatcher -p TEST_MPP_GP22 -watcher_ini   /dmdata/dmdb/TEST_MPP_02/dmwatcher.ini

 

    恢复数据

./dmrman CTLSTMT="RESTORE DATABASE '  /dmdata/dmdb/TEST_MPP_02/dm.ini' FROM BACKUPSET '  /dmdata/full_bak_02'"

./dmrman CTLSTMT="RECOVER DATABASE '  /dmdata/dmdb/TEST_MPP_02/dm.ini' FROM BACKUPSET  ' /dmdata/full_bak_02'"

./dmrman CTLSTMT="RECOVER DATABASE '  /dmdata/dmdb/TEST_MPP_02/dm.ini' UPDATE DB_MAGIC"

 

    配置B机器-TEST_MPP_33库

    修改dm.ini

vi   /dmdata/dmdb/TEST_MPP_03/dm.ini

INSTANCE_NAME              = TEST_MPP_33  #数据库实例名

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

 

   替换dmarch.ini

vi   /dmdata/dmdb/TEST_MPP_03/dmarch.ini

[ARCHIVE_LOCAL]

  ARCH_TYPE                = LOCAL  #本地归档类型

  ARCH_DEST                = /dmdata/dmarch/arch_33  #本地归档存放路径

  ARCH_FILE_SIZE           = 512  #单个归档大小,单位MB

  ARCH_SPACE_LIMIT         = 512000  #归档上限,单位MB

[ARCHIVE_REALTIME]

  ARCH_TYPE                = REALTIME  #实时归档类型

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

 

   相同配置项

与A机器TEST_MPP_01的dmmal.ini、dmmpp.ini、dmmpp.ctl相同,直接拷贝即可。

   注册服务

./dm_service_installer.sh -t dmserver -p TEST_MPP_33 -dm_ini   /dmdata/dmdb/TEST_MPP_03/dm.ini -m mount

./dm_service_installer.sh -t dmwatcher -p TEST_MPP_GP33 -watcher_ini   /dmdata/dmdb/TEST_MPP_03/dmwatcher.ini

 

    恢复数据

./dmrman CTLSTMT="RESTORE DATABASE '  /dmdata/dmdb/TEST_MPP_03/dm.ini' FROM BACKUPSET '  /dmdata/full_bak_03'"

./dmrman CTLSTMT="RECOVER DATABASE '  /dmdata/dmdb/TEST_MPP_03/dm.ini' FROM BACKUPSET '  /dmdata/full_bak_03'"

.//dmrman CTLSTMT="RECOVER DATABASE '  /dmdata/dmdb/TEST_MPP_03/dm.ini' UPDATE DB_MAGIC"

 

     配置A机器-TEST_MPP_44库

    修改dm.ini

 vi   /dmdata/dmdb/TEST_MPP_04/dm.ini

INSTANCE_NAME              = TEST_MPP_44  #数据库实例名

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

 

    替换dmarch.ini

vi   /dmdata/TEST_MPP_04/dmarch.ini

[ARCHIVE_LOCAL]

  ARCH_TYPE                = LOCAL  #本地归档类型

  ARCH_DEST                = /dmdata/dmarch/arch_44  #本地归档存放路径

  ARCH_FILE_SIZE           = 512  #单个归档大小,单位MB

  ARCH_SPACE_LIMIT         = 512000  #归档上限,单位MB

[ARCHIVE_REALTIME]

  ARCH_TYPE                = REALTIME  #实时归档类型

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

 

    配置相同项

与A机器TEST_MPP_01的dmmal.ini、dmmpp.ini、dmmpp.ctl相同,直接拷贝即可。

    注册服务

./dm_service_installer.sh -t dmserver -p TEST_MPP_44 -dm_ini   /dmdata/dmdb/TEST_MPP_04/dm.ini -m mount

./dm_service_installer.sh -t dmwatcher -p TEST_MPP_GP44 -watcher_ini   /dmdata/dmdb/TEST_MPP_04/dmwatcher.ini

 

    恢复数据

./dmrman CTLSTMT="RESTORE DATABASE '  /dmdata/dmdb/TEST_MPP_04/dm.ini' FROM BACKUPSET '  /dmdata/full_bak_04'"

./dmrman CTLSTMT="RECOVER DATABASE '  /dmdata/dmdb/TEST_MPP_04/dm.ini' FROM BACKUPSET '  /dmdata/full_bak_04'"

./dmrman CTLSTMT="RECOVER DATABASE ' /dmdta/dmdb/TEST_MPP_04/dm.ini' UPDATE DB_MAGIC"

 

     启动服务及查看信息

    启动数据库实例

-- A机器

cd /home/dmdba/dmdbms/bin

 ./DmServiceTEST_MPP_01 start

 ./DmServiceTEST_MPP_44 start

 

-- B机器

cd /home/dmdba/dmdbms/bin

 ./DmServiceTEST_MPP_02 start

 ./DmServiceTEST_MPP_33 start

 

-- C机器

cd /home/dmdba/dmdbms/bin

 ./DmServiceTEST_MPP_03 start

 ./DmServiceTEST_MPP_22 start

 

-- D机器

cd /home/dmdba/dmdbms/bin

./DmServiceTEST_MPP_04 start

./DmServiceTEST_MPP_11 start

    修改参数

注意使用局部登录的方式

--A机器

./disql SYSDBA/SYSDBA@localhost:5538#"{mpp_type=local}"

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

SQL> SP_SET_OGUID(45331);

SQL> ALTER DATABASE PRIMARY;

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

 

 ./disql SYSDBA/SYSDBA@localhost:5539#"{mpp_type=local}"

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

SQL> SP_SET_OGUID(45334);

SQL> ALTER DATABASE STANDBY;

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

 

--B机器

 ./disql SYSDBA/SYSDBA@localhost:5538#"{mpp_type=local}"

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

SQL> SP_SET_OGUID(45332);

SQL> ALTER DATABASE PRIMARY;

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

 

 ./disql SYSDBA/SYSDBA@localhost:5539#"{mpp_type=local}"

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

SQL> SP_SET_OGUID(45333);

SQL> ALTER DATABASE STANDBY;

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

 

-- C机器

 ./disql SYSDBA/SYSDBA@localhost:5538#"{mpp_type=local}"

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

SQL> SP_SET_OGUID(45333);

SQL> ALTER DATABASE PRIMARY;

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

 

 ./disql SYSDBA/SYSDBA@localhost:5539#"{mpp_type=local}"

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

SQL> SP_SET_OGUID(45332);

SQL> ALTER DATABASE STANDBY;

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

 

-- D机器

./disql SYSDBA/SYSDBA@localhost:5538#"{mpp_type=local}"

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

SQL> SP_SET_OGUID(45334);

SQL> ALTER DATABASE PRIMARY;

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

 

./disql SYSDBA/SYSDBA@localhost:5539#"{mpp_type=local}"

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

SQL> SP_SET_OGUID(45331);

SQL> ALTER DATABASE STANDBY;

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

 

   启动守护进程

A机器

cd /home/dmdba/dmdbms/bin

 ./DmWatcherServiceTEST_MPP_GP01 start

 ./DmWatcherServiceTEST_MPP_GP44 start

B机器

cd /home/dmdba/dmdbms/bin

./DmWatcherServiceTEST_MPP_GP02 start

./DmWatcherServiceTEST_MPP_GP33 start

C机器

cd /home/dmdba/dmdbms/bin

./DmWatcherServiceTEST_MPP_GP03 start

./DmWatcherServiceTEST_MPP_GP22 start

D机器

cd /home/dmdba/dmdbms/bin

./DmWatcherServiceTEST_MPP_GP04 start

./DmWatcherServiceTEST_MPP_GP11 start

 

    创建dmmonitor.ini

在监视器机器(143.128.4.47)上操作

vi /home/dmdba/dmmonitor/dmmonitor.ini

MON_DW_CONFIRM             = 1  #0为非确认,1为确认

MON_LOG_PATH               = /dmdata/dmmonitor/dmmonitor_log  #监视器日志文件存放路径

MON_LOG_INTERVAL           = 60  #每隔 60s 定时记录系统信息到日志文件

MON_LOG_FILE_SIZE          = 32  #单个日志大小,单位MB

MON_LOG_SPACE_LIMIT        = 0  #日志上限,单位MB

 

[MPP01]

  MON_INST_OGUID           = 45331  #组GMPP1_01的唯一OGUID 值

  MON_DW_IP                = 172.16.1.1:5738  #IP对应MAL_HOST,PORT对应MAL_DW_PORT

  MON_DW_IP                = 172.16.1.4:5739

[MPP02]

  MON_INST_OGUID           = 45332  #组GMPP1_02的唯一OGUID 值

  MON_DW_IP                = 172.16.1.2:5738

  MON_DW_IP                = 172.16.1.3:5739

[MPP03]

  MON_INST_OGUID           = 45333  #组GMPP1_03的唯一OGUID 值

  MON_DW_IP                = 172.16.1.3:5738

  MON_DW_IP                = 172.16.1.2:5739

[MPP04]

  MON_INST_OGUID           = 45334  #组GMPP1_04的唯一OGUID 值

  MON_DW_IP                = 172.16.1.4:5738

  MON_DW_IP                = 172.16.1.1:5739

 

    注册服务

./dm_service_installer.sh -t dmmonitor -p TEST_MPP -monitor_ini   /home/dmdb/dmmonitor/dmmonitor.ini

 

    启停集群

启动:

-- 启动实例

A机器: ./DmServiceTEST_MPP_01 start

B机器:./DmServiceTEST_MPP_02 start

C机器: ./DmServiceTEST_MPP_03 start

D机器: ./DmServiceTEST_MPP_04 start

 

D机器: ./DmServiceTEST_MPP_11 start

C机器:./DmServiceTEST_MPP_22 start

B机器:./DmServiceTEST_MPP_33 start

A机器: ./DmServiceTEST_MPP_44 start

 

--启动守护

A机器:./DmWatcherServiceTEST_MPP_GP01 start

B机器:./DmWatcherServiceTEST_MPP_GP02 start

C机器: ./DmWatcherServiceTEST_MPP_GP03 start

D机器: ./DmWatcherServiceTEST_MPP_GP04 start

 

D机器: ./DmWatcherServiceTEST_MPP_GP11 start

C机器:./DmWatcherServiceTEST_MPP_GP22 start

B机器:./DmWatcherServiceTEST_MPP_GP33 start

A机器: ./DmWatcherServiceTEST_MPP_GP44 start

 

--启动监视器

监视器机器:/DmMonitorServiceTEST_MPP start

 

停止:

--停止监视器

监视器机器:/DmMonitorServiceTEST_MPP stop

 

-- 停止守护

A机器: ./DmWatcherServiceTEST_MPP_GP01 stop

B机器:./DmWatcherServiceTEST_MPP_GP02 stop

C机器: ./DmWatcherServiceTEST_MPP_GP03 stop

D机器: ./DmWatcherServiceTEST_MPP_GP04 stop

 

D机器: ./DmWatcherServiceTEST_MPP_GP11 stop

C机器:./DmWatcherServiceTEST_MPP_GP22 stop

B机器:./DmWatcherServiceTEST_MPP_GP33 stop

A机器: ./DmWatcherServiceTEST_MPP_GP44 stop

 

--停止实例

A机器: ./DmServiceTEST_MPP_01 stop

B机器:./DmServiceTEST_MPP_02 stop

C机器: ./DmServiceTEST_MPP_03 stop

D机器: ./DmServiceTEST_MPP_04 stop

 

D机器: ./DmServiceTEST_MPP_11 stop

C机器:./DmServiceTEST_MPP_22 stop

B机器:./DmServiceTEST_MPP_33 start

A机器: ./DmServiceTEST_MPP_44 start

      配置服务名连接

    创建dm_svc.conf(4台机器上都配置)

vi /etc/dm_svc.conf

TIME_ZONE=(480)

LANGUAGE=(cn)

login_mode=(1)

TEST_MPP=(192.168.88.100:5538,192.168.88.101:5538,192.168.88.102:5538,192.168.88.103:5538,192.168.88.101:5539,192.168.88.102:5539,192.168.88.103:5539,192.168.88.104:5539)

 



达梦社区地址:https://eco.dameng.com
posted @ 2022-09-12 09:56  stone469  阅读(1023)  评论(0编辑  收藏  举报