部署达梦数据同步工具dmhs
1. 快速安装dmhs
用7z解压软件提取dmhs_*.bin软件,得到相应版本的tar包,将该tar包上传至服务器。

解压该tar包并将所有权赋为dmdba:dinstall
tar -xf app64.tar
chown -R dmdba:dinstall *

将source中的bin目录复制出来
在另一台机器上也做这些操作

这里将sdb0上的机器作为执行端,sdb1作为分析端
两台机器上的数据库端口均设置为8848
2. 数据准备
通过SYSDBA用户,在分析端上创建需要迁移的用户

使用hssourece用户创建迁移的表,并生成数据。

在执行端上创建迁移后对应的用户名。

3. 修改dmhs配置文档
以下均在bin目录下配置
配置分析端dmhs.hs


<?xml version="1.0" encoding="GB2312"?>
<dmhs>
<base><!-- 管理模块的基本配置 -->
<lang>ch</lang><!-- 语言选项,ch为中文,en为英文 -->
<mgr_port>8858</mgr_port><!-- 管理端口号,默认为5345,最小值1000,最大值65535 -->
<chk_interval>2</chk_interval><!-- 状态轮询间隔,默认为3s,最小值1s,最大值60s -->
<ckpt_interval>45</ckpt_interval><!-- 执行端检查点间隔,默认60s,最小值10s,最大值65536s -->
<siteid>1</siteid><!-- 站点ID,这个ID配置时要注意,全局唯一,最小值0,最大值65535 -->
</base>
<cpt><!-- 这项配置可以配置多个,也就是可以配置多个捕获模块,如果该节点只作为执行端,该节点需要删除 -->
<db_type>dm8</db_type><!-- 数据库类型,默认为dm7,限定值Oracle10g,Oracle11g,dm6,dm7 -->
<db_server>192.168.43.128</db_server><!-- 数据库服务名或IP,默认为127.0.0.1 -->
<db_user>HSSOURECE</db_user><!-- 数据库用户名,默认为SYSDBA -->
<db_pwd>source123456</db_pwd><!-- 数据库口令,默认为SYSDBA -->
<db_port>8848</db_port><!-- 数据库端口号,默认为5236 -->
<idle_time>300</idle_time><!-- 分析线程空闲睡眠时间,默认值为300ms,最小值0ms,最大值65536ms -->
<ddl_mask></ddl_mask><!-- 分析端DDL同步支持的对象和操作,可选项参见手册4.2.1 CPT,需要将安装脚本中对应的DDL脚本在源端执行 -->
<parse_thr>1</parse_thr><!-- 分析线程个数,默认为1,最小值1,最大值32,多线程分析时,不支持ALTER TABLE操作同步 -->
<arch>
<clear_interval>600</clear_interval><!-- 归档文件清理间隔,默认为600s,最小值60s,最大值2000000000s -->
<clear_flag>0</clear_flag><!-- 清除归档日志的方式,可选项0(无动作), 1(删除归档文件), 2(表示移走归档文件) -->
<bak_dir></bak_dir><!-- clear_flag项配置成2时,该配置项可以用来指定归档文件转移的目录,如果未配置这项,则转移到归档路径的log_bak目录下 -->
</arch>
<send><!-- 发送模块配置 -->
<ip>192.168.43.127</ip><!-- 目的端IP,默认127.0.0.1 -->
<mgr_port>8858</mgr_port><!-- 目的端管理端口,默认为5345,最小值1000,最大值65535 -->
<data_port>8868</data_port><!-- 目的端数据接收端口号,默认为5346,最小值1000,最大值65535 -->
<level>0</level><!-- 复制级别,默认为0,最小值0,最大值65535 -->
<trigger>1</trigger><!-- 是否忽略触发器,默认为0,限定值0,1 -->
<constraint>1</constraint><!-- 是否忽略约束,默认为0,限定值0,1 -->
<identity>1</identity><!-- 是否忽略自增列,默认为0,限定值0(不忽略,插入同步过来的值),1(忽略,插入自增列自身的值) -->
<net_turns>0</net_turns><!-- 是否开启网闸模式,默认为0,限定值0(关闭),1(开启),网匝模式下,主机看不到备机的统计信息 -->
<filter><!-- 过滤,必须指定,一定要注意大小写,要跟源库中的对像名大小写保持一致 -->
<enable><!-- 白名单,所有允许同步的表 -->
<!-- 格式 <item>实例名.模式名.表名</item> -->
<!-- 实例名中除DM6为库名外,其它库为实列名 -->
<!-- 配置过滤时,支持使用*号模糊匹配,例如: -->
<!-- <item>SYS*.*</item> 所有模式名为sys打头的表允许同步 -->
<!-- <item>SYSDBA.S*</item> 模式SYSDBA下以S打头的表才允许同步 -->
<!-- <item>SYSDBA.TEST</item> 模式SYSDBA下表TEST才允许同步 -->
<item>HSSOURECE.TEST_TO_HS1</item>
<item>HSSOURECE.TEST_TO_HS2</item>
<item>HSSOURECE.TEST_TO_HS3</item>
<item>HSSOURECE.TEST_TO_HS4</item>
<item>HSSOURECE.TEST_TO_HS5</item>
<item>HSSOURECE.TEST_TO_HS6</item>
</enable>
</filter>
<map><!-- 表名映射,可选, 一定要注意大小写,要跟源库和目的库中的对像名大小写保持一致 -->
<!-- <item>SYSDBA.TEST == TEST.XXX</item> 把所有模式SYSDBA下的表TEST映射到目的端,目的端的表名改成XXX -->
<item>HSSOURECE.* == HSTARGET.*</item>
</map>
</send>
</cpt>
</dmhs>
配置执行端dmhs.hs

复制bin目录下TemplateDmhsService为DmhsService(其它名字也可),并修改文件中以下参数

在执行端和分析端都做这个操作。
4. 启动dmhs
先在执行端启动

之后执行./dmhs_console 命令,进入到控制台工具中,执行命令start exec,即可启动执行端。
分析端启动
在分析端同样先执行dmhs的服务,然后进入到dmhs_console中。
注意此时要先进性数据的初始装载,执行以下命令
--如果目的端已经有相应的表了,则不用加上CREATE
COPY 0 “SCH.NAME=‘HSSOURECE’“ CREATE|INSERT|GROUP|10
--如果目的端的表为新建的,执行完上一句后,需要再执行下面语句来创建相应的索引
COPY 0 “SCH.NAME=‘HSSOURECE’“ CREATE|INDEX
数据装载完成后,确认两边数据量一致,即可执行命令 start cpt 开启dmhs数据同步了。
https://eco.dameng.com

浙公网安备 33010602011771号