当前位置: 首页 > news >正文

达梦数据守护集群_动态增加实时备库

目录

1、概述

2、实验环境

2.1环境信息

2.2配置信息

2.3 查看初始化参数

3、动态增加实时备库

3.1数据准备

3.2配置新备库

3.3动态增加MAL配置

3.4 关闭守护进程及监视器

3.5修改归档(方法1:动态添加归档配置)

3.6 修改归档(方法2:手动修改dmarch.ini)    

3.7修改监视器

3.8 启动新备库及所有守护进程及监视器

3.9验证


1、概述

        DM8提供了系统函数,可以动态增加 MAL 中的节点信息。当需要进行系统扩容,希望系统运行不中断,或者影响运行的时间尽可能短时,可通过动态增加节点的方式进行。

2、实验环境

2.1环境信息

操作系统:CentOS7.6

达梦数据库版本:DM8_20240712

达梦守护集群版本:V4.0

集群主库:192.168.220.101

集群备库:192.168.220.102

集群确认监视器:192.168.220.109

新备库IP:192.168.220.109

注:建议生产环境备库与监视器安装到不同的主机

2.2配置信息

MAL_PORT : 62361
MAL_INST_PORT : 6236
MAL_DW_PORT : 7222
MAL_INST_DW_PORT : 62362

组名:DM8DW
OGUID:241007001
库名:DM8DW
主库实例名:DM8DW01
原备库实例名:DM8DW02
新备库实例名:DM8DW03

2.3 查看初始化参数

在原主库执行

SELECT '字符集',CASE SF_GET_UNICODE_FLAG() WHEN '0' THEN 'GBK18030' WHEN '1' then 'UTF-8' when '2' then 'EUC-KR' end union all
SELECT '页大小',cast(PAGE()/1024 as varchar) union all
SELECT '簇大小',cast(SF_GET_EXTENT_SIZE() as varchar) union all
select 'id_code',id_code from dual;	

3、动态增加实时备库

3.1数据准备

联机备份主库数据

su - dmdba
disql SYSDBA/SYSDBA
SQL> backup database backupset '/dm8/backup/full_bak_20241102_001';
scp -r /dm8/backup/full_bak_20241102_001 192.168.220.109:/dm8/backup

3.2配置新备库

1)安装DM8软件
  步骤略
  
2)初始化数据库

dminit path=/dm8/datadm EXTENT_SIZE=32 PAGE_SIZE=32 DB_NAME=DM8DW INSTANCE_NAME=DM8DW03 LOG_SIZE=256#完成首次启动
dmserver /dm8/datadm/DM8DW/dm.ini#关闭服务
exit#root权限注册服务
cd /dm8/dmdbms/script/root
./dm_service_installer.sh -t dmserver -p DM8DW03 -dm_ini /dm8/datadm/DM8DW/dm.ini
./dm_service_installer.sh -t dmwatcher -p DM8DW03 -watcher_ini /dm8/datadm/DM8DW/dmwatcher.ini

3)配置dm.ini
可以使用主库的dm.ini,修改INSTANCE_NAME即可
在主库执行

scp dm.ini 192.168.220.109:/dm8/backup

在新备库执行

cp /dm8/backup/dm.ini /dm8/datadm/DM8DW/dm.ini
vi /dm8/datadm/DM8DW/dm.ini
#实例名INSTANCE_NAME 的值改为 DM8DW03

4)还原恢复新备库
使用dmrman脱机还原,在新备库执行

dmrman
restore database '/dm8/datadm/DM8DW/dm.ini' from backupset '/dm8/backup/full_bak_20241102_001';
recover database '/dm8/datadm/DM8DW/dm.ini' from backupset '/dm8/backup/full_bak_20241102_001';
recover database '/dm8/datadm/DM8DW/dm.ini' update db_magic;

5)配置dmmal.ini

vi /dm8/datadm/DM8DW/dmmal.iniMAL_CHECK_INTERVAL = 30
MAL_CONN_FAIL_INTERVAL = 10
MAL_SYS_BUF_SIZE = 3000
MAL_BUF_SIZE = 3000
MAL_VPOOL_SIZE = 3000[MAL_INST1]
MAL_INST_NAME = DM8DW01
MAL_HOST = 192.168.220.101
MAL_PORT = 62361
MAL_INST_HOST = 192.168.220.101
MAL_INST_PORT = 6236
MAL_DW_PORT = 7222
MAL_INST_DW_PORT = 62362[MAL_INST2]
MAL_INST_NAME = DM8DW02
MAL_HOST = 192.168.220.102
MAL_PORT = 62361
MAL_INST_HOST = 192.168.220.102
MAL_INST_PORT = 6236
MAL_DW_PORT = 7222
MAL_INST_DW_PORT = 62362[MAL_INST3]
MAL_INST_NAME = DM8DW03
MAL_HOST = 192.168.220.109
MAL_PORT = 62361
MAL_INST_HOST = 192.168.220.109
MAL_INST_PORT = 6236
MAL_DW_PORT = 7222
MAL_INST_DW_PORT = 62362

