一环境准备
准备两台机器 S1 S2都安装了dm8
操作系统L:centos7
本环境S1为源端,S2为目的端
二安装前的准备
在安装DMHS时,需要首先确认如下几个问题:
1.DMHS安装时,需要确认源端,目的端网络能够相互通信,最简单的测试方法是测试是否可以从源端发包到目的端。
2.确认DMHS的同步规则。比如确认需要同步的模式、表等信息。
两个节点都要弄
2.1数据库参数检查
2.1.1归档参数
DMHS同步源端数据库需要开启归档模式。
2.1.2附件日志参数
DMHS同步源端数据库需要开启附加日志参数”RLOG_APPEND_LOGIC”,使用如下语句进行查询数据库中改参数是否启用。
SQL> select PARA_NAME,PARA_VALUE FROM V$DM_INI WHERE PARA_NAME='RLOG_APPEND_LOGIC';
行号 PARA_NAME PARA_VALUE
---------- ----------------- ----------
1 RLOG_APPEND_LOGIC 0
PARA_VALUE结果为0,说明改功能未开启,需要启用改参数。调用系统过程开启改参数或者手动修改dm.ini文件中的”RLOG_APPEND_LOGIC”的结果为1,由于改参数是静态参数,索引修改后需要重启数据库才能生效。
SQL> call sp_set_para_value(2,'RLOG_APPEND_LOGIC',1);
DMSQL 过程已成功完成
查看是否配置成功
2.1.3开启DDL同步
DMHS支持DDL同步功能,但是默认是不启用该功能。对同步源端为DM7/DM8数据库,有两种方式启用DDL同步功能。
1.启用DM7/DM8数据库系统参数“RLOG_APPEND_SYSTAB_LOGIC”,该参数启用在日志中记录系统表逻辑操作功能。该参数默认取值为0,即不启用;设置为1时,启用该功能。由于该参数为“静态”参数,更改参数设置后,需要重启数据库才能生效。同时也需要在DMHS配置文件中进行ddl_mask参数配置,用于设置DDL同步对象及操作。
2.执行DDL同步脚本方式。在源端DM7/DM8数据库中以SYSDBA用户执行DDL同步脚本,在SYSDBA模式下创建相关DMHS系统表及触发器,并在DMHS配置文件中配置ddl_mask参数选项以启用该功能。
同步脚本位于DMHS安装目录的scripts子目录下,命名为:ddl_sql_dm7.sql(dm8的为ddl_sql_dm8.sql)。运行过程使用以下命令:
./disql SYSDBA/SYSDBA
SQL> start /dmhs/scripts/ddl_sql_dm8.sql
或着将sql脚本中的语言
复制到管理工具中进行
安装dmhs
两节点都要
上传安装文件,将文件赋予执行权限,执行
chmod +x dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin./dmhs_V4.1.48_pack4_dm8_rev104804_rh6_64_veri_20211228.bin
填写相关信息 下一步
安装完成
配置文件
在源端配置dmhs.hs 在dmhs的安装目录下的bin目录下新建dmhs.hs文件
<?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>源端ip</db_server> <db_user>SYSDBA</db_user> <db_pwd>SYSDBA</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地址 --> <ip>127.0.0.1</ip> <mgr_port>5345</mgr_port> <data_port>5346</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.*==SYSDBA.*</item> </map> </send> </cpt> </dmhs> |
目的端:
在dmhs的安装目录下的bin目录下新建dmhs.hs文件
<?xml version="1.0" encoding="GB2312"?> <dmhs> <base><!-- 管理模块的基本配置 --> <lang>ch</lang><!-- 语言选项,ch 为中文,en 为英文 --> <mgr_port>5345</mgr_port><!-- 管理端口号,默认为 5345,最小值 1000,最大值 65535 --> <chk_interval>2</chk_interval><!-- 状态轮询间隔,默认为 3s,最小值 1s,最大值 60s --> <ckpt_interval>60</ckpt_interval><!-- 执行端检查点间隔,默认 60s,最小值 10s,最大值 65536s --> <siteid>2</siteid><!-- 站点 ID,这个 ID 配置时要注意,全局唯一,最小值 0,最大值 65535 --> </base> <recv><!-- 接收模块的基本配置,如果该节点只作为分析端,该节点需要删除 --> <data_port>5346</data_port><!-- 数据接收端口号,默认为 5346,最小值 1000,最大值 65535 --> <exec><!-- 执行模块的基本配置 --> <db_type>dm8</db_type><!-- 数 据 库 类 型 , 默 认 为 dm7 , 限 定 值Oracle10g,Oracle11g,dm6,dm7,dm8;如果是 DM7,填写 dm7 --> <db_server>目的端ip</db_server><!-- 数据库服务名或 IP --> <db_user>SYSDBA</db_user><!-- 数据库用户名,默认为 SYSDBA --> <db_pwd>SYSDBA</db_pwd><!-- 数据库口令,默认为 SYSDBA --> <db_port>5236</db_port><!-- 数据库端口号,默认为 5236 --> <db_name></db_name><!-- 默认数据库名,默认为空串(只针对 dm6 有用)--> <exec_mode>1</exec_mode><!-- 执行模式, 1(多线程执行),2(ETL 模式),3(消息中转模式,跨网段级联时使用) --> <exec_thr>8</exec_thr><!-- 执行线程个数,只有当 exec_mode 为 1 时才会生效!默认为 1,最小值 1,最大值 64 --> <exec_sql>512</exec_sql><!-- SQL 缓存大小,默认为 512M,最小值 32M,最大值 4096M --> <exec_trx> 5000 </exec_trx><!-- 事务缓存个数,默认为 5000,最小值,1000,最大值 10000 --> <exec_rows>250</exec_rows><!-- 批量绑定行数,默认为 250,最小值 1,最大值 2000 --> <exec_policy>2</exec_policy><!--执行策略:0 出错后忽略继续。1 出错后停止执行。2 出错后部分执行继续--> <msg_col_size>8000</msg_col_size><!-- 保存缓存消息列的大小,这取决于目的库的块大小, 默认为 8000,最小值 1000,最大值 8000 --> <level>0</level><!-- 复制级别,默认为 0,最小值 0,最大值 65535 --> </exec> </recv> </dmhs> |
在源端建立测试表:
开始连接
目的端先开始:
全部都是在dmhs的安装目录下的bin目录下
找到 ./dmhs_server 类似于这个 版本不同可能名称不同
[dmdba@localhost bin]$ ./dmhs_server dmhs.hs
一开始可能只有几条 不着急 没报错就可以
源端开启
新开一个终端
目的端打开dmhs_console工具,并执行start exec
在源端打开
在目的端 开启同步
在目的端开启验证登陆disql
目的端
源端
以上搭建成功 dm8 1v1 dmhs
更多信息查看达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台