达梦数据守护集群部署

接上篇
达梦8单机规范化部署
https://blog.csdn.net/qq_25045631/article/details/139898690

1. 集群规划

在正式生产环境中,两台机器建议使用统一配置的服务器。使用千兆或千兆以上网络。

两台虚拟机各加一块网卡,仅主机模式,作为心跳网卡(MAL_HOST),若只有一块网卡,心跳IP可以和对外提供访问的IP一样

节点1节点2
业务IP192.168.25.101192.168.25.102
心跳IP
MAL_HOST
172.25.0.101172.25.0.102
实例名GRP1_RT_01GRP1_RT_02
实例端口52365236
MAL端口
MAL_PORT
6114161142
MAL守护进程端口
MAL_DW_PORT
5214152142
守护进程端口
MAL_INST_DW_PORT
3314133142
OGUID453331453331
守护组GRP1GRP1
安装目录/opt/dmdbms/opt/dmdbms
实例目录/opt/dmdbms/data/opt/dmdbms/data
归档上限磁盘空间的1/10磁盘空间的1/10

MAL系统是基于TCP协议实现的一种内部通信机制,DM通过MAL系统实现Redo日志传输,以及其他一些实例间的消息通讯。

守护进程(dmwatcher)是数据库实例和监视器之间信息流转的桥梁。数据库实例向本地守护进程发送信息,接收本地守护进程的消息和命令;

监视器(dmmonitor)接收守护进程的消息,并向守护进程发送命令;数据库实例与监视器之间没有直接的消息交互;守护进程解析并执行监视器发起的各种命令(Switchover/Takeover/Open force等),并在必要时通知数据库实例执行相应的操作。

2. 配置防火墙

firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.25.101" accept" --permanent
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.25.102" accept" --permanent
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="172.25.0.101" accept" --permanent
firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="172.25.0.102" accept" --permanent
firewall-cmd --reload

3. 开启本地归档

在这里插入图片描述
方法一:SQL 命令方式开启归档

登录数据库执行如下 SQL 语句:
##这里的归档目录会自动创建
ALTER DATABASE MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG ‘DEST=/opt/dmdbms/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=20480’;
ALTER DATABASE OPEN;

##修改归档配置,可以在open状态下执行
##如果要修改归档目录,只能修改dmarch.ini文件,并重启实例生效
ALTER DATABASE MODIFY ARCHIVELOG ‘DEST=/opt/dmdbms/data/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=128, SPACE_LIMIT=10240’;

方法二:修改数据库配置文件方式开启归档

##修改数据库实例的 /opt/dmdbms/data/DAMENG/dm.ini文件中 ARCH_INI 参数值
vi /opt/dmdbms/data/DAMENG/dm.ini
ARCH_INI = 1

##新增文件dmarch.ini

vi /opt/dmdbms/data/DAMENG/dmarch.ini
ARCH_WAIT_APPLY      = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /opt/dmdbms/data/DAMENG/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 10240

##最后重启数据库完成归档配置

4. 备份主库

可以使用联机备份
SQL> BACKUP DATABASE BACKUPSET ‘/dmdata/data/DAMENG/bak/BACKUP_FILE’;

这里使用DMRMAN脱机备份

[root@node1 ~]# systemctl stop DmServiceDM
[root@node1 ~]# su - dmdba
[dmdba@node1 ~]$ dmrman
RMAN> backup database '/opt/dmdbms/data/DAMENG/dm.ini' full backupset '/opt/dmdbms/data/DAMENG/bak/db_full_bak';
backup database '/opt/dmdbms/data/DAMENG/dm.ini' full backupset '/opt/dmdbms/data/DAMENG/bak/db_full_bak';
Database mode = 0, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[43184], file_lsn[43184]
Processing backupset /opt/dmdbms/data/DAMENG/bak/db_full_bak
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
backup successfully!
time used: 00:00:03.999

拷贝数据到备库

[dmdba@node1 ~]$ scp -r /opt/dmdbms/data/DAMENG/bak/db_full_bak dmdba@192.168.25.102:/home/dmdba/

5. 始化备库实例并恢复数据

要配置dmdba用户的环境变量才可以写绝对路径

[dmdba@node2 ~]$ /opt/dmdbms/bin/dminit path=/opt/dmdbms/data PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DAMENG INSTANCE_NAME=GRP1_RT_02 LOG_SIZE=256 PORT_NUM=5236