6)配置dmarch.ini

vi  /dm8/datadm/DM8DW/dmarch.iniARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/archdm
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT  = 20480[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM8DW01[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DM8DW02


7)配置dmwatcher.ini

vi /dm8/datadm/DM8DW/dmwatcher.ini[DM8DW]
DW_TYPE = GLOBAL
DW_MODE = AUTO
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME  = 10
INST_OGUID  = 241007001
INST_INI = /dm8/datadm/DM8DW/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD  = /dm8/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

8)配置OGUID及数据库模式
 

dmserver /dm8/datadm/DM8DW/dm.ini mount #mount模式启动服务


在disql 中执行

disql SYSDBA/SYSDBA:6236SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(241007001);
ALTER DATABASE STANDBY;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);#关闭服务
shutdown immediate

3.3动态增加MAL配置

在原集群所有节点执行:

disql SYSDBA/SYSDBA:6236SF_MAL_CONFIG(1,0);
SF_MAL_INST_ADD('MAL_INST3','DM8DW03','192.168.220.109',62361,'192.168.220.109',6236,7222,0,62362);
SF_MAL_CONFIG_APPLY();
SF_MAL_CONFIG(0,0);


3.4 关闭守护进程及监视器

关闭确认监视器

DmMonitorServiceDM8DW stop

关闭原主库守护进程

DmWatcherServiceDM8DW01 stop

关闭原备库守护进程

 DmWatcherServiceDM8DW02 stop

3.5修改归档(方法1:动态添加归档配置)

1)查看DW_INACTIVE_INTERVAL配置

disql SYSDBA/SYSDBA:6236
select para_value from v$dm_ini where para_name='DW_INACTIVE_INTERVAL';

2)先修改主库、再修改备库:

disql SYSDBA/SYSDBA:6236SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SP_SET_PARA_VALUE(1, 'DW_INACTIVE_INTERVAL', 0); -- 临时关闭守护进程活动状态检测,允许用户手动修改模式状态,动态添加完毕后需要再改回原值
ALTER DATABASE MOUNT;
ALTER DATABASE ADD ARCHIVELOG 'DEST= GRP1_RT_03, TYPE= REALTIME';

3)先修改备库、再修改主库

ALTER DATABASE OPEN FORCE;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
SP_SET_PARA_VALUE(1, 'DW_INACTIVE_INTERVAL', 60);

3.6 修改归档(方法2:手动修改dmarch.ini)    

1)修改原主库归档文件

