达梦数据库 MPP集群搭建(带主备)

MPP集群搭建(带主备)

  • 1.背景
  • 2.操作内容和要求
  • 3. 具体步骤
    • 3.1 搭建过程
      • 3.1.1 集群搭建
      • 3.1.2 准备工作
        • 3.1.2.1 初始化
        • 3.1.2.2 备份数据库
      • 3.1.3 配置主库EP01
        • 3.1.3.1 配置dm.ini
        • 3.1.3.2 配置dmmal.ini
        • 3.1.3.3 配置dmarch.ini
        • 3.1.3.4 配置dmmpp.ctl
        • 3.1.3.5 启动主库
        • 3.1.3.6 设置OGUID
        • 3.1.3.7 修改数据库模式
      • 3.1.4 配置主库EP02
        • 3.1.4.1 配置dm.ini
        • 3.1.4.2 配置dmmal.ini
        • 3.1.4.3 配置dmarch.ini
        • 3.1.4.4 配置dmmpp.ctl
        • 3.1.4.5 启动主库
        • 3.1.4.6 设置OGUID
        • 3.1.4.7 修改数据库模式
      • 3.1.5 配置备库EP01_1
        • 3.1.5.1 配置dm.ini
        • 3.1.5.2 配置dmmal.ini
        • 3.1.5.3 配置dmarch.ini
        • 3.1.5.4 配置dmmpp.ctl
        • 3.1.5.5 启动备库
        • 3.1.5.6 设置OGUID
        • 3.1.5.7 修改数据库模式
      • 3.1.6 配置备库EP02_1
        • 3.1.6.1 配置dm.ini
        • 3.1.6.2 配置dmmal.ini
        • 3.1.6.3 配置dmarch.ini
        • 3.1.6.4 配置dmmpp.ctl
        • 3.1.6.5 启动备库
        • 3.1.6.6 设置OGUID
        • 3.1.6.7 修改数据库模式
      • 3.1.7 配置dmwatcher.ini
      • 3.1.8 配置监视器
      • 3.1.9 启动守护进程
      • 3.1.10 启动监视器
    • 3.2 功能测试
      • 3.2.1 根据列自动分发测试
      • 3.2.2 服务名连接测试
      • 3.2.3 故障测试
  • 4.结论

1.背景

达梦大规模并行处理 MPP(DM Massively Parallel Processing,缩写 DM MPP)是基于达梦数据库管理系统研发的完全对等无共享式集群组件,支持将多个 DM 数据库实例组织为一个并行计算网络,对外提供统一的数据库服务。
本实验将练习带主备的MPP集群搭建过程。

2.操作内容和要求

完成MPP集群的搭建,要求如下:
1)完成MPP集群(带主备)的部署,并测试建表和插入数据是否会根据分布列进行自动分发。
2)测试通过服务名连接MPP,连接可自动负载到不同节点。
3)测试故障一个节点后,集群和持续提供服务。

3. 具体步骤

3.1 搭建过程

3.1.1 集群搭建

一共准备4台机器,EP01和EP02为两台MPP主机,EP01_1和EP02_1为对应的两台备机。监视器放在EP01_1所在的机器上。
在这里插入图片描述
在这里插入图片描述

3.1.2 准备工作

3.1.2.1 初始化

在EP01、EP02两台设备上分别初始化数据库
在这里插入图片描述
在这里插入图片描述

3.1.2.2 备份数据库

启动主库
开启归档
在这里插入图片描述
备份数据
在这里插入图片描述
拷贝文件至备机
在这里插入图片描述
在备机上恢复数据
在这里插入图片描述
两台主库均执行以上操作。

3.1.3 配置主库EP01

3.1.3.1 配置dm.ini

在 A 机器上配置主库的实例名为 EP01,dm.ini 参数修改如下

