国产化技术探究达梦8数据库搭建一主一从双机热备守护Data Watch集群搭建实战

news2024/11/26 7:38:12

国产化技术探究达梦8数据库搭建一主一从双机热备守护集群搭建实战

一、环境说明

服务器类型IP地址操作系统数据库实例名称
主机172.18.21.144centos7DMSERVER
备机172.18.21.147centos7DMSERVER2
参数主库备库
实例名称DMSERVERDMSERVER 2
IP172.18.21.144172.18.21.147
OGUID4533145331
守护组GRP1GRP1
归档上限5120051200
安装目录/opt/dmdbms/bin//opt/dmdbms/bin/
实例目录/dmdata/DAMENG/dmdata/DAMENG

(1)操作系统

cat /etc/centos-release

在这里插入图片描述

(2)达梦数据库版本

/opt/dmdbms/bin/    #达梦8的BIN路径
/dmdata/DAMENG  #达梦8的DATA路径

在这里插入图片描述

cd /opt/dmdbms/bin/   #达梦8的BIN路径
./disql    #执行查询 输入登录信息:默认SYSDBA:SYSDBA

select * from v$version;    #查询达梦8版本的SQL

(3)达梦8的数据库基于linux的安装部署

参考笔者的达梦8的安装部署文章,写的步骤很详细!

https://blog.csdn.net/nasen512/article/details/126872483

(4)达梦运行日志路径

部署过程中需要通过日志定位问题解决问题

cd /opt/dmdbms/log
tail -200f dm_DMSERVER_202310.log

二、准备工作关闭防火墙

systemctl status firewalld.service  #查看防火墙状态
systemctl stop firewalld.service  #临时关闭防火墙
systemctl disable firewalld.service  #开机不自启防火墙

关闭SELinux,查看是否开启了SELinux,如果显示为Enforcing,需要改为Disabled,再重启系统使配置生效。

getenforce
vi /etc/selinux/config
进入文件后修改 SELINUX = disabled
保存退出文件
reboot

三、集群配置必须按步骤操作

步骤1 (144服务器主库操作)

(1)初始化主库

service DmServiceDMSERVER stop   #关闭实例
 cd /dmdata/DAMENG
rm -rf *   #将原有的DATA文件删干净/dmdata/DAMENG下的,因为要重新初始化!

有些操作必须要切换到达梦DBA用户,如果用root操作会各种操作系统的执行文件权限报错,导致数据库起不来,这个点很重要。如果你操作过程中忘了切换用户,那需要全部重来很麻烦!!

su dmdba    #切换到达梦DBA用户,如果用root操作会各种操作系统的执行文件权限报错,导致数据库起不来,这个点很重要。

在这里插入图片描述

cd /opt/dmdbms/bin/     
./dminit PATH=/dmdata UNICODE_FLAG=1 LENGTH_IN_CHAR=1 CASE_SENSITIVE=0  EXTENT_SIZE=64 PAGE_SIZE=32 INSTANCE_NAME=DMSERVER

在这里插入图片描述

如上图重新初始化完成,主库的实例名称是DMSERVER,此处注意主库与从库的实例名称不能完全一样,否则在后面的操作过程中会报错!

(2)启动新初始化的数据库服务

cd /dmdata/DAMENG  #进入到达梦的文件路径
ls -l    #查看文件的归属

在这里插入图片描述

数据文件归属是dmdba用户,如果是root,就说明操作错误了,后面会遇到各种权限问题!!!!

启动服务用root用户,数据操作用dmdba用户,注意!!

su root  #启动服务用root用户,数据操作用dmdba用户,注意!!
service DmServiceDMSERVER start   #启动达梦8服务

在这里插入图片描述
在这里插入图片描述
(3)开启归档操作(开启归档才能导出备份)

 su dmdba
 cd /opt/dmdbms/bin/
./disql  #输入SYSDBA:SYSDBA

在这里插入图片描述

在这里插入图片描述
执行以下的SQL

ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdata/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN;

在这里插入图片描述
(4)将主库备份数据操作(144服务器执行)