vi  /dm8/datadm/DM8DW/dmarch.iniARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/archdm
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT  = 20480[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM8DW02[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DM8DW03


2)修改原备库归档文件

vi  /dm8/datadm/DM8DW/dmarch.iniARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/archdm
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT  = 20480[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DM8DW01[ARCHIVE_REALTIME2]
ARCH_TYPE = REALTIME
ARCH_DEST = DM8DW03

3)重启实例

DmServiceDM8DW02 stop #备库
DmServiceDM8DW01 restart #主库
DmServiceDM8DW02 start #备库

3.7修改监视器

修改确认监视器

vi dmmonitor_1.iniMON_DW_CONFIRM = 1
MON_LOG_PATH = /dm8/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 4096
[DM8DW]
MON_INST_OGUID = 241007001
MON_DW_IP = 192.168.220.101:7222
MON_DW_IP = 192.168.220.102:7222
MON_DW_IP = 192.168.220.109:7222

修改非确认监视器

vi dmmonitor_0.iniMON_DW_CONFIRM = 0
MON_LOG_PATH = /dm8/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 32
MON_LOG_SPACE_LIMIT = 4096
[DM8DW]
MON_INST_OGUID = 241007001
MON_DW_IP = 192.168.220.101:7222
MON_DW_IP = 192.168.220.102:7222
MON_DW_IP = 192.168.220.109:7222

3.8 启动新备库及所有守护进程及监视器

DmServiceDM8DW03 start #新备库
DmWatcherServiceDM8DW01 start #主库
DmWatcherServiceDM8DW02 start #备库
DmWatcherServiceDM8DW03 start #备库
DmMonitorServiceDM8DW start  #监视器

3.9验证

登录非确认监视器,查看新备库是否增加成功

/dm8/dmdbms/bin/dmmonitor /dm8/dmdbms/bin/dmmonitor_0.inishow

备库DM8DW03增加成功,本文结束!

参考文档《DM8数据守护与读写分离集群V4.0》

2024.11.02

相关文章:

达梦数据守护集群_动态增加实时备库

目录 1、概述 2、实验环境 2.1环境信息 2.2配置信息 2.3 查看初始化参数 3、动态增加实时备库 3.1数据准备 3.2配置新备库 3.3动态增加MAL配置 3.4 关闭守护进程及监视器 3.5修改归档(方法1:动态添加归档配置) 3.6 修改归档&…...

计算机基础:Ping、Telnet和SSH

文章目录 PingTelnetSSLSSH隧道 Ping Ping和Telnet是两种常见的网络工具,它们分别用于测试网络连接和检查服务端口的连通性。 Ping是一种网络工具,用于测试主机之间的连通性。它通过发送ICMP(Internet Control Message Protocol&#xff09…...

Java教学新动力:SpringBoot辅助平台

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及,互联网成为人们查找信息的重要场所,二十一世纪是信息的时代,所以信息的管理显得特别重要。因此,使用计算机来管理教学辅助平台的相关信息成为必然。开发合适…...

24/11/3 算法笔记 Adam优化器拆解

Adam 优化器是一种用于深度学习中的自适应学习率优化算法,它结合了两种其他流行的优化方法的优点:RMSprop 和 Momentum。简单来说,Adam 优化器使用了以下方法: 1. **指数加权移动平均(Exponentially Weighted Moving …...

浅谈语言模型推理框架 vLLM 0.6.0性能优化

在此前的大模型技术实践中,我们介绍了加速并行框架Accelerate、DeepSpeed及Megatron-LM。得益于这些框架的助力,大模型的分布式训练得以化繁为简。 然而,企业又该如何将训练完成的模型实际应用部署,持续优化服务吞吐性能&#xf…...

【大数据学习 | kafka高级部分】kafka中的选举机制

controller的选举 首先第一个选举就是借助于zookeeper的controller的选举 第一个就是controller的选举,这个选举是借助于zookeeper的独享锁实现的,先启动的broker会在zookeeper的/contoller节点上面增加一个broker信息,谁创建成功了谁就是主…...

MySQL limit offset分页查询可能存在的问题

MySQL limit offset分页查询语句 有 3 种形式: limit 10:不指定 offset,即 offset 0 ,表示读取第 1 ~ 10 条记录。limit 20, 10:offset 20,因为 offset 从 0 开始,20 表示从第 21 条记录开始…...

CODESYS可视化桌面屏保-动态气泡制作详细案例

#一个用于可视化(HMI)界面的动态屏保的详细制作案例程序# 前言: 在工控自动化设备上,为了防止由于人为误触发或操作引起的故障,通常在触摸屏(HMI)增加屏幕保护界面,然而随着PLC偏IT化的发展,在控制界面上的美观程度也逐渐向上位机或网页前端方面发展,本篇模仿Windows…...

华为 Atlas500 Euler 欧拉系统操作指南

华为 Atlas500 Euler 欧拉系统操作指南 ssh root连接 找到Atlas500的IP地址,如:192.168.1.166 账号/密码:admin/Huawei123 root/密码:Huawei123456 #直接使用root ssh连接 这里受限不让直接用root连接 ssh root192.168.1.116 #…...

Chromium127编译指南 Mac篇(六)- 编译优化技巧

1. 前言 在Chromium127的开发过程中,优化编译速度是提升开发效率的关键因素。本文将重点介绍如何使用ccache工具来加速C/C代码的编译过程,特别是在频繁切换分支和修改代码时。通过合理配置和使用这些工具,您将能够显著减少编译时间&#xff…...

《TCP/IP网络编程》学习笔记 | Chapter 3:地址族与数据序列

《TCP/IP网络编程》学习笔记 | Chapter 3:地址族与数据序列 《TCP/IP网络编程》学习笔记 | Chapter 3:地址族与数据序列分配给套接字的IP地址和端口号网络地址网络地址分类和主机地址边界用于区分套接字的端口号数据传输过程示例 地址信息的表示表示IPv4…...

C++ | Leetcode C++题解之第546题移除盒子

题目&#xff1a; 题解&#xff1a; class Solution { public:int dp[100][100][100];int removeBoxes(vector<int>& boxes) {memset(dp, 0, sizeof dp);return calculatePoints(boxes, 0, boxes.size() - 1, 0);}int calculatePoints(vector<int>& boxes…...

day05(单片机)SPI+数码管

目录 SPI数码管 SPI通信 SPI总线介绍 字节交换原理 时序单元 ​​​​​​​SPI模式 模式0 模式1 模式2 模式3 数码管 介绍 74HC595芯片分析 ​​​​​​​原理图分析 ​​​​​​​cubeMX配置​​​​​​​ 程序编写 硬件SPI ​​​​​​​软件SPI 作业&#xff1a; SPI数…...

Android Framework AMS(13)广播组件分析-4(LocalBroadcastManager注册/注销/广播发送处理流程解读)

该系列文章总纲链接&#xff1a;专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明&#xff1a; 说明&#xff1a;本章节主要解读广播组件的广播发送过程。关注思维导图中左上侧部分即可。 有了前面普通广播组件 注册/注销程/广播组件的发送广播流程分析的基础&…...

模糊理论与模糊集概述

1. 模糊集 1️⃣ μ A : U → [ 0 , 1 ] \mu_A:U\to{[0,1]} μA​:U→[0,1]&#xff0c;将任意 u ∈ U u\in{}U u∈U映射到 [ 0 , 1 ] [0,1] [0,1]上的某个函数 模糊集&#xff1a; A { μ A ( u ) , u ∈ U } A\{\mu_A(u),u\in{}U\} A{μA​(u),u∈U}称为 U U U上的一个模糊集…...

基于STM32的实时时钟(RTC)教学

引言 实时时钟&#xff08;RTC&#xff09;是微控制器中的一种重要功能&#xff0c;能够持续跟踪当前时间和日期。在许多应用中&#xff0c;RTC用于记录时间戳、定时操作等。本文将指导您如何使用STM32开发板实现RTC功能&#xff0c;通过示例代码实现当前时间的读取和显示。 环…...

Caffeine Cache解析(三):BoundedBuffer 与 MpscGrowableArrayQueue 源码浅析

接续 Caffeine Cache解析(一)&#xff1a;接口设计与TinyLFU 接续 Caffeine Cache解析(二)&#xff1a;drainStatus多线程状态流转 BoundedBuffer 与 MpscGrowableArrayQueue multiple-producer / single-consumer 这里multiple和single指的是并发数量 BoundedBuffer: Caf…...

全双工通信协议WebSocket——使用WebSocket实现智能学习助手/聊天室功能

一.什么是WebSocket&#xff1f; WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器的全双工通信——浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c;并进行双向数据传输 HTTP 协议是一种无状态的、无连接的、单向的应用…...

Rust-Trait 特征编程

昨夜江边春水生&#xff0c;艨艟巨舰一毛轻。 向来枉费推移力&#xff0c;此日中流自在行。 ——《活水亭观书有感二首其二》宋朱熹 【哲理】往日舟大水浅&#xff0c;众人使劲推船&#xff0c;也是白费力气&#xff0c;而此时春水猛涨&#xff0c;巨舰却自由自在地飘行在水流中…...

彻底理解哈希表(HashTable)结构

目录 介绍优缺点概念哈希函数快速的计算键类型键转索引霍纳法则 均匀的分布 哈希冲突链地址法开放地址法线性探测二次探测再哈希法 扩容/缩容实现哈希创建哈希表质数判断哈希函数插入&修改获取数据删除数据扩容/缩容函数全部代码 哈希表&#xff08;Hash Table&#xff09;…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中&#xff0c;时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志&#xff0c;到供应链系统的物流节点时间戳&#xff0c;时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库&#xff0c;其日期时间类型的…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备&#xff0c;并且图标都没了 错误案例 往上一顿搜索&#xff0c;试了很多博客都不行&#xff0c;比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动&#xff0c;重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

小木的算法日记-多叉树的递归/层序遍历

&#x1f332; 从二叉树到森林&#xff1a;一文彻底搞懂多叉树遍历的艺术 &#x1f680; 引言 你好&#xff0c;未来的算法大神&#xff01; 在数据结构的世界里&#xff0c;“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的&#xff0c;它…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

前端开发者常用网站

Can I use网站&#xff1a;一个查询网页技术兼容性的网站 一个查询网页技术兼容性的网站Can I use&#xff1a;Can I use... Support tables for HTML5, CSS3, etc (查询浏览器对HTML5的支持情况) 权威网站&#xff1a;MDN JavaScript权威网站&#xff1a;JavaScript | MDN...