注册
达梦DCP数据守护配置
专栏/技术分享/ 文章详情 /

达梦DCP数据守护配置

DM_163650 2025/08/29 8 0 0
摘要

DM8数据守护配置步骤整理

##考试时遇到各种问题,说到底还是搭建配置字数少了,这里再记录一下数据守护配置步骤

一、配置前准备

  1. 环境要求
    • 操作系统:银河麒麟V10 (考试环境)
    • 数据库版本:DM8
    • 网络:主备机网络互通,关闭防火墙或开放相关端口(如MAL端口、守护进程端口等),可通过firewall-cmd --add-port=端口号/tcp --permanent开放端口,再执行firewall-cmd --reload生效
    • 主备机数据一致性:需通过主机脱机备份还原至备机,保证初始数据一致
  2. 工具准备
    • DM数据库安装目录下的配置文件模板(位于/dm/samples/ini_script/UTF-8),包括mal.inidmarch.inidmwatcher.inidmmonitor.ini`
    • 脱机备份还原工具(dmrman)

二、配置文件准备(主备机通用基础配置)

1. 主库dm.ini参数调整(备库后续同步此配置)

需开启归档和MAL系统,执行以下SQL或直接编辑dm.ini文件:

-- 不允许手工修改实例模式/状态/OGUID ALTER_MODE_STATUS = 0 -- 不允许备库OFFLINE表空间 ENABLE_OFFLINE_TS = 2 -- 打开MAL系统 MAL_INI = 1 -- 打开归档配置 ARCH_INI = 1

2. mal.ini配置(主备机完全一致)

用于定义MAL系统通信参数,示例如下:

-- MAL链路检测时间间隔(单位:秒) MAL_CHECK_INTERVAL = 5 -- 判定MAL链路断开的时间(单位:秒) MAL_CONN_FAIL_INTERVAL = 5 -- 主机MAL配置(实例1) [MAL_INST1] -- 实例名,需与dm.ini中INSTANCE_NAME一致 MAL_INST_NAME = DM01 -- MAL系统监听TCP连接的IP地址(主机IP) MAL_HOST = 192.168.88.2 -- MAL系统监听TCP连接的端口 MAL_PORT = 15236 -- 实例对外服务IP地址(主机IP) MAL_INST_HOST = 192.168.88.2 -- 实例对外服务端口,与dm.ini中PORT_NUM一致 MAL_INST_PORT = 5236 -- 实例本地守护进程监听TCP连接的端口 MAL_DW_PORT = 15238 -- 实例监听守护进程TCP连接的端口 MAL_INST_DW_PORT = 5238 -- 备机MAL配置(实例2) [MAL_INST2] MAL_INST_NAME = DM02 MAL_HOST = 192.168.88.3 MAL_PORT = 15236 MAL_INST_HOST = 192.168.88.3 MAL_INST_PORT = 5236 MAL_DW_PORT = 15238 MAL_INST_DW_PORT = 5238

3. dmarch.ini配置(主备机差异化)

(1)主机归档配置

需包含本地归档和实时归档(指向备机):

-- 实时归档(同步至备机) [ARCHIVE_REALTIME] -- 归档类型为实时归档 ARCH_TYPE = REALTIME -- 实时归档目标实例名(备机实例名,如DM02) ARCH_DEST = DM02 -- 本地归档 [ARCHIVE_LOCAL1] -- 归档类型为本地归档 ARCH_TYPE = LOCAL -- 本地归档文件存放路径 ARCH_DEST = /dm8/data/DAMENG/arch -- 本地单个归档文件最大值(单位:MB) ARCH_FILE_SIZE = 128 -- 归档空间限制(0表示无限制,单位:MB) ARCH_SPACE_LIMIT = 0

(2)备机归档配置

需包含本地归档和异步归档(指向主机),仅修改实时归档目标实例名为主机实例名:

-- 异步归档(同步至主机,备机角色专用) [ARCHIVE_ASYNC] ARCH_TYPE = ASYNC -- 异步归档目标实例名(主机实例名,如DM01) ARCH_DEST = DM01 -- 本地归档(与主机本地归档配置一致) [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/data/DAMENG/arch ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0

4. dmwatcher.ini配置(主备机通用,需保证OGUID一致)

[GRP1] -- 全局守护类型 DW_TYPE = GLOBAL -- 故障切换模式(AUTO为自动切换,MANUAL为手动切换) DW_MODE = AUTO -- 远程守护进程故障认定时间(单位:秒) DW_ERROR_TIME = 10 -- 主库守护进程启动恢复的间隔时间(单位:秒) INST_RECOVER_TIME = 60 -- 本地实例故障认定时间(单位:秒) INST_ERROR_TIME = 10 -- 守护系统唯一OGUID值(主备机必须一致,如8888) INST_OGUID = 8888 -- dm.ini配置文件路径(需替换为实际路径) INST_INI = /dm8/data/DAMENG/dm.ini -- 打开实例自动启动功能(1为开启,0为关闭) INST_AUTO_RESTART = 1 -- 实例启动命令(dmserver路径) INST_STARTUP_CMD = /dm8/bin/dmserver -- 主库发送日志到备机的时间阈值(0为关闭) RLOG_SEND_THRESHOLD = 0 -- 备库重演日志的时间阈值(0为关闭) RLOG_APPLY_THRESHOLD = 0

5. dmmonitor.ini配置(监视器机器)

用于监控主备机守护进程,需配置确认监视器(自动切换模式必备):

-- 1为确认监视器,0为普通监视器(自动切换需设为1) MON_DW_CONFIRM = 1 -- 监视器日志存放路径 MON_LOG_PATH = /dm8/log -- 监视器日志滚动间隔(单位:秒) MON_LOG_INTERVAL = 60 -- 单个监视器日志文件大小(单位:MB) MON_LOG_FILE_SIZE = 32 -- 监视器日志空间限制(0为无限制) MON_LOG_SPACE_LIMIT = 0 [GRP1] -- 与主备机OGUID一致 MON_INST_OGUID = 8888 -- 主机守护进程IP:端口 MON_DW_IP = 192.168.88.2:15238 -- 备机守护进程IP:端口 MON_DW_IP = 192.168.88.3:15238

三、主备机数据一致性保障(关键步骤)

  1. 主机脱机备份
    使用dmrman工具执行主机全量备份:
# 进入dmrman工具 dmrman # 执行脱机全量备份(替换为实际dm.ini路径和备份集路径) RMAN> backup database '/dm8/data/DAMENG/dm.ini' full to 'fullbak' backupset '/dm8/backup/fullbak';
  1. 备机还原与恢复
    将主机备份集拷贝至备机,执行还原并更新数据库魔数(保证主备魔数不一致,避免冲突):
# 1. 拷贝主机备份集到备机(示例SCP命令) scp -r /dm8/backup/fullbak dmdba@192.168.88.3:/dm8/backup/ # 2. 备机执行还原(二选一,根据实际路径选择) # 方式1:还原到现有实例目录 RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/fullbak'; # 方式2:还原到指定新目录(若备机无实例目录) RMAN> restore database to '/dm8/data/DAMENG' from backupset '/dm8/backup/fullbak'; # 3. 关键步骤:更新备机数据库魔数 RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;

四、主备机实例与守护进程启动

1. 主机配置与启动

(1)设置主机OGUID与模式

# 1. 以MOUNT模式启动主机实例 /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini mount # 2. 另开窗口登录disql,设置OGUID和Primary模式 disql SYSDBA/SYSDBA # 设置OGUID(与dmwatcher.ini中INST_OGUID一致,如8888) SQL> sp_set_oguid(8888); # 修改主机为Primary模式 SQL> alter database primary; # 验证配置(OGUID为8888,MODE$为PRIMARY) SQL> select oguid, mode$ from v$instance;

(2)启动主机守护进程

# 后台启动守护进程(指定dmwatcher.ini路径) nohup /dm8/bin/dmwatcher /dm8/data/DAMENG/dmwatcher.ini &

2. 备机配置与启动

(1)设置备机OGUID与模式

# 1. 以MOUNT模式启动备机实例 /dm8/bin/dmserver /dm8/data/DAMENG/dm.ini mount # 2. 另开窗口登录disql,设置OGUID和Standby模式 disql SYSDBA/SYSDBA # 设置OGUID(与主机一致,如8888) SQL> sp_set_oguid(8888); # 修改备机为Standby模式 SQL> alter database standby; # 验证配置(OGUID为8888,MODE$为STANDY) SQL> select oguid, mode$ from v$instance;

(2)启动备机守护进程

nohup /dm8/bin/dmwatcher /dm8/data/DAMENG/dmwatcher.ini &

3. 监视器启动

在监视器机器启动监视器,监控主备机状态:

# 启动监视器(指定dmmonitor.ini路径) /dm8/bin/dmmonitor /dm8/data/DAMENG/dmmonitor.ini # 监视器中执行show命令,查看主备机状态(正常应为OPEN状态) show

五、配置验证与故障处理

  1. 主备同步验证
    • 主机创建测试表并插入数据:
      create table test_sync(id int); insert into test_sync values(1); commit;
    • 备机查询数据,确认同步成功:
      select * from test_sync; -- 应返回id=1的记录
    • 查看主机归档状态(ARCH_STATUS为VALID表示同步正常):
      select * from v$arch_status;
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服