部署达梦数据同步工具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目录下TemplateDmhsServiceDmhsService(其它名字也可),并修改文件中以下参数

 


在执行端和分析端都做这个操作。

 

 

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

 

 


 

posted @ 2021-12-05 15:56  秋风无落叶  阅读(1016)  评论(0)    收藏  举报