单提交机 DM8 两节点实时主备部署与性能验证
本文档用于在一台提交机 VM 上复刻部署规范里的 2 节点 Data Watch 实时主备集群。核心做法是同一台机器上放两个实例目录实例名不同所有服务端口错开用本机 IP 模拟两台机器。1. 架构与端口角色实例名实例目录归档目录实例端口MAL 端口守护监听端口实例监听守护端口主库DW1_01/dmdata/DW1_01/DAMENG/dmarch/DW1_0115236533654365536备库DW1_02/dmdata/DW1_02/DAMENG/dmarch/DW1_0215237533754375537统一参数安装目录/dmdbms守护组GDW1OGUID45331账号密码SYSDBA/Dameng1234HOST_IP提交机本机 IP。只在本机验证时可用127.0.0.1但建议使用 VM 的实际业务 IP。2. 主备集群讲透DM Data Watch 主备集群由数据库实例、实时归档、MAL 通信、守护进程dmwatcher和监视器dmmonitor组成。主库负责对外写入。备库处于STANDBY正常提供只读能力。主库产生 redo 后通过 MAL 链路把日志发给备库。守护进程负责监控本地实例和远端守护进程监视器负责展示状态、执行switchover和takeover。实时主备的关键点是主库在 redo 写入本地联机日志前先把 RLOG_PKG 发给备库备库收到后立即响应不等待重演完成。主库收到响应后继续写本地联机日志并响应业务。因此它的 RPO 接近 0但备库查询仍可能有极短应用延迟。RTO 取决于监视器模式、故障检测时间和人工接管速度。本次采用DW_MODEMANUAL和MON_DW_CONFIRM0原因是提交机只有一台没有独立仲裁机手动模式更适合验收和练习避免单机模拟时自动接管误判。3. 归档类型差异类型配置位置发送时机高可用行为RPO/RTO 逻辑本次用途实时归档REALTIMEdmarch.ini主库写联机 redo 前发送主备核心同步机制支持切换接管RPO 接近 0RTO 看守护和监视器接管主线同步归档SYNCdmarch.ini主库归档日志刷盘后由归档线程发送不作为本次 2 节点实时主备主线RPO 通常较低但与归档刷盘/发送相关RTO 不等同主备接管补充理解异步归档ASYNCdmarch.inidmtimer.ini定时器触发后扫描本地归档发送更适合异地备或级联备不能替代本次主线 HARPO 取决于定时周期和积压RTO 依赖额外接管策略演示理解性能目标优先选实时主备。读写分离在读多写少时可能更高但需要接口层配置且单 VM 上两个实例争抢 CPU/IO结果不一定比单实例稳定。4. 初始化与配置步骤以下命令以dmdba用户执行注册服务命令以root执行。4.1 准备目录mkdir-p/dmdata/DW1_01 /dmdata/DW1_02 /dmarch/DW1_01 /dmarch/DW1_02mkdir-p/dmdata/malpath /dmdata/backup /dmdbms/log4.2 初始化主库/dmdbms/bin/dminitPATH/dmdata/DW1_01INSTANCE_NAMEDW1_01PORT_NUM15236PAGE_SIZE32EXTENT_SIZE32LOG_SIZE2048CHARSET1CASE_SENSITIVEYSYSDBA_PWDDameng1234SYSAUDITOR_PWDDameng1234首次启动主库并修改基础参数/dmdbms/bin/dmserver /dmdata/DW1_01/DAMENG/dm.ini另开窗口执行-- disql SYSDBA/Dameng1234HOST_IP:15236ALTERDATABASEMOUNT;SP_SET_PARA_VALUE(2,PORT_NUM,15236);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,ARCH_INI,1);SP_SET_PARA_VALUE(2,RLOG_SEND_APPLY_MON,64);ALTERDATABASEOPEN;关闭前台dmserver后备份主库/dmdbms/bin/dmrmanCTLSTMTBACKUP DATABASE /dmdata/DW1_01/DAMENG/dm.ini FULL BACKUPSET /dmdata/backup/DW1_FULL PARALLEL 44.3 配置主库文件把templates/dmmal.ini复制到/dmdata/DW1_01/DAMENG/dmmal.ini将其中HOST_IP替换为提交机 IP。把templates/dmarch_primary.ini复制为/dmdata/DW1_01/DAMENG/dmarch.ini。把templates/dmwatcher_01.ini复制为/dmdata/DW1_01/DAMENG/dmwatcher.ini。4.4 准备备库复制主库实例目录到备库目录cp-a/dmdata/DW1_01/DAMENG /dmdata/DW1_02/修改备库dm.iniINSTANCE_NAME DW1_02 PORT_NUM 15237把templates/dmmal.ini复制到/dmdata/DW1_02/DAMENG/dmmal.ini同样替换HOST_IP。把templates/dmarch_standby.ini复制为/dmdata/DW1_02/DAMENG/dmarch.ini。把templates/dmwatcher_02.ini复制为/dmdata/DW1_02/DAMENG/dmwatcher.ini。恢复备库数据/dmdbms/bin/dmrmanCTLSTMTRESTORE DATABASE /dmdata/DW1_02/DAMENG/dm.ini FROM BACKUPSET /dmdata/backup/DW1_FULL/dmdbms/bin/dmrmanCTLSTMTRECOVER DATABASE /dmdata/DW1_02/DAMENG/dm.ini FROM BACKUPSET /dmdata/backup/DW1_FULL/dmdbms/bin/dmrmanCTLSTMTRECOVER DATABASE /dmdata/DW1_02/DAMENG/dm.ini UPDATE DB_MAGIC4.5 注册服务服务名必须区分两个实例/dmdbms/script/root/dm_service_installer.sh-tdmserver-pDW101-dm_ini/dmdata/DW1_01/DAMENG/dm.ini-mmount/dmdbms/script/root/dm_service_installer.sh-tdmserver-pDW102-dm_ini/dmdata/DW1_02/DAMENG/dm.ini-mmount/dmdbms/script/root/dm_service_installer.sh-tdmwatcher-pWatcher101-watcher_ini/dmdata/DW1_01/DAMENG/dmwatcher.ini /dmdbms/script/root/dm_service_installer.sh-tdmwatcher-pWatcher102-watcher_ini/dmdata/DW1_02/DAMENG/dmwatcher.ini如需注册监视器/dmdbms/script/root/dm_service_installer.sh-tdmmonitor-pMonitorDW1-monitor_ini/dmdbms/bin/dmmonitor.ini5. 启动与角色设置启动两个实例为 mount/dmdbms/bin/DmServiceDW101 start /dmdbms/bin/DmServiceDW102 start设置主库-- disql SYSDBA/Dameng1234HOST_IP:15236SP_SET_PARA_VALUE(1,ALTER_MODE_STATUS,1);SP_SET_OGUID(45331);ALTERDATABASEPRIMARY;SP_SET_PARA_VALUE(1,ALTER_MODE_STATUS,0);设置备库-- disql SYSDBA/Dameng1234HOST_IP:15237SP_SET_PARA_VALUE(1,ALTER_MODE_STATUS,1);SP_SET_OGUID(45331);ALTERDATABASESTANDBY;SP_SET_PARA_VALUE(1,ALTER_MODE_STATUS,0);启动守护进程/dmdbms/bin/DmWatcherServiceWatcher101 start /dmdbms/bin/DmWatcherServiceWatcher102 start配置监视器cptemplates/dmmonitor.ini /dmdbms/bin/dmmonitor.inised-is/HOST_IP/提交机实际IP/g/dmdbms/bin/dmmonitor.ini /dmdbms/bin/dmmonitor /dmdbms/bin/dmmonitor.ini监视器里执行show global info list tip6. 验证场景6.1 主备同步主库执行CREATETABLEDW_TEST(IDINT,C1VARCHAR(50));INSERTINTODW_TESTVALUES(1,PRIMARY_TO_STANDBY);COMMIT;备库执行SELECT*FROMDW_TEST;SELECTARCH_DEST,ARCH_TYPE,ARCH_STATUSFROMV$ARCH_STATUS;预期备库能查到数据主库到DW1_02的实时归档状态为VALID。6.2 正常切换监视器执行choose switchover GDW1 switchover GDW1.DW1_02 show global info预期DW1_02变为PRIMARYDW1_01变为STANDBY。6.3 故障接管停止当前主库实例后在监视器执行choose takeover GDW1 takeover GDW1.DW1_02 show global info如果常规接管不满足条件先执行SELECTSF_DW_CHECK_TAKEOVER();仅在确认归档有效且原主库不会重新写入时才考虑takeover force。7. 性能提交方法7.1 单实例基线使用同样 VM、同样 DM 参数只启动单实例记录工具sysbench / JMeter / 自写 SQL 循环任选一种。并发数建议固定 8、16 或 32。持续时间建议至少 3 分钟。指标TPS、QPS、平均延迟、P95 延迟、CPU、IO wait。7.2 实时主备压测启动主备和守护只连接当前主库端口压测。记录同样指标并计算主备性能比例 实时主备 TPS / 单实例 TPS7.3 基本优化点MAL_COMPRESS_LEVEL0本机或内网无需压缩降低 CPU 开销。归档目录与数据目录分开至少逻辑路径分开便于观察 IO。压测时关闭过重 SQL 日志只保留必要监控。根据 VM 内存调大BUFFER但不要挤爆系统页缓存。保持两个实例端口、服务名、归档目录完全独立避免相互覆盖。8. 最终提交内容建议提交以下内容集群架构和端口表。实时、同步、异步归档差异表。show global info、list、tip的关键输出截图或文本。主备同步验证 SQL 结果。正常切换或故障接管验证结果。单实例与实时主备性能表以及主备/单机比例。