BACKUP DATABASE BACKUPSET '/dmdata/DAMENG/bak/BACKUP_FILE';

在这里插入图片描述
(5)动态数据库配置dm.ini的参数
继续执行下列SQL

SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SP_SET_PARA_VALUE (2,'MAL_INI',1);
SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);

在这里插入图片描述
(6)关闭主库的实例服务(144服务器上执行)
关闭服务用root用户

su root  
service DmServiceDMSERVER stop

(7)配置4个配置文件
在这里插入图片描述
进到/dmdata/DAMENG/文件目录,分别创建4个配置文件!下面是4个配置文件的文件!
(1)dmarch.ini

  cd /dmdata/DAMENG/
  vi dmarch.ini
ARCH_WAIT_APPLY      = 0

[ARCHIVE_LOCAL1]
ARCH_TYPE            = LOCAL
ARCH_DEST            = /dmdata/DAMENG/arch
ARCH_FILE_SIZE       = 1024
ARCH_SPACE_LIMIT     = 51200
ARCH_FLUSH_BUF_SIZE  = 0
ARCH_HANG_FLAG       = 1

[ARCHIVE_REALTIME1]
ARCH_TYPE                = REALTIME  #实时归档类型
ARCH_DEST                = DMSERVER2  #实时归档目标

(2)dmmal.ini
如果要调整防火墙策略,参考这里面的需要开放的端口

MAL_CHECK_INTERVAL      = 5
MAL_CONN_FAIL_INTERVAL  = 5

[MAL_INST1]
  MAL_INST_NAME         = DMSERVER
  MAL_HOST              = 172.18.21.144
  MAL_PORT              = 5238
  MAL_INST_HOST         = 172.18.21.144
  MAL_INST_PORT         = 5236
  MAL_DW_PORT           = 5239
  MAL_INST_DW_PORT      = 5237

[MAL_INST2]
  MAL_INST_NAME         = DMSERVER2
  MAL_HOST              = 172.18.21.147
  MAL_PORT              = 5238
  MAL_INST_HOST         = 172.18.21.147
  MAL_INST_PORT         = 5236
  MAL_DW_PORT           = 5239
  MAL_INST_DW_PORT      = 5237


(3)dmwatcher.ini

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


(4)dmmonitor.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

[GRP1]
MON_INST_OGUID           = 45331  #组 GRP1 的唯一 OGUID 值
MON_DW_IP                = 172.18.21.144:5239  #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP                = 172.18.21.147:5239



检查配置文件

cd /dmdata/DAMENG/
ls -l

在这里插入图片描述
检查这4个配置文件归属,调整归属到dmdba

chown dmdba:dinstall dmmonitor.ini

(8)注册服务(144服务器执行)
注册服务需要切换到root

su root 
cd /opt/dmdbms/script/root

在这里插入图片描述
如果发现服务已经创建则需要把服务注销,再创建服务!

sh dm_service_uninstaller.sh -n DmWatcherServiceWatcher     #删除服务命令

在这里插入图片描述

sh dm_service_uninstaller.sh -n DmMonitorServiceMonitor

在这里插入图片描述

注册dmwatcher服务

sh dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/DAMENG/dmwatcher.ini

注册监视器服务

sh dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dmdata/DAMENG/dmmonitor.ini

在这里插入图片描述
操作到这一步,现在144服务器上的服务都关着的

步骤2(在147备库服务器操作)

(1)初始化实例(注意实例名称要跟主库区分开)
先关闭实例服务要不然操作不了

su root
service DmServiceDMSERVER stop  #关闭服务
cd /dmdata/DAMENG
rm -rf *    #清空之前的数据库数据文件,因为下面要重新初始化

在这里插入图片描述

 su dmdba
 cd /opt/dmdbms/bin/
./dminit PATH=/dmdata UNICODE_FLAG=1 LENGTH_IN_CHAR=1 CASE_SENSITIVE=0  EXTENT_SIZE=64 PAGE_SIZE=32 INSTANCE_NAME=DMSERVER2

