当前位置: 首页 > 编程日记 > 正文

linux mpp集群环境,Linux环境下,DM8-MPP两节点集群搭建

目录

1.主备库,监视器信息部署

2.初始化数据库实例

3.启停数据库

4.数据库备份与还原

5.检查、修改和创建配置文件

6.启动数据库,修改数据库模式和OGUID

8.配置守护进程

9.配置监视器

10.启动守护进程

11.启动监视器

1.主备库,监视器信息部署

(1)主库

实例名

存放路径

端口号

所在机器

对应备库

OGUID

ip

GRP1_MPP_EP01

/home/dmdba/dmdbms/data

5236

CenOS7_1

GRP1_MPP_EP11

45330

192.168.75.131

GRP2_MPP_EP02

/home/dmdba/dmdbms/data

5236

CenOS7_2

GRP2_MPP_EP22

45331

192.168.75.130

(2)备库

实例名

存放路径

端口号

所在机器

对应主库

OGUID

ip

GRP1_MPP_EP11

/home/dmdba/dmdbms/data

5237

CenOS7_2

GRP1_MPP_EP01

45330

192.168.75.130

GRP2_MPP_EP22

/home/dmdba/dmdbms/data

5237

CenOS7_1

GRP2_MPP_EP02

45331

192.168.75.131

(3)监视器

实例名

存放路径

端口号

所在机器

ip

GRP_MPP_Monitor

/home/dmdba/dmdbms/data

5236

CenOS7_3

192.168.75.132

2.初始化数据库实例

按照上面的参数设置,初始化四个数据库实例,主库两个,备库两个,示例如下:

./dminit path=/home/dmdba/dmdbms/data db_name=GRP2_MPP_EP22 instance_name=GRP2_MPP_EP22 port_num=5237

3.启停数据库

前台启动方式,启停上面初始化的数据库,示例如下:

./dmserver /home/dmdba/dmdbms/data/GRP1_MPP_EP01/dm.ini

4.数据库备份与还原

为了同步各数据库的数据,确保各数据保持完全一致。这里需对主库进行备份操作,备库进行恢复、还原操作。

方法:使用DMRMAN工具,备份主库上面的数据,将备份集传输到备库上,同样使用DMRMAN工具进行数据还原、恢复、更新,示例:

主库备份示例:

./dmrman ctlstmt="backup database '/home/dmdba/dmdbms/data/GRP2_MPP_EP02/dm.ini' to db_bk backupset '/home/dmdba/dmdbms/data/GRP2_MPP_EP02/db_bk'"

备库还原、恢复、更新魔数示例:

还原:./dmrman ctlstmt="restore database '/home/dmdba/dmdbms/data/GRP2_MPP_EP02/dm.ini' from backupset '/home/dmdba/dmdbms/data/GRP2_MPP_EP02/db_back'"

恢复:./dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/GRP2_MPP_EP02/dm.ini' from backupset '/home/dmdba/dmdbms/data/GRP2_MPP_EP02/db_back'"

更新:./dmrman ctlstmt="recover database '/home/dmdba/dmdbms/data/GRP2_MPP_EP02/dm.ini' update db_magic"

5.检查、修改和创建配置文件

(1)dm.ini

以主库GRP1_MPP_EP01为例,修改dm.ini文件,其他库需要修改的地方已标红

参数

INSTANCE_NAME

GRP1_MPP_EP01

PORT_NUM

5236

ALTER_MODE_STATUS

0

ENABLE_OFFLINE_TS

2

MAL_INI

1

ARCH_INI

1

MPP_INI

1

(2)dmmal.ini

创建MAL系统配置文件dmmal.ini,并添加信息(各主备库的dmmal.ini文件必须完全一致,其他库不用修改)

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

[MAL_INST1]

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

MAL_HOST = 192.168.75.131 #MAL 系统监听 TCP 连接的 IP 地址

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

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

MAL_HOST = 192.168.75.136

MAL_PORT = 5337

MAL_INST_HOST = 192.168.1.132

MAL_INST_PORT = 5236

MAL_DW_PORT = 5253

MAL_INST_DW_PORT = 5243

[MAL_INST3]

MAL_INST_NAME = GRP1_MPP_EP11

MAL_HOST = 192.168.75.136

MAL_PORT = 5338

MAL_INST_HOST = 192.168.1.132

MAL_INST_PORT = 5237

MAL_DW_PORT = 5254

MAL_INST_DW_PORT = 5244

[MAL_INST4]

MAL_INST_NAME = GRP2_MPP_EP22