相关新闻

TMS320F28004x DMA模块架构解析与驱动开发实战

TMS320F28004x DMA模块架构解析与驱动开发实战

1. DMA模块核心架构与设计思路拆解 在嵌入式实时控制系统中,CPU的算力是宝贵的资源。当系统需要频繁地在内存与外设之间搬运数据时,例如ADC连续采样、SPI/UART通信数据收发,如果这些操作都由CPU通过软件循环来完成,会大量占用CPU时…

2026/7/21 6:50:44 阅读更多 →
C++入门指南:从环境搭建到核心概念与项目实践

C++入门指南:从环境搭建到核心概念与项目实践

1. 项目概述:为什么C依然是硬核开发的基石? 如果你刚接触编程,或者从Python、Java这类语言转过来,第一次打开C的代码可能会有点懵。满眼的 * 、 & 、 :: ,还有各种 new 和 delete ,感觉像是在…

2026/7/21 6:49:44 阅读更多 →
Ubuntu 20.04搭建vsftpd服务器完整指南

Ubuntu 20.04搭建vsftpd服务器完整指南

1. 项目概述 在Linux系统中搭建FTP服务器是一项基础但实用的运维技能。Ubuntu作为最流行的Linux发行版之一,其稳定性和易用性使其成为搭建FTP服务的理想选择。本文将详细介绍在Ubuntu 20.04 LTS系统上配置vsftpd(Very Secure FTP Daemon)服务…