此处初始化实例名称DMSERVER2是跟主库服务器区分开的!
在这里插入图片描述
(2)147备库还原主库144的备份

将刚刚144主库备份的数据要恢复到147让2个服务器的数据完全一致!!

su dmdba    #切换到dmdba
scp -r root@172.18.21.144:/dmdata/DAMENG/bak /dmdata/DAMENG/   #将144的备份文件同步到147

在这里插入图片描述
在这里插入图片描述
注意这备份文件必须归属是dmdba,如果是其他用户后面执行恢复操作会报错!!
在这里插入图片描述
(3)147服务器执行恢复操作
不能用root执行,必须用dmdba,如果用root会导致数据库文件归属问题,后面实例无法启动

su dmdba  #不能用root执行,如果用root会导致数据库文件归属问题,后面实例无法启动
cd /opt/dmdbms/bin

还原整个数据库命令

./dmrman CTLSTMT="RESTORE DATABASE '/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dmdata/DAMENG/bak/BACKUP_FILE'"

在这里插入图片描述
(4)处理DB_MAGIC报错实例无法启动问题
此时启动147实例会报错,错误说DB_MAGIC问题,所以我们需要处理这个问题!笔者查了资料,找到了解决方法

su dmdba
scp -r root@172.18.21.144:/dmdata/DAMENG/arch /dmdata/DAMENG/

在这里插入图片描述

cd /opt/dmdbms/bin/
./dmrman

在这里插入图片描述

recover database '/dmdata/DAMENG/dm.ini' with archivedir '/dmdata/DAMENG/arch'; 

在这里插入图片描述

RECOVER DATABASE '/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC;

在这里插入图片描述
到此步骤之后数据恢复成功

(5)启动147实例

su root 
service DmServiceDMSERVER start

在这里插入图片描述
(6)开启归档调整参数(147执行)

 su dmdba
 cd /opt/dmdbms/bin/
./disql  #输入SYSDBA:SYSDBA
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdata/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
ALTER DATABASE OPEN ;

在这里插入图片描述

SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SP_SET_PARA_VALUE (2,'MAL_INI',1);
SP_SET_PARA_VALUE (2,'RLOG_SEND_APPLY_MON',64);
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;

在这里插入图片描述
(7)关闭147实例服务

su root
service DmServiceDMSERVER stop

(8)147服务器配置4个配置文件

在这里插入图片描述
进到/dmdata/DAMENG/文件目录,分别创建4个配置文件!下面是4个配置文件的文件!

su dmdba
cd dmdata/DAMENG/
vi dmmal.ini  #依次4个配置文件

(1)dmarch.ini

#DaMeng Database Archive Configuration file
#this is comments

	ARCH_WAIT_APPLY      = 0        

[ARCHIVE_LOCAL1]
	ARCH_TYPE            = LOCAL        
	ARCH_DEST            = /dmdata/DAMENG/arch        
	ARCH_FILE_SIZE       = 1024        
	ARCH_SPACE_LIMIT     = 51200        
	ARCH_FLUSH_BUF_SIZE  = 0        
	ARCH_HANG_FLAG       = 1        
[ARCHIVE_REALTIME1]
ARCH_TYPE                = REALTIME  #实时归档类型
ARCH_DEST                = DMSERVER  #实时归档目标



(2)dmmal.ini

MAL_CHECK_INTERVAL      = 5
MAL_CONN_FAIL_INTERVAL  = 5

[MAL_INST1]
  MAL_INST_NAME         = DMSERVER
  MAL_HOST              = 172.18.21.144
  MAL_PORT              = 5238
  MAL_INST_HOST         = 172.18.21.144
  MAL_INST_PORT         = 5236
  MAL_DW_PORT           = 5239
  MAL_INST_DW_PORT      = 5237

[MAL_INST2]
  MAL_INST_NAME         = DMSERVER2
  MAL_HOST              = 172.18.21.147
  MAL_PORT              = 5238
  MAL_INST_HOST         = 172.18.21.147
  MAL_INST_PORT         = 5236
  MAL_DW_PORT           = 5239
  MAL_INST_DW_PORT      = 5237