MAL_HOST = 192.168.75.131

MAL_PORT = 5338

MAL_INST_HOST = 192.168.1.131

MAL_INST_PORT = 5237

MAL_DW_PORT = 5254

MAL_INST_DW_PORT = 5244

(3)dmarch.ini

创建归档文件dmarch.ini,并添加内容(实时归档)-其他库需要修改的内容:REALTIME1:ARCH_DEST=远程备库实例名;

LOCAL1:ARCH_DEST=当前库的本地归档路径

[ARCHIVE_REALTIME1]

ARCH_TYPE = REALTIME #实时归档类型

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

[ARCHIVE_LOCAL1]

ARCH_TYPE = LOCAL #本地归档类型

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

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

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

(4)dmmpp.ini

创建MPP配置文件dmmpp.ini,添加内容,并使用转换工具dmctlcvt转换为dmmpp.ctl控制文件(其他库不用修改,直接拷贝)。

示例:

[service_name1]

mpp_seq_no = 0

mpp_inst_name = GRP1_MPP_EP01

[service_name2]

mpp_seq_no = 1

mpp_inst_name = GRP2_MPP_EP02

文件转换命令:

./dmctlcvt type=2 src=/home/dmdba/dmdbms/data/GRP2_MPP_EP02/dmmpp.ini dest=/home/dmdba/dmdbms/data/GRP2_MPP_EP02/dmmpp.ctl

6.启动数据库,修改数据库模式和OGUID

注:同一守护组的OGUID保持一致,数据库模式:主库-primary;备库-standby

启动方式:mount

修改命令示例:

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);

sp_set_oguid(45330);

alter database primary;

SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

8.配置守护进程

因为在本次演示的例子中,每台机器上有两个实例,所以,配置一个守护进程,同时守护两个实例即可,创建dmwatcher.ini文件添加内容:注意修改:OGUID:INST_OGUID以及配置文件路径:INST_INI

[GRP1]

DW_TYPE = GLOBAL #全局守护类型

DW_MODE = AUTO #自动切换模式

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

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

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

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

INST_INI = /home/dmdba/dmdbms/data/GRP1_MPP_EP01/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 = 45331 #守护系统唯一 OGUID 值

INST_INI = /home/dmdba/dmdbms/data/GRP2_MPP_EP22/dm.ini #dm.ini 配置文件路径

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

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

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

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

9.配置监视器

创建监视器配置文件dmmonitor.ini(监视器类型:确认监视器-发生故障,自动接管),示例:

MON_DW_CONFIRM = 1 #确认监视器模式

MON_LOG_PATH = /home/dmdba/dmdbms/data/GRP2_MPP_EP02/mon_log #监视器日志文件存放路径

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

MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M

MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

[GRP1]

MON_INST_OGUID = 45330 #组 GRP1 的唯一 OGUID 值 #以下配置为监视器到组 GRP1 的守护进程的连接信息,以―IP:PORT‖的形式配置

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

MON_DW_IP = 192.168.75.131:5253

MON_DW_IP = 192.168.75.136:5254

[GRP2]

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

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

MON_DW_IP = 192.168.75.136:5253

MON_DW_IP = 192.168.75.131:5254

10.启动守护进程

示例:

./dmwatcher /home/dmdba/dmdbms/data/GRP1_MPP_EP01/dmwatcher.ini

11.启动监视器

示例:

./dmmonitor /home/dmdba/dmdbms/data/GRP2_MPP_EP02/dmmonitor.ini

至此MPP实时主备搭建完毕,在搭建步骤和各项配置都正确的情况下,在监视器上执行show命令,可以监控到所有实例都处于Open状态,所有守护进程也都处于Open状态,即为正常运行状态。

相关文章:

线性代数 2021-2022-1 考试要点

1、线性方程组解的判定、解的结构与求解; 2、矩阵秩的相关性质; 3、矩阵、分块矩阵的运算; 4、行列式的运算; 5、矩阵方程的求解; 6、向量空间(RnR^nRn空间,多项式空间,矩阵空间…

JavaServer Faces技术

一、JSF是构建Java Web程序的服务器端的组件框架,包括: 1)一个API,用来表示组件及管理他们的状态;处理事件;服务器端;数据转换;定义页面导航;支持国际化和可访问性&#…

Ubuntu安装Anaconda

安装Anaconda的最简单方法是下载最新的Anaconda安装程序bash脚本,然后运行它。 在Anaconda Downloads页面找到最新版本的Anaconda for Python 3 。当前最新版本为5.1.0。 切换到/tmp服务器上的目录 cd /tmp 在运行它之后可以删除掉。 使用wget命令下载anaconda安装包…

