当前位置: 首页 > 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;…...

expected_conditions(EC)与元素相关的常用方法

与元素&#xff08;Element&#xff09;相关的 expected_conditions&#xff0c;分为存在、可见、可点击、不可见/消失、属性/文本、选中状态等几类引用&#xff1a;from selenium.webdriver.support import expected_conditions as EC1. 元素存在&#xff08;Presence&#xf…...

低成本数据标注:OpenClaw+Phi-3-vision-128k-instruct半自动化标记工具

低成本数据标注&#xff1a;OpenClawPhi-3-vision-128k-instruct半自动化标记工具 1. 为什么我们需要半自动化数据标注 在计算机视觉项目中&#xff0c;数据标注往往是耗时最长、成本最高的环节。我曾经参与过一个商品识别项目&#xff0c;团队3个人花了整整两周时间才完成50…...

好写作AI“期刊论文魔法工坊”:打造学术发表的秘密武器

在学术的浩瀚星空中&#xff0c;期刊论文宛如璀璨星辰&#xff0c;是研究者展示智慧结晶、推动学科发展的重要途径。然而&#xff0c;撰写一篇高质量且符合期刊要求的论文&#xff0c;却如同在荆棘丛中开辟道路&#xff0c;充满了挑战与艰辛。别担心&#xff0c;好写作AI宛如一…...

Go语言的HTTP服务器:从基础到高级

Go语言的HTTP服务器&#xff1a;从基础到高级 HTTP 服务器的重要性 在现代 Web 开发中&#xff0c;HTTP 服务器是构建 Web 应用程序的核心组件。一个高性能、可靠的 HTTP 服务器可以&#xff1a; 处理客户端请求&#xff0c;返回响应支持各种 HTTP 方法和状态码提供路由和中…...

Redis 实战篇1.4 (Redis优化秒杀)

Redis优化秒杀原流程思路Redis优化秒杀在Redis中库存用String数据类型存储&#xff0c;为了确保一人一单&#xff0c;则订单id存储用Set数据类型保证数据的唯一性lua脚本保证原子性异步秒杀方案案例&#xff1a;需求创建订单&#xff08;还没完成明天继续&#xff09;// 解锁的…...

从火柴盒到AI:探索MENACE的数字化旅程

在计算机科学的历史中,有许多有趣的实验和发明,其中之一便是由唐纳德米奇(Donald Michie)设计的“火柴盒计算机”(Matchbox Educable Noughts and Crosses Engine,简称MENACE)。这个装置使用了火柴盒和彩色珠子来模拟人工智能,教机器玩井字游戏(Tic-Tac-Toe)。本文将…...

性能测试专家养成记:工具、思维、实战全解析

在软件质量保障体系中&#xff0c;性能测试正从一个可选的“加分项”演变为关乎用户体验与业务存续的“必答题”。对于广大软件测试从业者而言&#xff0c;成长为一名性能测试专家&#xff0c;不仅意味着技术深度的拓展&#xff0c;更代表着从“验证功能”到“保障体验”乃至“…...

【ABAP】客转供 客户转供应商 cl_md_bp_maintain=>maintain 创建供应商

报错&#xff1a;未分配客户/供应商&#xff0c;您无法传输客户/供应商数据 这是因为如果创建的时候是作为客户的&#xff0c; 后面想要创建为供应商&#xff0c;所以调用的供应商创建/修改接口。 但是这时候&#xff0c;LFA1里面是没有供应商编号的&#xff0c;只有BUT000里面…...

避坑指南:用OpenCV处理Kinetics-400数据集时,你可能遇到的3个典型问题及解决方案

避坑指南&#xff1a;用OpenCV处理Kinetics-400数据集时&#xff0c;你可能遇到的3个典型问题及解决方案 处理大型视频数据集如Kinetics-400时&#xff0c;即使是最有经验的开发者也会遇到各种意料之外的问题。本文将深入探讨三个最常见的技术陷阱&#xff0c;并提供经过实战验…...

S-UI系统调用分析:与操作系统交互的底层实现

S-UI系统调用分析&#xff1a;与操作系统交互的底层实现 还在为网络代理管理系统的底层实现而困惑&#xff1f;本文将深入解析S-UI如何通过系统调用与操作系统深度交互&#xff0c;让你全面掌握这套高级Web面板的底层工作原理。 读完本文你将了解&#xff1a; S-UI如何处理系…...