[dmdba@node2 ~]$ dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/db_full_bak'"
dmrman V8
RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/db_full_bak'
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
restore successfully.
time used: 00:00:02.907


[dmdba@node2 ~]$ dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/db_full_bak'"
dmrman V8
RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/db_full_bak'
file dm.key not found, use default license!
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[43184], file_lsn[43184]
recover successfully!
time used: 599.685(ms)


[dmdba@node2 ~]$ dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
dmrman V8
RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[43184], file_lsn[43184]
recover successfully!
time used: 00:00:01.127

6. 修改dm.ini

修改主备库参数,注意2个库的instance_name不一样

[dmdba@node1 ~]$ vi /opt/dmdbms/data/DAMENG/dm.ini
INSTANCE_NAME = GRP1_RT_01/GRP1_RT_02
PORT_NUM = 5236                        #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60              #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0                  #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2                  #不允许备库 OFFLINE 表空间
MAL_INI = 1                            #打开 MAL 系统
ARCH_INI = 1                           #打开归档配置
RLOG_SEND_APPLY_MON = 64               #统计最近 64 次的日志重演信息

[dmdba@node1 ~]$ egrep ‘INSTANCE_NAME|PORT_NUM|DW_INACTIVE_INTERVAL|ALTER_MODE_STATUS|ENABLE_OFFLINE_TS|MAL_INI|ARCH_INI|RLOG_SEND_APPLY_MON’ /opt/dmdbms/data/DAMENG/dm.ini

7. 配置dmarch.ini

2个节点都要配置,ARCH_DEST分别写对方的实例名。

[dmdba@node1 ~]$ vi /opt/dmdbms/data/DAMENG/dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

        #ARCH_WAIT_APPLY      = 1  #0:高性能  1:事务一致

[ARCHIVE_LOCAL1]
        ARCH_TYPE            = LOCAL  #本地归档类型
        ARCH_DEST            = /opt/dmdbms/data/DAMENG/arch  #本地归档存放路径  
        ARCH_FILE_SIZE       = 128  #单个归档大小,单位 MB
        ARCH_SPACE_LIMIT     = 10240  #归档上限,单位 MB
        ARCH_FLUSH_BUF_SIZE  = 0        
        ARCH_HANG_FLAG       = 1        

[ARCHIVE_REALTIME1]
        ARCH_TYPE            = REALTIME  #实时归档类型
        ARCH_DEST            = GRP1_RT_01/GRP1_RT_02  #实时归档目标实例名

8. 配置dmmal.ini

2个节点都要配置,配置相同

[dmdba@node1 ~]$ vi /opt/dmdbms/data/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL         = 5  #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL     = 5  #判定 MAL 链路断开的时间
#MAL_TEMP_PATH              = /opt/dmdbms/data/malpath/  #临时文件目录。当邮件使用的内存超过MAL_BUF_SIZE或者MAL_SYS_BUF_SIZE时,将新产生的邮件保存到临时文件中。如果缺省,则新产生的邮件保存到temp.dbf文件中
#MAL_BUF_SIZE               = 512  #单个 MAL 缓存大小,单位 MB
#MAL_SYS_BUF_SIZE           = 2048  #MAL 总大小限制,单位 MB
#MAL_COMPRESS_LEVEL         = 0  #MAL 消息压缩等级,0 表示不压缩

[MAL_INST1]
MAL_INST_NAME            = GRP1_RT_01  #实例名,和 dm.ini 的 INSTANCE_NAME 一致
MAL_HOST                 = 172.25.0.101  #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT                 = 61141  #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST            = 192.168.25.101 #实例的对外服务 IP 地址
MAL_INST_PORT            = 5236  #实例对外服务端口,和 dm.ini 的 PORT_NUM 一致
MAL_DW_PORT              = 52141  #实例对应的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT         = 33141  #实例监听守护进程 TCP 连接的端口

[MAL_INST2]
MAL_INST_NAME            = GRP1_RT_02
MAL_HOST                 = 172.25.0.102
MAL_PORT                 = 61142
MAL_INST_HOST            = 192.168.25.102
MAL_INST_PORT            = 5236
MAL_DW_PORT              = 52142
MAL_INST_DW_PORT         = 33142