(3)dmwatcher.ini

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


(4)dmmonitor.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

[GRP1]
MON_INST_OGUID           = 45331  #组 GRP1 的唯一 OGUID 值
MON_DW_IP                = 172.18.21.144:5239  #IP 对应 MAL_HOST,PORT 对应 MAL_DW_PORT
MON_DW_IP                = 172.18.21.147:5239


查看4个文件归属dmdba

cd /dmdata/DAMENG/
ls -l

在这里插入图片描述
(9)注册服务

 su root 
 cd /opt/dmdbms/script/root

注册dmwatcher服务

sh dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdata/DAMENG/dmwatcher.ini

注册监视器服务

sh dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dmdata/DAMENG/dmmonitor.ini

在这里插入图片描述

步骤3 启动2个服务器的服务

(1)144主库服务器操作

su root
service DmServiceDMSERVER start
service DmWatcherServiceWatcher start
service DmMonitorServiceMonitor start

在这里插入图片描述
在这里插入图片描述

(2)147主备服务器操作

su root
service DmServiceDMSERVER start
service DmWatcherServiceWatcher start
service DmMonitorServiceMonitor start

在这里插入图片描述
在这里插入图片描述

步骤4 查看监控

 cd /opt/dmdbms/bin

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

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

相关文章

有趣的数学 积分符号∫ (integration)简述

1、简述 积分是微积分的一个主要部分。它是求和概念的延伸。事实上,积分符号源自一个拉长的字母S,最初由莱布尼茨使用(也有人说是牛顿),代表Summa,在拉丁语中意为“和”,对切片进行求和的想法。…

计算机的体系与结构

文章目录 前言一、冯诺依曼体系二、现代计算机的结构总结 前言 今天给大家介绍计算机的体系和结构,分为两个板块:冯诺依曼体系和现代计算机的结构。 一、冯诺依曼体系 冯诺依曼体系是将程序指令和数据一起存储的计算机设计概念结构。 冯诺依曼体系可以…

基于LSTM-Adaboost的电力负荷预测的MATLAB程序

微❤关注“电气仔推送”获得资料(专享优惠) 主要内容: LSTM-AdaBoost负荷预测模型先通过 AdaBoost集成算法串行训练多个基学习器并计算每个基学习 器的权重系数,接着将各个基学习器的预测结果进行线性组合,生成最终的预测结果。代码中的LST…

MySQL之MHA集群

MHA概述 什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点故障的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换…

hbba网站下载国家标准/行业标准的方法

hbba网站是不提供下载按钮并且不支持右键的,那么如何下载呢? 1、首先看一下pdf有多少页,一般标准介绍上有写。 2、使用edge或google浏览器打开pdf预览页面,打开开发者模式,用小箭头指向第一页,这样就获取到…

数据库引擎选择指南:MyISM和InnoDB哪个更适合你?

亲爱的小伙伴们,大家好!我是小米,今天我要和大家一起来聊一聊两个数据库引擎,分别是MyISM和InnoDB。这两个数据库引擎在MySQL中都扮演着非常重要的角色,了解它们的特点和区别对于我们理解数据库的工作原理和性能优化非…

短视频矩阵系统源码--saas开发

一、概述 抖音SEO矩阵系统源代码是一套针对抖音平台的搜索引擎优化工具,它可以帮助用户提高抖音视频在搜索结果中的排名,增加曝光率和流量。本开发文档旨在提供系统的功能框架、技术要求和开发示例,以便开发者进行二次开发和优化。 二、功能框…

ctfshow web入门 php特性 web136-web140

1.web136 还有一种写文件的命令时tee命令 payload&#xff1a; : ls /|tee 1 访问1下载查看文件1发现根目录下有flag cat /f149_15_h3r3|tee 2 访问下载查看文件22.web137 call_user_func <?php class myclass {static function say_hello(){echo "He…

【m98】视频帧的 jitterbuffer 1:

管理待解码的视频帧: VCMFrameBuffer VCMFrameBufferStateEnum 代表帧的状态信息:组帧失败的(kStateEmpty)?kStateIncomplete(存储了部分包)?kStateComplete(拥有了所有包?) enum VCMFrameBufferStateEnum {kStateEmpty, // frame popped by the RTP receiver…

phpstorm不提示$this->request,不提示Controller父类的方法

![在这里插入图片描述](https://img-blog.csdnimg.cn/d55799a22b724099930eb7fb67260a12.png 最后 保存就可以了

Vue-2.0组件化开发

组件化 一个页面可以拆分成一个个组件&#xff0c;每个组件有着自己独立的结构、样式、行为。 好处&#xff1a;便于维护&#xff0c;利于复用->提升开发效率 组件分类&#xff1a;普通组件、根组件 根组件 整个应用最上层的组件&#xff0c;包裹所有普通小组件。 Ctrl…

leetCode 53.最大子数组和 动态规划 + 优化空间复杂度

关于此题我的往期文章&#xff1a; leetCode 53.最大子数和 图解 贪心算法/动态规划优化_呵呵哒(&#xffe3;▽&#xffe3;)"的博客-CSDN博客https://heheda.blog.csdn.net/article/details/13349726853. 最大子数组和 - 力扣&#xff08;LeetCode&#xff09; >&…

WebKit Insie: Active 样式表

WebKit Inside: CSS 样式表的匹配时机介绍了当 HTML 页面有不同 CSS 样式表引入时&#xff0c;CSS 样式表开始匹配的时机。后续文章继续介绍 CSS 样式表的匹配过程&#xff0c;但是在匹配之前&#xff0c;首先需要收集页面里面的 Active 样式表。 1 Active 样式表 在一个 HTML …

Windows下Mosquitto服务配置监听任何IP,搭配使用MQTTX

Mosquitto 默认只监听本地地址&#xff0c;想让它监听其他的IP和端口需要以下操作在mosquitto.conf文件最后加如下内容 allow_anonymous true listener 1883 0.0.0.0 在启动的时候只需要 .\mosquitto.exe -c .\mosquitto.conf -v 就可以了

2023年中国临床信息系统市场规模及细分市场结构分析[图]

临床信息系统(ClinicalInformationSystem&#xff09;&#xff0c;其主要目标是支持医院医护人员的临床活动&#xff0c;收集和处理病人的临床医疗信息&#xff0c;丰富和积累临床医学知识&#xff0c;并提供临床咨询、辅助诊疗、辅助临床决策。传统上&#xff0c;一些人把直接…

自动化测试面试题

常规问题 1、如何快速深入的了解移动互联网领域的应用 &#xff08;答案&#xff1a;看http协议 restful api知识 json加1分&#xff09; 2、对xx应用自己会花多久可以在业务上从入门到精通&#xff0c;说说自己的方法 &#xff08;答案&#xff1a;看api和数据库的加1分&…

解决远程视频会议卡顿问题,优化企业网络办公体验

视频会议、在线语音这种交互类的应用都是对网络链路质量有高要求的场景&#xff0c; 而造成视频会议卡顿的原因也是有多方面因素的&#xff0c;比如视频应用服务器或者终端的原因造成&#xff0c;网络当然也是其中很重要的一个因素&#xff0c;比如网络线路质量不稳定&#xff…

c语言文件操作详解:fgetc,fputc,fgets,fputs,fscanf,,fprintf,fread,fwrite的使用和区别

前言&#xff1a;在对于c语言的学习中&#xff0c;我们为了持续使用一些数据&#xff0c;为了让我们的数据可以在程序退出后仍然保存并且可以使用&#xff0c;我们引入了文件的概念和操作&#xff0c;本文旨在为大家分享在文件操作中常用的输入输出函数的使用方式和技巧&#x…

OJ练习第183题——移动机器人

移动机器人 力扣链接&#xff1a;2731. 移动机器人 题目描述 示例 官解思路 当两个机器人相撞时&#xff0c;它们会沿着原本相反的方向移动。由于机器人之间并没有任何区别&#xff0c;相撞可以看做是穿透&#xff0c;原本左边的机器人相撞后交换为右边的机器人&#xff0c…