news 2026/8/15 3:46:11

达梦实时主备

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
达梦实时主备

实时主备概述
实时主备由一个主库以及一个或者多个配置了实时(Realtime)归档的备库组成,其主要目的是保障数据库可用性,提高数据安全性。实时主备系统中,主库提供完整的数据库功能,备库提供只读服务。主库修改数据产生的Redo日志,通过实时归档机制,在写入联机Redo日志文件之前发送到备库,实时备库通过重演Redo日志与主库保持数据同步。当主库出现故障时,备库在将所有Redo日志重演结束后,就可以切换为主库对外提供数据库服务
1 环境准备
服务器 主库IP:192.168.118.120 dm8数据库 实例名 :RAC1 端口号:5236
服务器 备库IP:192.168.118.121 dm8数据库 实例名 :RAC2 端口号:5236
#数据库启动服务命令路径/dm8/bin,实例配置文件路径/dm8/data/DAMENG/
2 主备库分别初始化实例(按客户要求)
./dminit path=/dm8/data page_size=32 instance_name=RAC1
./dminit path=/dm8/data page_size=32 instance_name=RAC2
3 备份还原
#如果是初始搭建环境,可以通过对主库脱机备份、对备库脱机还原的方式来准备数据, 如果主库已经处于运行状态,则可以对主库进行联机备份、对备库脱机还原的方式来准备数据。
3.1 主库创建实例之后,启动数据库并登录
./dmserver /dm8/data/DAMENG/dm.ini
3.2 关闭数据库,以dmrman备份数据库
BACKUP DATABASE '/dm8/data/DAMENG/dm.ini' BACKUPSET '/dm8/data/backup';
3.3 将备份文件复制到备库对应目录下(如果是root用户,复制成功需要将备份文件设置属于dmdba:dinstall用户组)
scp -r /dm8/data/backup dmdba@192.168.118.121:/dm8/data/backup
3.4 备库启动dmrman执行数据库还原
RESTORE DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/backup';
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' FROM BACKUPSET '/dm8/data/backup';
RECOVER DATABASE '/dm8/data/DAMENG/dm.ini' UPDATE DB_MAGIC;
4 配置集群文件
4.1 vim dm.ini #主备库实例都需更改下面参数
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
4.2 vim dmmal.ini #主备库配置必须完全一致
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间
[MAL_INST1]
MAL_INST_NAME = RAC1 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 192.168.118.120 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 192.168.118.120 #实例的对外服务 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 = RAC2
MAL_HOST = 192.168.118.121
MAL_PORT = 61141
MAL_INST_HOST = 192.168.118.121
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
4.3 vim dmarch.ini #主备库归档目标实例名不一致,其他一致
#与联机 Redo 日志文件可以被覆盖重用不同,本地归档日志文件不能被覆盖,写入其中Redo 日志信息会一直保留,直到用户主动删除;如果配置了归档日志空间上限,系统会自动删除最早生成的归档 Redo 日志文件,腾出空间。如果磁盘空间不足,且没有配置归档日志空间上限(或者配置的上限超过实际空间),系统将自动挂起,直到用户主动释放出足够的空间后继续运行。配置如下:
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = RAC2 #实时归档目标实例名
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dm8/data/DAMENG/arch #本地归档文件存放路径
ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值
ARCH_SPACE_LIMIT = 500000 #单位 Mb,0 表示无限制,范围 1024~4294967294M
4.4 配置dmwatcher.ini #主备库配置一致
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL # 手工切换 AUTO自动切换模式必须部署一个确认监视器
DW_ERROR_TIME = 10 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 10 #本地实例故障认定时间
INST_OGUID = 453332 #守护系统唯一 OGUID 值
INST_INI = /dm8/data/DAMENG/dm.ini #dm.ini配置文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dm8/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
4.5 vim dmmonitor.ini #生产环境如果是自动切换需单独一台服务器配置监视器
MON_DW_Confirm = 0 # 0表示普通监视器 ,最多配置8个,1 确认监视器模式
MON_LOG_PATH = /dm8/data/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 453332 #组 GRP1 的唯一OGUID 值
#配置为监视器到组GRP1的守护进程的连接信息以―IP:PORT‖的形式配置
#IP对应dmmal.ini中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
MON_DW_IP = 192.168.118.120:52141
MON_DW_IP = 192.168.118.121:52141
5 以 Mount方式启动主备库
./dmserver /dm8/data/DAMENG/dm.ini mount
#一定要以 Mount 方式启动数据库实例,否则系统启动时会重构回滚表空间,生成 Redo 日志;启动后应用可能连接到数据库实例进行操作,破坏主备库的数据一致性。数据守护配置结束后,守护进程会自动 Open 数据库
6 启动命令行工具 disql,登录主备库设置 OGUID 值和数据库模式。
6.1 主库
sp_set_oguid(453332);
alter database primary;
6.2 备库
sp_set_oguid(453332);
alter database standby;
7 启动各个主备库上的守护进程
./dmwatcher /dm8/data/DAMENG/dmwatcher.ini
8 启动监视器
./dmmonitor /dm8/data/DAMENG/dmmonitor.ini