INSTANCE_NAME = EP01PORT_NUM = 5236 ##数据库实例监听端口DW_INACTIVE_INTERVAL = 60 ##接收守护进程消息超时时间ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2 ##不允许备库OFFLINE表空间MAL_INI = 1 ##打开MAL系统ARCH_INI = 1 ##打开归档配置MPP_INI = 1 ##启用MPP配置RLOG_SEND_APPLY_MON = 64 ##统计最近64次的日志发送信息
3.1.3.2 配置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.78.129 ##MAL系统监听TCP连接的IP地址MAL_PORT = 5337 ##MAL系统监听TCP连接的端口MAL_INST_HOST = 192.168.78.129 ##实例的对外服务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 = EP02MAL_HOST = 192.168.78.130MAL_PORT = 5337MAL_INST_HOST = 192.168.78.130MAL_INST_PORT = 5236MAL_DW_PORT = 5253MAL_INST_DW_PORT = 5243[MAL_INST3]MAL_INST_NAME = EP01_1MAL_HOST = 192.168.78.131MAL_PORT = 5338MAL_INST_HOST = 192.168.78.131MAL_INST_PORT = 5237MAL_DW_PORT = 5254MAL_INST_DW_PORT = 5244[MAL_INST4]MAL_INST_NAME = EP02_1MAL_HOST = 192.168.78.132MAL_PORT = 5338MAL_INST_HOST = 192.168.78.132MAL_INST_PORT = 5237MAL_DW_PORT = 5254MAL_INST_DW_PORT = 5244
3.1.3.3 配置dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE            = LOCAL        
ARCH_DEST            = /opt/dmdbms/arch        
ARCH_FILE_SIZE       = 1024        
ARCH_SPACE_LIMIT     = 51200        [ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME                    ##实时归档类型
ARCH_DEST = EP01_1              ##实时归档目标实例名
3.1.3.4 配置dmmpp.ctl

dmmpp.ctl 是二进制文件,由 dmmpp.ini 文本通过 dmctlcvt 工具转换而来。
先创建dmmpp.ini
在这里插入图片描述
转换为ctl文件
在这里插入图片描述

3.1.3.5 启动主库

以mount方式启动主库
在这里插入图片描述

3.1.3.6 设置OGUID

启动命令行工具 disql,使用 MPP 类型为 LOCAL 方式,登录主库设置 OGUID 值
在这里插入图片描述

3.1.3.7 修改数据库模式

启动命令行工具 disql,使用 MPP 类型为 LOCAL 方式,登录主库修改数据库为 Primary 模式
在这里插入图片描述

3.1.4 配置主库EP02

3.1.4.1 配置dm.ini

在 B 机器上配置主库的实例名为 EP02,dm.ini 参数修改如下

INSTANCE_NAME = EP02PORT_NUM = 5236                 ##数据库实例监听端口DW_INACTIVE_INTERVAL = 60       ##接收守护进程消息超时时间ALTER_MODE_STATUS = 0           ##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2           ##不允许备库OFFLINE表空间MAL_INI = 1                     ##打开MAL系统ARCH_INI = 1                    ##打开归档配置MPP_INI = 1                     ##启用MPP配置RLOG_SEND_APPLY_MON = 64        ##统计最近64次的日志发送信息
3.1.4.2 配置dmmal.ini

参照EP01的配置,拷贝过来即可

3.1.4.3 配置dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE            = LOCAL        
ARCH_DEST            = /opt/dmdbms/arch        
ARCH_FILE_SIZE       = 1024        
ARCH_SPACE_LIMIT     = 51200        [ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME                    ##实时归档类型
ARCH_DEST = EP02_1              ##实时归档目标实例名
3.1.4.4 配置dmmpp.ctl

将EP01的dmmpp.ctl拷贝过来即可。

3.1.4.5 启动主库

以mount方式启动主库
在这里插入图片描述

3.1.4.6 设置OGUID

启动命令行工具 DIsql,使用 MPP 类型为 LOCAL 方式,登录主库设置 OGUID 值。
在这里插入图片描述

3.1.4.7 修改数据库模式

启动命令行工具 DIsql,使用 MPP 类型为 LOCAL 方式,登录主库修改数据库为 Primary 模式。
在这里插入图片描述

3.1.5 配置备库EP01_1

3.1.5.1 配置dm.ini

在 B 机器上配置备库的实例名为 EP01_1,dm.ini 参数修改如下

INSTANCE_NAME = EP01_1PORT_NUM = 5237                 ##数据库实例监听端口DW_INACTIVE_INTERVAL = 60       ##接收守护进程消息超时时间ALTER_MODE_STATUS = 0           ##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2           ##不允许备库OFFLINE表空间MAL_INI = 1                     ##打开MAL系统ARCH_INI = 1                    ##打开归档配置MPP_INI = 1                     ##打开MPP配置RLOG_SEND_APPLY_MON = 64 ##统计最近64次的日志重演信息
3.1.5.2 配置dmmal.ini

参照EP01的配置,拷贝过来即可

3.1.5.3 配置dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE            = LOCAL        
ARCH_DEST            = /opt/dmdbms/arch        
ARCH_FILE_SIZE       = 1024        
ARCH_SPACE_LIMIT     = 51200        [ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME                    ##实时归档类型
ARCH_DEST = EP01              ##实时归档目标实例名
3.1.5.4 配置dmmpp.ctl

将EP01的dmmpp.ctl拷贝过来即可。

3.1.5.5 启动备库

以 Mount 方式启动备库
在这里插入图片描述

3.1.5.6 设置OGUID

在这里插入图片描述

3.1.5.7 修改数据库模式

在这里插入图片描述

3.1.6 配置备库EP02_1

3.1.6.1 配置dm.ini

在 A 机器上配置备库的实例名为 EP02_1,dm.ini 参数修改如下

INSTANCE_NAME = EP02_1PORT_NUM = 5237                 ##数据库实例监听端口DW_INACTIVE_INTERVAL = 60       ##接收守护进程消息超时时间ALTER_MODE_STATUS = 0           ##不允许手工方式修改实例模式/状态/OGUIDENABLE_OFFLINE_TS = 2           ##不允许备库OFFLINE表空间MAL_INI = 1                     ##打开MAL系统ARCH_INI = 1                    ##打开归档配置MPP_INI = 1                     ##打开MPP配置RLOG_SEND_APPLY_MON = 64        ##统计最近64次的日志重演信息
3.1.6.2 配置dmmal.ini

参照EP01的配置,拷贝过来即可

3.1.6.3 配置dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE            = LOCAL        
ARCH_DEST            = /opt/dmdbms/arch        
ARCH_FILE_SIZE       = 1024        
ARCH_SPACE_LIMIT     = 51200        [ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME                    ##实时归档类型
ARCH_DEST = EP02              ##实时归档目标实例名
3.1.6.4 配置dmmpp.ctl

将EP01的dmmpp.ctl拷贝过来即可。

3.1.6.5 启动备库

以 Mount 方式启动实例
在这里插入图片描述

3.1.6.6 设置OGUID

在这里插入图片描述

3.1.6.7 修改数据库模式

在这里插入图片描述

3.1.7 配置dmwatcher.ini

在4台机器上分别配置dmwatcher.ini文件
主库1
在这里插入图片描述
主库2
在这里插入图片描述
备库1
在这里插入图片描述
备库2
在这里插入图片描述

3.1.8 配置监视器

在这里插入图片描述

3.1.9 启动守护进程

在4台机器上都执行
在这里插入图片描述

3.1.10 启动监视器

在这里插入图片描述
在这里插入图片描述
集群正常

3.2 功能测试

3.2.1 根据列自动分发测试

创建哈希分布表 T_HASH,分布列为 C1

CREATE TABLE T_HASH(C1 INT, C2 CHAR(10))DISTRIBUTED BY HASH (C1);

在这里插入图片描述
编写测试脚本
在这里插入图片描述
测试脚本
在这里插入图片描述
查看数据分布,全局数据查看
在这里插入图片描述
在EP01上查看数据
在这里插入图片描述
在EP02上数据查看
在这里插入图片描述
可以观察到,数据根据C1列的hash值,把数据分布在了两个MPP数据库上。

3.2.2 服务名连接测试

配置dm_svc.conf
在这里插入图片描述
通过服务名的方式连接数据库
在这里插入图片描述
插入数据
在这里插入图片描述
以local的方式登录EP01查询
在这里插入图片描述
以local的方式登录EP02查询
在这里插入图片描述
由此可见写入数据的操作负载到了两个节点上。

3.2.3 故障测试

断开EP02的网络
在这里插入图片描述
备机2接管成功
在这里插入图片描述
备机2可正常查询数据

4.结论

为了提高 MPP 系统可靠性,克服由于单节点故障导致整个系统不能继续正常工作,DM 在普通的 MPP 系统基础上,引入主备守护机制,将 MPP 节点作为主库节点,增加备库作为备份节点,必要时可切换为主库代替故障节点工作,提高了系统的可靠性和可用性。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/48046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第263题丑数

题目&#xff1a; 题解&#xff1a; var factors []int{2, 3, 5}func isUgly(n int) bool {if n < 0 {return false}for _, f : range factors {for n%f 0 {n / f}}return n 1 }

Linux云计算 |【第一阶段】SERVICES-DAY4

主要内容&#xff1a; DHCP概述、PXE批量装机、配置PXE引导、Kickstart自动应答、Cobbler装机平台 一、DHCP服务概述及原理 DHCP动态主机配置协议&#xff08;Dynamic Host Configuration Protocol&#xff09;&#xff0c;由IETF&#xff08;Internet网络工程师任务小组&…

IMU提升相机清晰度

近期&#xff0c;一项来自北京理工大学和北京师范大学的团队公布了一项创新性的研究成果&#xff0c;他们将惯性测量单元&#xff08;IMU&#xff09;和图像处理算法相结合&#xff0c;显著提升了非均匀相机抖动下图像去模糊的准确性。 研究团队利用IMU捕捉相机的运动数据&…

通过 EMR Serverless Spark 提交 PySpark 流任务

在大数据快速发展的时代&#xff0c;流式处理技术对于实时数据分析至关重要。EMR Serverless Spark提供了一个强大而可扩展的平台&#xff0c;它不仅简化了实时数据处理流程&#xff0c;还免去了服务器管理的烦恼&#xff0c;提升了效率。本文将指导您使用EMR Serverless Spark…

巧用Vue3 composition api的计算属性实现扁平化tree连线

本示例节选自vue3最新开源组件实战教程大纲&#xff08;持续更新中&#xff09;的tree组件开发部分。将进一步把基于Vue3 composition api的computed计算属性特性应用到组件开发实战中&#xff0c;继续以最佳实践的方式呈现给大家。 下面我们要实现的是扁平化的dom结构所呈现的…

我去,怎么http全变https了

项目场景&#xff1a; 在公司做的一个某地可视化项目。 部署采用的是前后端分离部署&#xff0c;图片等静态资源请求一台minio服务器。 项目平台用的是http 图片资源的服务器用的是https 问题描述 在以https请求图片资源时&#xff0c;图片请求成功报200。 【现象1】: 继图…

苹果电脑pdf合并软件 苹果电脑合并pdf 苹果电脑pdf怎么合并

在数字化办公日益普及的今天&#xff0c;pdf文件因其跨平台兼容性强、格式稳定等特点&#xff0c;已经成为工作、学习和生活中不可或缺的文件格式。然而&#xff0c;我们常常面临一个问题&#xff1a;如何将多个pdf文件合并为一个&#xff1f;这不仅有助于文件的整理和管理&…

最新!CSSCI(2023-2024)期刊目录公布!

【SciencePub学术】据鲁迅美术学院7月16日消息&#xff0c;近日&#xff0c;南京大学中国社会科学研究评价中心公布了中文社会科学引文索引&#xff08;CSSCI&#xff09;&#xff08;2023—2024&#xff09;数据库最新入选目录。 C刊一般指CSSCI来源期刊&#xff0c;即南大核心…

Python 合并两个有序数组

Python 合并两个有序数组 正文 正文 题目说明如下&#xff1a; 这里我们直接让 nums1 的后 n 个数等于 nums2 数组&#xff0c;然后对 nums1 数组整体进行排序即可。 class Solution:def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:"…

​数据结构之初始二叉树(3)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 二叉树的基本操作 通过上篇文章的学习&#xff0c;我们简单的了解了二叉树的相关操作。接下来就是有…

uniapp上传功能用uni-file-picker实现

文章目录 html代码功能实现css样式代码 html代码 <uni-file-pickerselect"onFileSelected"cancel"onFilePickerCancel"limit"1"class"weightPage-upload-but"file-mediatype"image"></uni-file-picker><imag…

Java中的JDK、JRE、JVM

JDK&#xff08;Java Development kit&#xff09;&#xff1a;Java开发工具包 JVM&#xff08;Java Virtual Machine&#xff09;&#xff1a;Java虚拟机&#xff0c;真正运行Java程序的地方 核心类库&#xff1a;Java已经写好的东西&#xff0c;可以直接用 开发工具&#xff…

【C语言】 作业11 链表+实现函数封装

递归实现链表数据互换&#xff0c;纯不会&#xff0c;明天再说 1、链表实现以下功能 链表&#xff0c;创建链表&#xff0c;申请节点&#xff0c;判空&#xff0c;头插&#xff0c;遍历输出&#xff0c;通过位置查找节点&#xff0c;任意位置插入&#xff0c;头删&#xff0c;…

下载安装VSCode并添加插件作为仓颉编程入门编辑器

VSCode下载地址&#xff1a;下载 Visual Studio Code - Mac、Linux、Windows 插件下载&#xff1a;GitCode - 全球开发者的开源社区,开源代码托管平台 仓颉社区中下载解压 cangjie.vsix 插件 打开VSCode 按 Ctrl Shift X 弹出下图 按照上图步骤依次点击选中我们下…

嵌入式C/C++、FreeRTOS、STM32F407VGT6和TCP:智能家居安防系统的全流程介绍(代码示例)

1. 项目概述 随着物联网技术的快速发展,智能家居安防系统越来越受到人们的重视。本文介绍了一种基于STM32单片机的嵌入式安防中控系统的设计与实现方案。该系统集成了多种传感器,实现了实时监控、报警和远程控制等功能,为用户提供了一个安全、可靠的家居安防解决方案。 1.1 系…

Large Language Model系列之三:大模型并行训练(Parallel Training of Large Language Models)

Large Language Model系列之三&#xff1a;大模型并行训练&#xff08;Parallel Training of Large Language Models&#xff09; 1 各类并行算法 参考资料: 1 大模型并行训练 2 ZeRO&#xff08;Zero Redundancy Optimizer&#xff09;零冗余优化 ZeRO&#xff08;Zero Red…

【.NET全栈】ASP.NET开发Web应用——计算器

文章目录 一、简单计算器二、复杂计算器 一、简单计算器 新建Web应用项目&#xff0c;窗体页面 窗体设计代码&#xff1a; <% Page Language"C#" AutoEventWireup"true" CodeBehind"Default.aspx.cs" Inherits"AdoDemo.Default"…

以Zookeeper为例 浅谈脑裂与奇数节点问题

一、脑裂现象的定义与影响 脑裂&#xff08;split-brain&#xff09;是指在分布式系统中&#xff0c;因网络分区或其他故障导致系统被切割成两个或多个相互独立的子系统&#xff0c;每个子系统可能独立选举出自己的领导节点。这一现象在依赖中心领导节点&#xff08;如Elastic…

亚信安全终端一体化解决方案入选应用创新典型案例

近日&#xff0c;由工业和信息化部信息中心主办的2024信息技术应用创新发展大会暨解决方案应用推广大会成功落幕&#xff0c;会上集中发布了一系列技术水平先进、应用效果突出、产业带动性强的信息技术创新工作成果。其中&#xff0c;亚信安全“终端一体化安全运营解决方案”在…

【漏洞复现】Next.js框架存在SSRF漏洞(CVE-2024-34351)

0x01 产品简介 ZEIT Next.js是ZEIT公司的一款基于Vue.js、Node.js、Webpack和Babel.js的开源Web应用框架。 0x02 漏洞概述 ZEIT Next.js 13.4版本至14.1.1之前版本存在代码问题漏洞&#xff0c;该漏洞源于存在服务器端请求伪造 (SSRF) 漏洞 0x03 搜索引擎 body"/_nex…