2026/7/21 6:49:44 阅读更多 →

最新新闻

深入解析McBSP寄存器配置:从基础原理到多通道与低功耗实战

深入解析McBSP寄存器配置:从基础原理到多通道与低功耗实战

1. McBSP寄存器概览与核心设计思路 在嵌入式系统和DSP开发中,与外部音频编解码器、数据转换器或其他串行设备通信是家常便饭。德州仪器的多通道缓冲串行端口(McBSP)因其高度的灵活性和强大的多通道支持,成为了许多音频、电信和工业…

2026/7/22 7:55:47 阅读更多 →
AI时代GEO投放选型指南:避开三大误区

AI时代GEO投放选型指南:避开三大误区

标题 AI时代GEO投放选型指南:避开三大误区 引言 简要介绍GEO(地理定位)投放的概念及其在AI时代的重要性 提出当前企业在GEO投放中常见的三大误区 误区一:忽视数据质量与实时性 问题描述:依赖过时或低质量的地理数据导致…

2026/7/22 7:55:47 阅读更多 →
Kimi K3 API集成指南:长文本处理与成本优化实战

Kimi K3 API集成指南:长文本处理与成本优化实战

最近在AI工具选型时,不少团队都在关注国内外大模型服务的性价比对比。特别是当业务需要处理长文本、代码生成或复杂逻辑推理时,Kimi这类国产模型与海外方案的成本差异成为关键决策因素。本文基于实际技术调研,详细拆解Kimi K3的API接入、功能…

