在两台虚拟机分别准备DM8单机数据库,设置静态IP地址。
Vmware虚拟机设置IP方法:
打开‘编辑’—‘虚拟网络编辑器’,点击VMnet8,点击NAT设置,记住子网掩码与网关IP;
两台虚拟机分别打开并设置/etc/sysconfig/network-scripts/ifcfg-ens33文件;
重启网络服务使配置生效:systemctl restart network;
检查IP配置是否成功:ip addr show ens33;
测试虚拟机间连通性,在vm1中ping 192.168.178.102,在vm2中ping 192.168.178.101;
将dmhs_V4.3.42_dm8_rev218429_rh6_64_20260410_sp2.bin和dmhsFF01181390.key文件传送至两台虚拟机中
Extract install files.........
1.英文(English)
2.简体中文(简体中文)
请选择安装语言[2.简体中文(简体中文)]:
/home/dmdba/tmp/DMHSInstall/install.log
1.免费试用达梦数据实时同步
2.使用已申请的Key文件
验证许可证文件[1.免费试用达梦数据实时同步]:2
Key文件路径:/home/dmdba/dmhsFF01181390.key
Key文件限制信息如下:
有效日期:2026-12-25
用户名称:达梦公司产品试用
服务器颁布类型:试用版
发布类型:企业版
Key类型:企业版
授权用户数:无限制
并发连接数:无限制
1.精简版
2.完整版(web客户端)
3.自定义
安装类型[1.精简版]:
1.实时同步软件服务器
2.远程部署工具
3.实时同步软件配置助手
4.手册
所需磁盘空间:485 MB
安装目录: [/home/dmdba/dmhs]
1.统一部署
2.现在初始化
是否初始化达梦数据实时同步系统[1.统一部署]:2
正在安装
default start ... default finished.
server start ... server finished.
hs_agent start ... hs_agent finished.
hsca start ... hsca finished.
doc start ... doc finished.
postinstall start ... postinstall finished.
正在创建快捷方式
安装成功
实时同步服务(DMHS)配置
1.英文(English)
2.简体中文(简体中文)
Dmhs语言[2.简体中文(简体中文)]:
请输入mgr端口号 (1000-65535)[5345]:
请输入信息收集间隔 时间(1-60)秒[3]:
请输入检查点间隔时间(10-65536)秒[60]:
请输入站点id(0-65536):1
远程部署工具配置
远程部署工具名称[HsAgent]:
主机Ip(外网)[192.168.178.101](192.168.178.101):
远程部署工具管理端口[5456](1000-65535):
内置数据库轮询间隔[3](1-60):
内置数据库IP[]:192.168.178.101
内置数据库端口[15236](1000-65535):5236
内置数据库用户名[SYSDBA]:
内置数据库密码[SYSDBA]:QWEasd~123
1.命令行方式
2.系统服务方式
3.脚本服务方式
Dmhs启动方式[2.系统服务方式]:
服务脚本环境变量设置
依赖库路径
提示:此配置项供用户配置源或目的数据库依赖库路径和odbc依赖库路径, 多个路径以":"隔开(例:/opt/dmdbms/bin:/usr/local/lib),此配置项会添加到服务脚本的NEED_LIB_PATH的变量值中。
请配置依赖库路径:/home/dmdba/dmdbms/bin:/home/dmdba/dmhs/bin
远程控制服务
1.自动
2.手动
启动方式:[2.手动]1
正在创建远程控制服务
达梦数据实时同步服务
1.自动
2.手动
启动方式:[2.手动]1
正在创建达梦数据实时同步服务
状态监控服务
启动方式:[1.自动]
正在创建状态监控服务
以下配置脚本需要以"root"用户的身份运行.
要执行以下脚本命令:
要执行配置脚本,请执行以下操作:
1.打开终端窗口
2.以"root"身份登录
3.运行脚本命令
/home/dmdba/dmhs/scripts/root/root_installer.sh
是否已执行shell脚本?yes/no[no]yes
达梦数据实时同步V4.0安装完成
更多安装信息,请查看安装日志文件:
/home/dmdba/dmhs/log/install.log
开启归档⽇志和逻辑⽇志
[dmdba@localhost bin]$ ./disql SYSDBA/QWEasd~123
服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 24.387(ms)
disql V8
# 开启归档⽇志
SQL> alter database mount;
SQL> alter database archivelog;
SQL> alter database add archivelog 'dest = /home/dmdba/dmarch,type = local,file_size = 512,space_limit=1024';
SQL> alter database open;
# 确认归档⽇志开启
SQL> select para_value from v$dm_ini where para_name in ('ARCH_INI');
行号 PARA_VALUE
---------- ----------
1 1
SQL> select value from v$parameter where name = 'ARCH_INI';
行号 VALUE
---------- -----
1 1
# 开启逻辑⽇志
SQL> SP_SET_PARA_VALUE(1,'RLOG_APPEND_LOGIC',1);
DMSQL 过程已成功完成
已用时间: 114.563(毫秒). 执行号:1803.
SQL> alter system set 'RLOG_APPEND_LOGIC' = 1;
DMSQL 过程已成功完成
已用时间: 56.012(毫秒). 执行号:1804.
SQL> select para_value from v$dm_ini where para_name in ('RLOG_APPEND_LOGIC');
行号 PARA_VALUE
---------- ----------
1 1
已用时间: 41.881(毫秒). 执行号:1805.
SQL>
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<ckpt_interval>60</ckpt_interval>
<siteid>1</siteid>
<version>2.0</version>
</base>
<cpt>
<db_type>dm8</db_type>
<db_server>192.168.178.101</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>QWEasd~123</db_pwd>
<db_port>5236</db_port>
<db_ssl_path></db_ssl_path>
<db_ssl_pwd></db_ssl_pwd>
<parse_thr>1</parse_thr>
<ddl_mask>op:obj</ddl_mask> <!--DDL 配置项-->
<arch><!-归档清理配置项-->
<clear_interval>600</clear_interval>
<clear_flag>0</clear_flag>
</arch>
<send><!-- 发送模块配置-->
<ip>192.168.178.102</ip> <!—执⾏端IP-->
<mgr_port>5345</mgr_port><!—执⾏端mgr_port -->
<data_port>5346</data_port><!—执⾏端data_port -->
<trigger>1</trigger><!-- 是否忽略触发器,默认为0,限定值0,1 -->
<constraint>1</constraint><!-- 是否忽略约束,默认为0,限定值0,1-->
<identity>1</identity>
<net_turns>0</net_turns>
<filter><!-过滤配置项-->
<enable><!-- ⽩名单,所有允许同步的表-->
<item>SYSDBA.*</item>
</enable>
</filter>
<map><!-映射配置项-->
<item>SYSDBA.*==DMHS.*</item>
</map>
</send>
</cpt>
</dmhs>
<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base>
<lang>en</lang>
<mgr_port>5345</mgr_port>
<ckpt_interval>60</ckpt_interval>
<siteid>2</siteid>
<version>2.0</version>
</base>
<exec>
<recv>
<data_port>5346</data_port>
</recv>
<db_type>dm8</db_type>
<db_server>192.168.178.102</db_server>
<db_user>SYSDBA</db_user>
<db_pwd>QWEasd~123</db_pwd>
<db_port>5236</db_port>
<db_name></db_name>
<exec_thr>4</exec_thr>
<exec_sql>1024</exec_sql>
<exec_trx> 5000 </exec_trx>
<exec_rows>1000</exec_rows>
</exec>
</dmhs>
在源数据库执行“ddl_sql_dm8.sql”脚本创建触发器和辅助表,脚本默认位置在DMHS执行程序目录下的scripts子目录中
SQL> set define off;
SQL> set char_code utf8;
SQL> start /home/dmdba/dmhs/scripts/ddl_sql_dm8.sql
/home/dmdba/dmhs/bin/DmhsServiceHSSERVER start
在源端创建测试表
在目标端进行查询
DMDRS的核心工作原理可以概括为:源库产生日志,DMDRS解析日志,目标端执行日志。
源数据库的每一次数据变更都会产生对应的重做日志(Redo Log),每条日志记录都有唯一的LSN(Log Sequence Number)。源端DMDRS从指定的起始LSN开始,持续捕获并解析增量日志,将解析出的INSERT、UPDATE、DELETE以及DDL操作转换为内部消息格式,通过网络发送至目标端;目标端DMDRS接收消息后,在目标数据库中执行相应操作,从而实现数据同步。
(1)开启归档
(2)配置逻辑日志
(3)创建用户
(4)创建测试表
(1)开启归档
(2)创建用户
(1)修改bin文件所属用户
(2)dmdba运行bin文件
(3)准备辅助表信息(DDL同步)
(1)jdk环境配置
(2)DMDPI环境配置
(3)启动脚本配置
(4)exec模块配置
(1)jdk环境配置
(2)DMDPI环境配置
(3)启动脚本配置
(4)cpt模块配置
(1)前台启动目标端服务
(2)前台启动源端服务
(3)停止前台服务后启动目标端服务
(4)停止前台服务后启动源端服务
| 模块 | 核心职责 |
|---|---|
| Manager管理模块 | 负责客户端监听、加载和维护CMP与CMP_DSTB模块,执行控制台命令 |
| CMP模块 | 提供数据校验、报告生成、修复、备份、还原及进度监控 |
| CMP_DSTB模块 | 分布式数据校验中心,处理任务分配、结果统计及报告生成 |
| Console远程控制工具 | 允许用户通过网络远程启动、停止校验任务,监控进度并查看报告 |
| 校验模式 | 适用场景 |
|---|---|
| 静态数据校验 | 数据迁移验证、容灾基线核查——源库与目标库处于静止状态(无写入),校验服务器可同时访问两端 |
| 动态数据校验 | DMDRS增量同步过程中实时校验,不影响同步性能。需要开启数据库闪回功能(ENABLE_FLASHBACK=1) |
| 单向数据校验 | 涉密网络与互联网区域数据比对——存在网闸隔离,只能单向通信 |
| 分布式数据校验 | PB级海量数据、资源受限环境、跨地域多数据中心并行校验 |
文章
阅读量
获赞