linux制作共享服务器,Linux如何制作一个简单的共享服务器

Linux下打开一个终端,cd 到某一个目录下,输入“ python -m SimpleHTTPServer ”,就可以将当前目录下的内容分享出去,如下:linuxidc www.linuxidc.com:~$ cd VideoSpace/linuxidc www.linuxidc.com:~/VideoSpace$ pytho…

报表应用系列——图表JFreeChart: 第 4 章 折线图

双击代码全选12345DefaultCategoryDataset dataset  new DefaultCategoryDataset(); dataset.addValue(100, "Jan", "Spring Security"); dataset.addValue(150, "Jan", "jBPM 4"); dataset.addValue(300, "Jan&qu…

中国电子学会青少年编程能力等级测试图形化四级编程题:小猴数草莓

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100,小马老…

python_day16_pythom-mysql-API

16、py_mysql操作 pymysql 是python中操作mysql的模块,其使用方法和py2的mysqldb几乎相同 16.1、pymysql模块安装 1. pip install pymysql 16.2、使用 16.2.1、导入模块 import pymysql connpymysql.connect(host127.0.0.1,port3306,userroot,passwdxiong,dbs1) #…

linux打开 root .m2,小辣椒M2 (LA-M2)获取ROOT权限教程,新手root必看

小辣椒M2 (LA-M2)如何获取ROOT权限?用什么ROOT工具最简单?请跟着小编一起来看看如何用奇兔刷机对小辣椒M2 (LA-M2)进行一键ROOT,小编特别亲手制作了详细的小辣椒M2 (LA-M2) ROOT教程图解,非常适合初次接触ROOT的朋友,具体步骤如下&#xff…

C++中typedef和define的区别

typedef和#define的用法与区别 一、typedef的用法 在C/C语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef int INT;typedef int …

SVN 钩子操作-同步更新web目录

一个简单的钩子演示:也可以网上搜索其他高级的 本次想要达到的功能是:每次用户commit 到仓库后,仓库的钩子会自动把程序又更新的www/的web发布目录 1.现在web目录下创建一个test.com网站目录 [rootwentao13 ~]# cd /var/www/html/ [rootwenta…

【组队学习】【32期】深入理解计算机系统

深入理解计算机系统 航路开辟者:李岳昆、易远哲领航员:初晓宇航海士:叶前坤、沈豪 基本信息 开源内容:https://github.com/datawhalechina/team-learning-program/tree/master/ComputerSystems内容属性:公测课程内容…

linux中怎么退出执行过程,(进程)处理过程中的Linux:从执行到退出

Linux是一个多任务操作系统,表面上看,同时运行许多任务——即进程。每一个进程都在系统中留下足迹。这里介绍一些检查这些足迹的工具,并且还要说明蔓延的/proc目录到底是什么。欢迎归来。上周我们考察Linux调度程序如何区分要运行的进程的优先…

git - 简易指南

http://www.bootcss.com/p/git-guide/转载于:https://www.cnblogs.com/passer1991/p/3279333.html

python爬虫 智联招聘 工作地点

需求:智联上找工作的时候,工作地点在搜索页面只能看到城市-区。看不到具体的地址。(离家近的工作肯定优先考虑)思路:爬取搜索页面(页面一)然后进去其中一个内页,再爬工作地点&#x…

2021-2022-1 线性代数知识点总结的视频

01 线性方程组02 矩阵及其运算03 向量空间(上)03 向量空间(下)04 特征值与特征向量05 实对称矩阵与二次型2021 线性代数 第三章 习题课2021 线性代数 第四章 习题课2021-2022-1 线性代数考试要点2021-2022-1 线性代数知识点总结 …

win使用linux共享打印机,Ubuntu 12.04以及 Window 下使用共享打印机

目前针对各个办公室里面都已经配置打印机了,为了节约资源,该打印机想必已经被网管设置成了共享,然而我们应该如何进行使用呢?笔者目前常用的系统是Ubuntu 12.04,偶尔想打印东西的不想切换到XP系统下,就此简单介绍下如何…

poj3280Cheapest Palindrome(记忆化)

链接 真的1A了。。 一开始想复杂了 想着补全再删 没想好 后来想到递归 大的回文串是由小的推过来的 一直递归下去 对于当前的i&#xff0c;j可以选择保留或者删除 选个最小的 1 #include <iostream>2 #include<cstring>3 #include<algorithm>4 #include<…

【组队学习】【32期】推荐系统-新闻推荐系统实践

推荐系统-新闻推荐系统实践 航路开辟者&#xff1a;罗如意领航员&#xff1a;肖桐航海士&#xff1a;汪志鸿、吴忠强、赖敏材、王辰玥、毛伟、宋禹成、陈雨龙、管柯琴 基本信息 开源内容&#xff1a;https://github.com/datawhalechina/fun-rec内容属性&#xff1a;公测课程…

Redis配置到本地以及可视化工具的安装运用

配置到本地出错&#xff1a; 解决方法&#xff1a; 1、先把原来的服务删除了 2、在重新配置服务。 真的&#xff0c;我就是这样的。。 转载于:https://www.cnblogs.com/stujike/p/8672165.html

linux消息通信无法接收,进程间通信:消息队列有关问题:进程1接收不到进程2的消息...

进程间通信&#xff1a;消息队列有关问题&#xff1a;进程1接收不到进程2的消息进程间通信&#xff1a;消息队列有关问题&#xff1a;进程1接收不到进程2的消息日期&#xff1a;2014-05-16  浏览次数&#xff1a;20365 次进程间通信&#xff1a;消息队列问题&#xff1a;进程1…

java听课笔记(四)

程序流程控制 分支 顺序 循环 if switch&case 1 2 3 调整 break 1.6 前 switch(byte、short、char、int) 1.7 可放String 循环 while&#xff08;次数不确定&#xff09; do while for&#xff08;确定次数&#xff09; break&#xff08;跳出本层循环&#xff09; continu…

【组队学习】【32期】scikit-learn教程

scikit-learn教程 航路开辟者&#xff1a;江季领航员&#xff1a;李牧轩航海士&#xff1a;武帅、陈宇 基本信息 开源内容&#xff1a;&#xff1a;https://github.com/datawhalechina/machine-learning-toy-code/tree/main/ml-with-sklearn内容属性&#xff1a;公测课程内容…

css一个很好用的hover显示

之前一直想在样式实现&#xff0c;hover时显示其他div&#xff0c;今天终于找到了&#xff0c;(*^▽^*).a悬停时显示.b.a:hover .b {display: block;}转载于:https://www.cnblogs.com/HCXiao/p/8677713.html

c语言输入函数有什么作用,c语言的输入函数有哪些

c语言的输入函数有&#xff1a;1、scanf()函数、从标准输入stdin读取格式化输入&#xff1b;2、getchar()函数&#xff0c;从标准输入stdin获取一个字符&#xff1b;3、gets()函数&#xff0c;从标准输入stdin读取一行&#xff1b;4、getch()函数。【相关学习推荐&#xff1a;C…

dubbo学习过程、使用经验分享及实现原理简单介绍

一、前言部门去年年中开始各种改造&#xff0c;第一步是模块服务化&#xff0c;这边初选dubbo试用在一些非重要模块上&#xff0c;慢慢引入到一些稍微重要的功能上&#xff0c;半年时间&#xff0c;学习过程及线上使用遇到的些问题在此总结下。整理这篇文章差不多花了两天半时间…

AutoIt脚本在做自动化操作的时候,如何进行错误捕获?

我的自动化脚本在运行的时候&#xff0c;会生成一个界面&#xff0c;点击该页面上的按钮能够进行自动化操作。 经常遇到的一个问题是&#xff1a; 脚本运行一半&#xff0c;GUI程序出现了异常情况&#xff0c;这个时候&#xff0c;再次点击生成的界面上的按钮&#xff0c;不会有…

中国电子学会青少年编程能力等级测试图形化四级编程题:计算生肖

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100&#xff0c;小马老…

用c语言写一个两线程程序,如何用C语言实现多线程

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Windows操作系统&#xff0c;C语言实现多线程&#xff1a;#include #include DWORD APIENTRY ThreadOne ( LPVOID threadArg ){printf ( "线程开始啦&#xff0c;参数是&#xff1a;%s\n" , (char *)threadArg );return …

中国电子学会青少年编程能力等级测试图形化四级编程题:抽奖

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 我们将有关编程题目的教学视频已经发布到抖音号21252972100&#xff0c;小马老…

github README.md教程

github README.md教程 总结 github中README.md通过特殊字符标记和缩进来达到格式控制&#xff0c;也可以用HTML标签来实现格式控制。 教程一&#xff1a; Markdown 的目标是实现「易读易写」&#xff0c;兼容HTML。 但是&#xff0c;在 HTML 区块标签间的 Markdown 格式语法将不…