监视器提供一系列命令,支持当前守护系统状态查看以及故障处理,可输入help 命令查看各种命令说明使用,结合实际情况选择使用。至此一主一备的实时数据守护系统搭建完毕,在搭建步骤和各项配置都正确的情况下, 在监视器上执行 show 命令,可以监控到所有实例都处于 Open 状态,所有守护进程也都处于Open 状态,即为正常运行状态。
9 创建服务(root用户,安装目录script/root下,输入./dm_service_installer.sh -h查看帮助,过程略)
#如果是自动切换,一定要创建监视器服务并启动
创建成功之后,由于前面已经前台方式启动,以服务方式启动会报错,需要将前台服务关闭。关闭顺序如下

  1. 如果启动了确认监视器,先关闭确认监视器(防止自动接管)
  2. 关闭备库守护进程(防止重启实例)
  3. 关闭主库守护进程(防止重启实例)
    4.先关主库,后关备库(主库 Shutdown 过程中,需要 Purge 所有已提交事务,会修改数据,并产生 Redo 日志。如果先 Shutdown 备库,会导致主库发送归档日志失败,并且由于主库已经处于 Shutdown 状态,会导致主库异常关闭)
    10 服务名配置
    配置 DM 数据守护,一般要求配置连接服务名,以实现故障自动重连。连接服务名可以在 DM 提供的 JDBC、DPI 等接口中使用,连接数据库时指定连接服务名,接口会随机选择一个 IP 进行连接,如果连接不成功或者服务器状态不正确,则顺序获取下一个 IP 进行连接,直至连接成功或者遍历了所有 IP。可以通过编辑 dm_svc.conf 文件配置连接服务名。
    dm_svc.conf 配置文件在 DM 安装时生成,Windows 平台下位于%SystemRoot%\system32 目录,Linux 平台下位于/etc 目录,详细配置见系统管理员手册
    10.1 vim dm_svc.conf
    dw_svc=(192.168.118.120:5236,192.168.118.121:5236)
    LOGIN_MODE =(1)
    JDBC连接串写法:#具体参考程序员手册
    使用连接串:jdbc:dm://ip:port
    使用服务名:jdbc:dm://服务名
    类名为:dm.jdbc.driver.DmDriver
    10.2 可直接字符串连接,无需在每个dm_svc.conf文件配置。
    主备示例: url="jdbc:dm://dmconn?dmconn=(192.168.10.11:5236,192.168.10.12:5236)&LOGIN_MODE=(1)";
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/15 3:45:01

SolidWorks彻底卸载与深度清理指南:解决安装失败与残留问题

1. 项目概述:当卸载成为一场“硬仗”如果你也曾在电脑上尝试安装SolidWorks,却因为各种原因卡在了半路,最终弹出一个冰冷的“安装失败”提示,那你一定懂我接下来要说的痛。这不仅仅是点一下“卸载”就能解决的问题。SolidWorks作为…

作者头像 李华
网站建设 2026/8/15 3:44:52

鼠标按键失灵诊断与维修:从微动更换到电路排查全解析

1. 鼠标失灵,一个“小问题”背后的复杂世界鼠标左右键不灵,这事儿太常见了,几乎每个用电脑超过三年的人都遇到过。你可能觉得,这无非就是换个微动开关或者直接买个新鼠标的事儿,网上教程一搜一大把。但作为一个拆过上百…

作者头像 李华
网站建设 2026/8/15 3:43:26

OpenClaw:工业级AI智能体网关的设计、部署与核心实践

1. 项目概述:OpenClaw 的诞生与核心定位最近在 AI 智能体这个圈子里,OpenClaw 这个名字被讨论得越来越频繁。很多朋友第一次听到这个名字,可能会联想到某个开源爬虫框架或者工具,但实际上,它瞄准的是一个更底层、更关键…

作者头像 李华
网站建设 2026/8/15 3:42:27

U盘启动盘制作与Windows系统重装全攻略:从工具选择到BIOS设置

1. 从“系统崩溃”到“一键重生”:为什么你需要掌握U盘启动盘制作 电脑用久了,难免会遇到各种“疑难杂症”:系统更新后蓝屏不断、中了顽固病毒杀不干净、C盘爆满拖慢速度,或者干脆就是用了几年,想给电脑来个“大扫除”…

作者头像 李华
网站建设 2026/8/15 3:41:09

物流网络优化实战:ARIMA预测与多目标优化建模全解析

1. 项目概述:从一道赛题看物流网络优化的实战解法如果你关注过近几年的数学建模竞赛,尤其是像MathorCup、国赛这类含金量高的比赛,会发现“物流网络优化”几乎是一个常青树话题。这不难理解,物流成本是企业运营的“第三利润源”&a…

作者头像 李华
网站建设 2026/8/15 3:40:35

JavaScript Cookie操作全指南:从原理到实战封装与安全实践

1. 项目概述:为什么我们还在聊Cookie?在Web开发的世界里,Cookie就像空气一样无处不在,却又常常被我们忽视。作为一名前端开发者,我几乎每天都要和它打交道,无论是处理用户登录状态、记录用户偏好&#xff0…

作者头像 李华