2026/7/22 7:55:47 阅读更多 →
Unity热更新工作流:HybridCLR与Addressable协同实践指南

Unity热更新工作流:HybridCLR与Addressable协同实践指南

1. 项目概述:为什么我们需要一个高效的热更新工作流? 在Unity项目开发,尤其是移动端和长线运营项目的后期,我们总会遇到一个绕不开的痛点:内容更新。想象一下,你的游戏上线后,发现了一个致命的数…

2026/7/22 7:55:47 阅读更多 →
LLM长文本情感智能:动态RAG与CoEM协同实践

LLM长文本情感智能:动态RAG与CoEM协同实践

1. LongEmotion:当LLM遇上长文本情感智能 去年调试一个心理咨询机器人项目时,我遇到个棘手问题:当对话超过20轮后,模型就开始机械重复"我理解你的感受"这类空话。这正是LongEmotion论文要解决的核心场景——在长上下文交…

2026/7/22 7:55:47 阅读更多 →
3ds Max到Unity资产优化:贴图烘焙与通道映射实战指南

3ds Max到Unity资产优化:贴图烘焙与通道映射实战指南

1. 项目概述:从3ds Max到Unity的资产优化之路 如果你是从3ds Max、Maya或者Blender这类DCC(数字内容创作)软件转向Unity或Unreal Engine等实时渲染引擎的美术师或技术美术,那么“贴图烘焙”和“通道映射”这两个词,大概…

2026/7/22 7:54:47 阅读更多 →

日新闻

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

TI DSP系统配置模块SYSCFG详解:中断机制与主设备优先级配置实战

1. 项目概述与SYSCFG模块的核心价值在嵌入式系统,尤其是像TI C6000系列这样的高性能DSP开发中,我们常常会与芯片手册里那些密密麻麻的寄存器打交道。很多开发者可能更关注算法实现、内存优化或者外设驱动,但对于一个稳定、高效的系统而言&…

2026/7/22 0:00:26 阅读更多 →
微信Server酱:高到达率的应急通知方案实践

微信Server酱:高到达率的应急通知方案实践

1. 为什么我们需要"最次"的通知方案? 在数字化协作环境中,消息通知系统的重要性不言而喻明。但现实情况是,企业级通知方案往往需要复杂的API对接(如企业微信、钉钉、飞书),个人开发者的小项目又经…

2026/7/22 0:00:26 阅读更多 →
甲方要的“简洁“PPT,到底是简洁还是省事?

甲方要的“简洁“PPT,到底是简洁还是省事?

甲方说"简洁一点",乙方听到的是"少做几页"。甲方说"不要太复杂",乙方理解成"别放图表了"。结果交过去,甲方说"我说的简洁不是这个意思"。"简洁"这个词在PPT语境里,是…

2026/7/22 0:00:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/21 8:48:31 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/21 5:34:47 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/21 8:25:39 阅读更多 →

月新闻