9. 配置dmwatcher.ini

2个节点都要配置,配置相同

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

10. 启动主备库

以mount模式启动
一定要以mount方式启动数据库实例,否则系统启动时会重构回滚表空间,生成Redo日志;并且,启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动Open数据库。

[dmdba@node1 ~]$ dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
[dmdba@node2 ~]$ dmserver /opt/dmdbms/data/DAMENG/dm.ini mount

11. 设置OGUID

在主/备库分别执行

[dmdba@node1 ~]$ disql SYSDBA/SYSDBA@127.0.0.1:5236
SQL> sp_set_oguid(453331);

12. 修改数据库模式

在主库执行
SQL> alter database primary;

在备库执行
SQL> alter database standby;

如果当前数据库不是normal模式,需要先修改dm.ini中ALTER_MODE_STATUS值为1,允许修改数据库模式,修改 Standby 模式成功后再改回为0。

13. 注册并启动守护进程

root用户在备库执行

[root@node2 ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -p DM -dm_ini /opt/dmdbms/data/DAMENG/dm.ini
[root@node2 ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DM -watcher_ini /opt/dmdbms/data/DAMENG/dmwatcher.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServiceDMSERVER.service to /usr/lib/systemd/system/DmWatcherServiceDMSERVER.service.
创建服务(DmWatcherServiceDMSERVER)完成

root用户在主库执行

[root@node1 ~]# /opt/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DM -watcher_ini /opt/dmdbms/data/DAMENG/dmwatcher.ini

在主备库启动服务

systemctl start DmWatcherServiceDM

守护进程启动后,设置GRP1守护进程为STARTUP状态,此时实例都处于未启动状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将本地实例Open,并设置GRP1守护进程为Open状态。




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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【日记】原来真的有人不适合谈恋爱(1194 字)

正文 21 日正是周五,夏至。全年当中,白天时长最长的一天。而恰好那天也是银行扣息的日子。所以很忙,我差点没能走掉。 所幸最终还是有惊无险。 到斯的家里,是晚上 9 点钟。比我想得要早。这个周周四,他过生日。但是那天…

提升效率新选择——运营必备API合集

在数字化、自动化的时代背景下,运营小工具API已经成为了众多企业不可或缺的重要组成部分。这些API工具为运营工作提供了极大的便利,不仅简化了工作流程,还提高了工作效率。 运营小工具API是针对运营工作特定需求而设计的接口,通过…

7.系统工具——黑马程序员Java最新AI+若依框架项目

目录 前言一、表单构建任务:设计添加课程表单 二、 代码生成1.任务:将部门表在页面端显示改为树形结构 三、系统接口任务:使用sagger进行接口测试 前言 提示:本篇讲解若依框架 系统工具 一、表单构建 功能:完成前端…

【持续集成_01课_Git版本管理及基本应用】

一、什么是持续集成 测试代码、开发代码、测试报告、发送邮件...组合到一起来 --- 流水线。 (有一个规范的流程) 持续集成(Continuous Integration,简称CI) 是一种软件开发实践,旨在将代码集成到共享仓库…

网页抓取和网页爬取之间有何区别?

随着互联网的发展和信息的爆炸式增长,数据收集和处理已成为企业和个人不可或缺的需求。在此背景下,网页抓取和网络爬虫已成为两种常见的数据收集方法。虽然这两种方法看似相似,但它们的方法和目标存在显著差异。本文将为您详细介绍网页抓取和…

【科技前沿】电子设计新贵SmartEDA:为何它引领行业风潮?

在当今这个电子科技日新月异的时代,电子设计工具如同设计师的魔法棒,不断推动着产品创新的速度。而近期,一款名为SmartEDA的电子国产设计仿真软件异军突起,成为了行业内的新宠。那么,SmartEDA究竟有何过人之处&#xf…

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂…

# bash: chkconfig: command not found 解决方法

bash: chkconfig: command not found 解决方法 一、chkconfig 错误描述: 这个错误表明在 Bash 环境下,尝试执行 chkconfig 命令,但是系统找不到这个命令。chkconfig 命令是一个用于管理 Linux 系统中服务的启动和停止的工具,通常…

ChatGPT对那些带有残疾迹象的简历有偏见——但它可以改善

ChatGPT对那些带有残疾迹象的简历有偏见——但它可以改善 去年,华盛顿大学(University of Washington)研究生凯特•格拉兹科(Kate Glazko)在寻找研究实习机会时注意到,招聘人员在网上发布消息称,他们使用OpenAI的ChatGPT和其他人工智能工具来…

【b站-湖科大教书匠】3 数据链路层-计算机网络微课堂

课程地址:【计算机网络微课堂(有字幕无背景音乐版)】 https://www.bilibili.com/video/BV1c4411d7jb/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 3 数据链路层 3.1 数据链路层概述 3.1.1 数据链路层在网络体系结…

Eureka 服务注册与发现

目录 前言 注册中心 CAP 理论 常⻅的注册中心 CAP理论对比 Eureka 搭建 Eureka Server 引⼊ eureka-server 依赖 完善启动类 编写配置⽂件 启动服务 服务注册 引⼊ eureka-client 依赖 完善配置⽂件 启动服务 服务发现 引⼊依赖 完善配置⽂件 远程调⽤ 启动…

【设计模式深度剖析】【9】【行为型】【访问者模式】| 以博物馆的导览员为例加深理解

👈️上一篇:备忘录模式 | 下一篇:状态模式👉️ 设计模式-专栏👈️ 文章目录 访问者模式定义英文原话直译如何理解呢? 访问者模式的角色类图代码示例 访问者模式的应用优点缺点使用场景 示例解析:博物馆的导览员代码示例 访问…

uni-app与原生插件混合开发调试3-安卓原生插件开发调试和打包

安卓原生插件开发调试和打包 上面已经介绍了怎么安装开发和调试环境&#xff0c;接下来就是安卓原生插件的具体开发和调试步骤&#xff1a; 将uniapp前端项目的index.vue文件新增代码。代码如图所示&#xff1a; <template><view><view><text>{{titl…

GaussDB关键技术原理:高性能(二)

GaussDB关键技术原理&#xff1a;高性能&#xff08;一&#xff09;从数据库性能优化系统概述对GaussDB的高性能技术进行了解读&#xff0c;本篇将从查询处理综述方面继续分享GaussDB的高性能技术的精彩内容。 2 查询处理综述 内容概要&#xff1a;本章节介绍查询端到端处理的…

Go团队的工作方式

在Go 1.23版本[1]即将发布(2024.8)之前&#xff0c;在GopherCon 2024[2]开幕(2024.7)之前&#xff0c;Go团队成员Cameron Balahan(Go产品负责人)[3]、 Sameer Ajmani&#xff08;Go团队工程总监&#xff09;和Russ Cox&#xff08;Go团队技术负责人&#xff09;[4]参加了业界知…

2024 年最新 Python 基于火山引擎豆包大模型搭建 QQ 机器人详细教程(更新中)

豆包大模型概述 火山引擎官网&#xff1a;https://www.volcengine.com/ 字节跳动推出的自研大模型。通过字节跳动内部50业务场景实践验证&#xff0c;每日千亿级tokens大使用量持续打磨&#xff0c;提供多模态能力&#xff0c;以优质模型效果为企业打造丰富的业务体验。 模型…

“论云原生架构及其应用”写作框架,系统架构设计师

论文真题 近年来&#xff0c;随着数字化转型不断深入&#xff0c;科技创新与业务发展不断融合&#xff0c;各行各业正在从大工业时代的固化范式进化成面向创新型组织与灵活型业务的崭新模式。在这一背景下&#xff0c;以容器和微服务架构为代表的云原生技术作为云计算服务的新…

智能化改造助力企业高质量发展

引言 背景介绍 在当今全球经济环境中&#xff0c;变化和不确定性已成为常态。企业面临的竞争压力不断增加&#xff0c;市场竞争日益激烈。新兴市场的崛起、技术进步和消费者需求的快速变化&#xff0c;使得传统的商业模式和生产方式面临巨大挑战。为了在这样的环境中保持竞争力…

Go语言之基础入门

网站&#xff1a;http://hardyfish.top/ 免费书籍分享&#xff1a; 资料链接&#xff1a;https://url81.ctfile.com/d/57345181-61545511-81795b?p3899 访问密码&#xff1a;3899 免费专栏分享&#xff1a; MySQL是怎样运行的从根儿上理解MySQL 课程链接&#xff1a;https:/…